TIL 79

git 명령어 모음

https://hackmd.io/@oW_dDxdsRoSpl0M64Tfg2g/ByfwpNJ-K https://mi2mic.tistory.com/186 1. 처음 코드 업로드 (로컬에 cra 폴더 만들어서 업로드 하는 경우) cra폴더를 만든 후 깃헙에서 레포지토리 만들어서 그대로 복붙 후 터미널에 붙여넣기 git remote add origin https://github.com/Co-Ji/123.git git branch -M main git push -u origin main (처음 파일 만들어서 업로드 하는 경우 ) 초기화: git init 파일 더하기(add: 모두): git add . 확인: git status 히스토리 만들기("버전이름"): git commit -m "first commit" 깃헙..

(항해10일차) 220316 알고리즘 5일차

알고리즘 주간이 끝나간다. 오늘은 스터디에서 시간이 없어 풀지 못한 문제들을 풀고 남은 시간에는 풀었던 문제들을 다시 보면서 어떻게 풀어야 할지 생각해봤다. 처음 방법과 완전히 똑같은 것도 있었지만 어떤 문제들은 처음 방법보다 더 간단해지는 경우도 있었다. 문제푸는 방식과 관련해서 오늘 튜터님께 질문을 했다. 한 줄 짜리 압축시켜 놓은 답변과 for반복문이나 if함수를 사용한 긴 답변을 비교했을 때 답의 길이는 좋은 알고리즘 풀이와 크게 연관이 없다는 말씀을 들었다. 물론 시간복잡도가 단순한 짧은 풀이는 훌륭하지만 그렇지 않은 경우도 있고, 잘 쓰지 않는 내장함수를 가져다 쓰기도 하기 때문에 오히려 문제의 구조를 파악하는게 훨씬 중요하다. 하지만 내가 쓴 filter 보다 splite를 사용했을 때 시간..

반복에 사용하는 함수 ( while/do~while/for/array.foreach() )

1. while 조건이 참일 때 계속 반복한다. 조건이 거짓이면 넘어간다. statement를 여러개 사용하려면 { } 를 써야 한다. while (condition) {statement} 2. do~while 실행 먼저 되고 조건이 참인지 확인한다. (무조건 한 번은 실행됨) do{ statement} while (condition) 3. for for는 반복횟수를 정하는 경우에 사용한다. for(initialization; condition; final-expression) { statement } - initialization : 카운트할 변수 선언, let은 지역변수, var는 for문과 같은 범위 - condition: 매번 반복할 때마다의 조건, 참이면 statement를 반복, 거짓이면 다음..

Today I Learned 2022.03.16

(항해9일차) 220315 알고리즘 4일차

알고리즘 주차가 어느새 절반넘게 지나갔다. 오늘은 항해에서 준비하신 모의고사에 참여했다. 거창하게 모의고사라고 하기에는 한 문제였지만, 아무 정보도 없는 환경에서 혼자 문제를 푸는 것은 처음이었다. 지난 3일동안 열심히 문제를 풀어서 그런지 다행히 잘 해결한 것 같다. (물론 높은 난이도의 문제는 아니었을 것 같다.) 이렇게 한 번 문제를 풀어보니 알고리즘 문제에 접근하는 방법을 다시 고민하게 되었다. 요즘 조금 자신감이 생기면서, 다른 사람들의 풀이를 보고 더 짧은 코드를 짜고 싶었다. 하지만 어떻게 하면 정답으로 갈 수 있을지 풀이의 과정을 더 정확하게 고민하는게 우선인 것 같다. 이를테면 for를 사용한 반복문이나 if, else 대신 화살표함수, 삼항연산자, reduce, filter, 등등.. ..

(항해8일차) 220314 알고리즘 3일차

알고리즘 문제가 조금은 익숙해진 3일차이다. 익숙해진 만큼 푸는 속도가 빨라졌지만, 빠르게 푸니까 집중력이 빨리 떨어지기도 한다. 오늘은 답 까지 가는 경로를 풀어서 써보고 좀 더 줄일 방법을 찾아보려고 노력했다. 많은 경우 좀 더 짧은(간결한?) 코드들은 화살표 함수와 삼항연산자를 포함하고 있었다. 그래서 나도 최대한 화살표 함수와 삼항연산자를 코드에 넣어봤는데, 개념을 익혀도 실전에 쓰는데는 시간이 필요한듯 하다. 화살표 함수의 경우 상황에 따라 다른 형태로 쓰이기도 하고, 생략하는 부분도 있었는데 이부분이 익숙하지 않아 어려움을 겪었다. 삼항연산자의 경우 중첩이 가능한데, 중첩된 부분의 코드가 헷갈리는 경우가 많았다. 그래도 오늘은 알고리즘 주차가 시작된 이후 가장 많은 문제를 풀었다. 이 부분만큼..

(항해99)의 1주차 (220307-220312) WIL

(이미 여러차례 언급을 했으나) 99일 동안의 항해를 드디어 시작했다. 왜 이름을 항해로 지었을까? 시작하기 전에는 몰랐다. 하지만 한 주를 보낸 지금은 어렴풋이 알 것 같다. 먼 바다 한가운데에서 시작해 99일간을 헤엄쳐야 무사히 섬으로 갈 수 있는듯 하다. 첫 느낌은 조난99 였다. 아무것도 모르는 상태에서 처음 만난 사람들과 뭘 만들어야 한다? 프로젝트를 어떻게 구상해서 어떻게 계획을 세워야 할지 감도 오지 않았고, 어디서부터 시작해야 하는지 엄두가 나질 않았다. 그렇게 프로젝트를 시작하고 하루하루 막막한 날을 보냈지만 결국 뭔가를 하긴 한 것 같다. 물론 추가하거나 고쳐야 할 부분도 많고, 시간이 더 있었으면 하는 아쉬움은 남았지만 '아무것도 모르는데 이게 되나?'에서 '진짜 이게 되네?'로 바뀐..

(항해6일차) 220312 알고리즘 2일차

어제보다 조금은 익숙해진 둘째 날이다. 하지만 첫 주의 긴장감과 프로젝트의 압박감이 사라지면서 마음이 조금 느슨해진 날이었다. 문제를 생각하고 있는데 생각하는 속도가 줄어든 느낌이다. 어째 됐든 오늘은 6문제를 풀었고, 그 중에서 가장 기억에 남는건 행렬의 덧셈 문제였다. 일단 처음 접하는 2차원 배열 문제였기 때문에 접근방법을 떠올리기 어려웠다. 앞으로 이런 문제가 또 나온다면 해결할 수 있을까? 연습을 많이 해야겠다. 나는 아직 대부분의 함수를 모르기 때문에( 또는 익숙하지 않기 때문에) 문제를 풀 때 거쳐야 하는 과정이 상당히 복잡하다. 보통 다른 답안을 확인하면 내가 생각했던 과정은 필요가 없거나 간단히 해결되는 부분이었다. 특히 if문을 길게 적은 내 답과, 삼항연산자로 간결하게 표현한 다른 답..

(항해5일차) 220311 알고리즘 1일차

끝나지 않을 것 같았던 미니프로젝트가 끝나고 정말 엄두가 안났던 알고리즘 집중주간이 시작됐다. 생각했던 것 만큼 숨이 턱 막히는 첫 문제와 도무지 식을 어떻게 써야 할지 감이 안오는 상황에서 - 분명 function도 console 도 계속 사용한 함수인데 왜 이렇게 처음보는 것 같은지 - 천천히 문제를 분석하기 시작했다. 그런데 왠걸 생각보다 재밌었다. 어떤 식을 어떻게 써야 할지 전혀 모르는 상황이지만 그래도 answer 까지 가는 길을 머리를 써서 추측하는게 퀴즈같이 느껴졌다. 물론 그 길을 가기 위한 코드를 짜는건 전혀 다른 얘기이다. 어찌어찌 나름대로 방법을 찾아가며 문제를 푸니 얼마 지나지 않은 것 같은데 시간이 훌쩍 지나가 있었다. 확실히 느낀 것 하나는 '나는 아직 개념이 없다.' 좀 더 ..

증감연산자와 대입연산자

1. 증감연산자(++,--): " 피연산자를 증가(1을 더함)하고 값을 반환합니다. " 자기 자신의 값을 증가(감소)시키는 연산자이다. 연산자의 위치가 중요하다. 항상 1을 더한다는 사실도 기억해야 한다. let x = 3 const y = ++x 일 때 x = 4, y = 4 ++가 앞에 위치할 때는 y는 증가한 값을 받고( y + x ), 피연산자도 증가한다. let x = 3 const y = x++ 일 때 x = 4, y = 3 ++가 뒤에 위치할 때는 y는 피연산자의 값만 받고(y = x ), 피연산자만 1을 더한다. 2. 대입(할당)연산자: 선언(값을 변수에 할당) 할 때 쓰인 = 도 대입연산자의 일종이다. 즉, 대입연산자는 ~이다 라는 선언의 의미를 가지고 있다. a = b : a 는 b이다..

Today I Learned 2022.03.12

템플릿리터럴

1. 템플릿리터럴 (` `) 을 사용하면 문자열을 간결하게 표현할 수 있다. (가독성이 좋다) const animal = '원숭이' console.log('나는'+animal+'입니다.') console.log(`나는 ${animal}입니다.`) 2. 템플릿리터럴 안에서 `(백틱)문자를 쓰고 싶다면? 백틱앞에 백슬래시를 넣는다. `\`` = ` 로 출력된다. 3. 템플릿리터럴은 (` `) 안의 내용을 그대로 반영한다. (줄바꿈까지!) console.log("string text line 1\n"+ "string text line 2"); console.log(`string text line 1 string text line 2`); console.log(`string text line 1 string t..

Today I Learned 2022.03.12