본문으로 건너뛰기

23.06.30(금)

하루 요약

  1. 10시 ~ 22시 : 공유오피스
  2. 22시 ~ 23시 : 운동

오늘 한 일

  1. Gloddy 개발
    1. 회원가입 1페이지 구현
    2. Top NavigationBar Component 구현
    3. 체크 박스 Component 구현
  2. CS공부
    1. 전역 상태 관리

오늘 배운 내용 요약

  1. React의 단방향 데이터 흐름으로 인한 Props Drilling을 해결하기 위해 전역 상태 관리가 등장하였다.
  2. Context API는 React에서 제공하는 전역 상태 관리 라이브러리이지만, Context.Provider로 감싼 하위의 컴포넌트가 리렌된다는 치명적인 성능 이슈가 있다.
  3. Redux는 Store, Action, Reducer로 구성
    1. Store는 상태가 관리되는 오직 하나의 공간
    2. Action은 Store에 상태를 변경하기 위한 명령
      1. dispatch()를 사용하여 Action을 Reducer에게 전달
    3. Reducer는 ACtion의 주문을 보고 Store의 상태를 업데이트
  4. Redux는 단방향 모델링이라 예측이 쉽고, Store라는 저장소에 상태가 중앙화 되어 관리가 쉽고, 읽기 전용이라 상태 추적이 쉬움

추가로 학습할 것

  1. Redux가 완벽히 이해가 되지 않는다. Reducer, Redux 아직도 헷갈린다. 더 깊이 있는 학습이 필요하다.
  2. Redux외의 내가 사용했던 Recoil의 장단점 또한 궁금하다.

오늘의 생각

오늘 개발을 하며, UI 라이브러리를 쓰는 게 좋을 지, 안 쓰는 것이 좋을 지 고민을 많이 했다. 고민한 결과, 다른 프로젝트, 기업들에서는 자신만의 컴포넌트들을 만들어서 사용하는 것을 보고 나 또한 컴포넌트를 최대한 직접 만들어서 사용했다. 그렇다고 모든 기능을 내가 직접 만들어서 사용할 수는 없는 격이다. 나만의 규칙을 정해야겠다.

정말 구현하기 어렵고, 구현하는 것이 비효율적이라는 생각이 들 때, 그 때 라이브러리를 사용하도록 하자. 그 외에는 직접 만들자.

프로젝트를 여럿 해봤지만, 아직 부족하다는 것을 또 느꼈다. 휴대폰 번호를 입력할 때 ' - '를 자동으로 넣어주는 기능을 구현하는데 여기서 에를 많이 썼다. chatGPT의 도움도 조금 받았다. 이것 뿐만 아니라 tailwind에 정적으로 class할당하기, layout이 최대로 확장 안되는 이슈 등 많은 이슈들도 있었다.

아직 많이 부족함을 느꼈고, 이 프로젝트를 하면서 내 것으로 전부 소화해내야겠다.

그리고, 태어나 처음으로 돈 받고 개발을 하는 만큼 성의 있게, 최선을 다해 개발을 하도록 하자.