이번 주는 별다른 일정이 없었고, 미세먼지도 많아서 거의 실내에서만 대부분의 시간을 보냈다. 조금 다른 점이 있다면 코드숨 과정이 시작된 주라는 것이다.

Facts (사실, 객관)

코드숨 과정

  1. 개발환경(babel, webpack, eslint 등)에 대한 학습
  2. JSX에 대한 학습, createElement함수를 직접 구현
  3. 1주차 과제 1, 2

과정 외 학습

  1. 자바스크립트 코딩의 기술(발췌독. 80%)
  2. 함수형 자바스크립트(발췌독. 50%)
  3. 테스트 주도 개발(17장 Money예제까지)
  4. lodash, ramda 공부
  5. 친구와 진행하는 팀프로젝트에서 상태관리 라이브러리를 recoil에서 redux(+ toolkit)으로 변경(TDD로 진행)

기타

  1. Goal(만화판)을 읽고, 나중에 다시 기억할 수 있도록 주요 대사를 정리하고, 현재 내 상황에 적용할 수 있는 것이 무엇인지 고민
  2. 이동시간에 창준님의 애자일 키워드 팟캐스트를 다시 들으면서 생각을 정리

Feelings (느낌, 주관)

  1. 그동안 코드의 가독성이나 변수명 설정 같은 부분에 꽤 신경을 써왔다고 생각했는데, 코드 리뷰를 받으면서 아직 갈길이 멀다는 것을 느낌.
  2. 코드 리뷰를 거의 처음 받아봤는데, 이것이 얼마나 중요한 것인지 느낌.
  3. react없이 자바스크립트만으로 개발을 해본 적이 없었는데, 그것이 꼭 필요한 경험이라고 느낌.
  4. 혼자 함수형 프로그래밍을 공부하면서 역시 직접 해보면서 배우는 것이 좋다고 느낌. recoil을 배울 때 굉장히 빨리 배웠는데, 이를 똑같이 redux를 공부하는데 활용하니 좋았음.
  5. 이번 주에 도서관의 이용시간이 단축되었는데, 돌아보니 그것때문에 학습량이 많이 줄었음을 느낌.

Findings (배운 점)

  1. 당연한 말이기는 하지만, 다른 사람의 입장에서 코드를 보면서 작성하라.
  2. 뭔가 중복이 되고 어려운 상황이 오면 대체로는 구조를 바꿔야할 신호일 확률이 높다.
  3. 혼자 무엇이 좋은지 생각해보는 것도 좋지만, 다른 사람들의 의견도 들어보고 이미 널리 알려진 안티패턴, 리팩토링 패턴들을 공부하는 것도 매우 중요하다. (클린코드, 리펙토링)
  4. 불필요한 변수, 불필요한 로직을 제거하면 전체적인 구조의 복잡성이 낮아지고, 반대로 그런것들을 제거하고 싶은데 잘 되지 않으면 구조를 바꿔야한다.
  5. 코드를 분리하는 이유는 각각 역할과 책임을 분리하기 위해서다. 그렇기 때문에 의미단위를 생각해 가면서 하나씩 분리하는 것이 좋다.
  6. 프로그램을 만들면서 처음부터 잘 짜여진 구조를 만들려고하면 실패하는 경우가 대부분이다. 비슷한걸 많이 만들어본 경험이 있는게 아니면 대부분 만들어보면서 적절한 구조를 찾아 나가기 때문이다.

Plan (계획)

  1. 리펙토링 공부하기
  2. 앞으로 자주 회고하기
  3. 학습 시간과 목표 달성량에 대해 구체적으로 기록하기

Affirmation (자기 선언)

  1. 더 적극적으로 학습하고, 조언을 구하고, 개선하자.