알고리즘/자료구조
[프로그래머스 lev3/JS] 표현 가능한 이진트리
[프로그래머스 lev3/JS] 미로 탈출 명령어
[프로그래머스 lev3/JS] 등산 코스 정하기
조합/순열 알고리즘 + [프로그래머스 lev2/JS] 메뉴 리뉴얼
그래프/이진 트리 쪽이 내 약점이다.
이제는 초기 데이터 설정해서 기본적인 로직 구현까지는 능숙하지만,
조금만 로직이 복잡해져도 대응하지 못한다.
특히 이쪽은 알고리즘만 알면 쉽게 풀 수 있는 문제들도 많은데,
배워도 배워도 계속 까먹는다.
코드잇 강의 (+ 데일리 미션/위클리 미션)
처음엔 매일 진행하는 데일리 미션과 주마다 제출해야 하는 미션이 부담스러웠다.
하지만 데일리 미션에 답변을 하기 위해 단어들을 정제하고 개념을 다시 되짚어 보는 시간들은 내게 큰 도움이 되고 있다. 알고 있다고 착각했던 개념들이 많았다.
위클리 미션의 경우 요구사항에 맞게 UI를 구성하는 것이었는데, 처음으로 요구사항에 맞게 코드를 작성하는 것이다 보니 다소 어려웠다.
위클리 미션을 수행하면서 느낀 건데, UI의 경우 나중에 디자이너와의 소통이 정말 중요할 것 같다고 느꼈다. 디자이너가 어떤 의도로 디자인했는지에 따라 코드를 더 유연하게 작성할 수도 있고, 혹은 생각보다 훨씬 복잡하게 작성하게 될 수도 있을 것 같았기 때문이다..
물론 부족한 내 실력 때문이겠지만.
개발환경
(이제 막 배운 거라 전부 비공개 게시물로 해두었다)
ES5로 컴파일해보기 (Promise, async-await 등)
webpack 설정 처음부터 끝까지 해보기
webpack 설정 더 깊게 보기
처음엔 ES6 문법들을 babel로 변환했을 때 어떤 형태일까 하는 단순한 궁금증에서 시작했는데, 일주일 내내 고생을 했다.
특히 Promise를 변환하기 위해 polyfill 개념을 배워야 했는데, 이것 때문에 웹팩이랑 바벨 config 파일을 처음부터 끝까지 파헤쳤다. 하루 종일 안 풀리던 문제가 있었는데 알고 보니 nodejs 버전 문제였어서 허탈하기도 했다.
어쨌든 리액트의 CRA로 쉽게 설정하던 것에 다시 한번 감사함을 느낄 수 있었던 일주일이었다.
(++바벨과 웹팩을 배우다가 SWC를 알게 됐는데, 다음에 한번 깊게 공부해 봐야겠다.)
문제가 안 풀릴 때
이번 주 내내 알고리즘 문제를 밤에 풀고, 해설을 아침에 읽었다.
의도했다기보다는 시간이 없어서 어쩔 수 없이 이렇게 한 건데 어쩌다 보니 좋은 선택이었다.
알고리즘 문제가 안 풀리거나, 혹은 개발 도중에 에러가 발생했을 때
너무 오래 붙잡고 있는 것보다 유연하게 흘려보낼 줄 아는 게 좋은 습관인 것 같다.
식습관
점심 저녁으로 기름진 걸 많이 먹었더니 속이 좋지 않다.
점심엔 좀 더 깔끔한 걸 먹으려고 노력해야겠다.
커피를 줄여야겠다.
코드잇에서 무한으로 제공해 주는 커피 복지에 정신을 못 차리고 과하게 마셨다.
덕분에 피곤한데도 잠이 안 온다.
알고리즘/자료구조 공부는 꾸준히 할 계획이다.
평일 하루 1문제 풀기 위해 노력하겠지만, 막히는 개념이나 로직이 나오면 일주일의 시간을 전부 써서라도 반드시 이해하고 넘어가는 게 목표다.
코드잇 커리큘럼에 뒤처지지 않기 위해 노력할 것이다.
그리고 데일리 미션에 좀 더 정확한 답을 하기 위해 시간을 더 쓸 계획이다.
위클리 미션 코드 리뷰를 받게 되면, 그걸로 다시 코드를 작성해 보는 시간을 반드시 가질 것이다.
공식 문서를 보는 습관을 기를 것이다.
강의를 아무리 많이 들어도 결국 문제가 발생했을 때 가장 가까운 해결 단서는 항상 공식 문서에 있었다.