20211113 절망의 계곡 마흔세번째 주

프로젝트 연속 2개 째… 힘들 줄은 알았지만 이렇게 힘들 줄은 몰랐다.

프로젝트

  • firebase로 authentication과 DB를 쓰는데 관계형 DB가 아니다보니 서버에서 관계를 잡아서 보내주려고 하는 중. 이게 아닌 것 같긴 한데 되돌아가기엔 너무 멀리 와버렸다.
  • 스터디그룹(including 유저리스트, 포스팅), 유저(including 포인트 정보, 스터디그룹)로만 나눠서 작업하는데도 데이터 구조가 그려지지 않아서 삽질 중

모의면접 질문

  • 클로저, 프로토타입, 생성자함수, this 바인딩
  • 쿠키/세션, 로컬스토리지/세션스토리지, CORS 에러
  • 크로스브라우징: resetCSS/NormalizeCSS, PostCSS로 prefix 넣어주기, 웹팩/바벨로 JS 버전 내려주기 등
  • 가상돔 (React): 더 구체적으로 대답할 것

알고리즘

  • 연속된 숫자가 주어질 때, 중간의 값을 업데이트하고 구간합을 구할 수 있는 자료구조인 인덱스트리를 구현해보았다.
  • 원래 구간합을 구해놓고 하나하나 값을 업데이트하는 것보다(시간복잡도는 까먹음), 이진트리로 자료구조화 했을 때가 log n의 시간복잡도를 갖는다고 한다.

React 스터디

  • Todo-List 만들기 (참고: TodoMVC for React)
    • Todo Container, Todo-List, Todo-Item, Footer로 분리
    • todos mockdata를 useState에 넣어 초기화하여 todos와 setTodos를 세팅
    • Todo Container가 직접 가지고 있는 input에서의 key-up event와, Todo Item에 있는 완료여부 checkbox input, 수정 input, 삭제 button 각 이벤트에 대해 setTodos로 변경해주기
  • 해결해야 할 것들
    • input이 value를 이미 가지고 있는 경우(e.g. completed된 Todo Item의 checked 속성이라거나, 수정을 위해 각 todo는 label로 처리하고 뒤에 감춰둔 input에 준 동일한 text value 등)에는 onChange event를 걸어주지 않으면 read-only가 된다는 경고가 자꾸 뜨는데, onChange로 핸들러를 줬는데도 해결이 안된다.
    • setState를 해야하다보니 이벤트핸들러를 state 설정한 상위 컴포넌트에서 이벤트가 발생하는 하위요소까지 props로 계속 넘겨줘야 하는데 이게 맞나 모르겠다.

느낀 점

  • 프로젝트를 하니까 정말로 많이 배운다. 기획자와 백엔드 개발자의 소중함을 포함하여…
  • 배우는 건 참 좋은 거지만 프로젝트 할때마다 기력이 소진되어서 당장 쓰러질 것 같은데 죽기 전 가족 얼굴이라도 한 번 더 보고 싶다.