Facts (사실, 객관)

  1. 코드숨 2주차 완료
  2. 제럴드 와인버그의 컨설팅의 비밀 다 읽음.
  3. 리팩터링 1장, 3장, 4장, 6장에서 6-9까지, 9장, 10장에서 10-3까지.
  4. git 커밋 수정, 삭제, 합치기 등의 기능 공부.
  5. 자바스크립트에서 객체지향 프로그래밍을 지원하는 기능들 공부.
  6. 테스트 주도 개발 발췌독하면서 간단한 코드와 알고리즘 문제들을 TDD로 짜보았음.
  7. 전에 보다가 말았던 이규원님의 강의 뒷 부분을 보면서 인터페이스와 구현, 모듈화, 개방폐쇄원칙, 직접 입출력과 간접 입출력, 테스트 대역 등에 대한 개념들 이해.
  8. 친구와 테스트 주도 개발 책 스터디 시작하고 계획 수립.
  9. 제럴드 와인버그의 글쓰기 책 읽기 시작.

Feelings (느낌, 주관)

  1. 요즘 이것저것 배운 것이 많기는 한데 실제 코드 작성량은 많이 적어졌다고 느낌.
  2. 제럴드 와인버그의 글에서 배울 점이 정말 많다고 느낌.

Findings (배운 점)

코드숨 과정에서 코드리뷰를 받으며 배우고 생각한 것 위주로 정리하겠음.

  1. 관리하는 상태가 적을 때는 상태를 변경할 때 콜백형태로 하는 것이 더 의도가 드러나지만, 상태가 많을 때는 더 복잡해질 수 있음.
  2. 관심사의 분리는 컴포넌트 분리, 파일구조 같은 것 뿐 아니라 변수명과도 큰 관련이 있음.
  3. 파일명의 소문자를 대문자로 수정했을 때 git에 반영되지 않는 문제가 생겼는데, 검색해보니 비슷한 문제를 겪는 사람들이 많았고, 이곳를 참고하여 해결함.
  4. 상태를 갱신할 때 추후 확장을 고려해서 당장은 필요하지 않더라도 ...state를 넣어주는 것이 좋음.
  5. 상태를 객체로 잡을 지 분리된 값으로 잡을 지는 상태 간에 추상화를 할 수 있을 만큼 연관이 있는지를 기준으로 생각하면 좋다. 물론 리액트 상태 뿐 아니라 다른 곳에서도 마찬가지.
  6. 이벤트헨들러의 네이밍으로 on, handle prefix를 사용하는 것이 좋다. 전자는 props으로 받아온 이벤트임을, 후자는 실제로 구현된 함수임을 나타낸다.
  7. 상태를 변경해주는 함수는 UI레이어와 관련이 없으므로 이벤트 객체를 받는 것은 부적절하다.

Affirmation (자기 선언)

  1. 매일 일정 시간을 투자하여 TDD를 이용해 백준이나 프로그래머스에 있는 문제를 풀겠다.
  2. 매일 책을 읽는 시간과 분량을 정확히 정해두고 읽겠다.