
2024년 4월 부터 2025년 2월까지 카운터컬쳐컴퍼니에서 근무하며,
댄스보컬 온라인교육 사이트를 개발하였다.
백엔드는 strapi 와 rdb 로 구성되었고,
나는 프론트엔드를 담당하여, react, nextjs 로 개발하였다.
내가 직접 개발하진 않았지만 strapi 의 생산성을 다시 한 번 느낄 수 있었고,
프론트엔드 부분은 이전 프로젝트에서 보다 디테일한 부분을 더 보완하여 개발하였다.
가자 큰 원칙으로는 한 파일당 200 줄이 넘어가지 않도록, 한 commit 당 50 줄이 넘어가지 않도록 노력하며 개발을 하였다.
atomic 디자인을 통해 atoms, molecules, organisms, templates, pages 단계로 뷰 컴포넌트를 관리했는데,
atoms 는 스타일과 props 만 담고 있고,
molecules 는 atoms 의 조합,
organisms 는 가장 지저분한 단계일 수 있지만, 간단히 각 templates 에서만 사용되는 뷰와 상태가 포함된 컴포넌트,
templates 는 page 별로 하나씩 존재하며, organisms 의 조합이며 뷰와 상태가 포함된 컴포넌트,
pages 는 데이터와 template 을 매핑 시키는 단계, server state 나 브라우저 상태를 관리하는 컴포넌트.
이렇게 구분하면 될 것 같은데, 실제로는 templates 에서 server state 를 많이 사용한 것 같다.
local state 는 useState 로, gloabl state 는 zustand 로, server state 는 react-query 로 관리하였다.
페이지별 custom hook 으로 local state 를 관리하여,
store 라는 디렉토리로 global state 를 관리하고,
root custom hook 으로 server state 를 관리했는데,
다음에는 하나의 hooks 디렉토리로 local, global, server state 를 구분하여 사용하여도 좋을 것 같다!
이번에는 zod 라는 라이브러리를 활용하여 api response 로 받은 데이터를 zod 로 타입을 체크하여, 백엔드 데이터가 달라지거나 null 이나 undefined 로 들어오면 error 가 뜨도록 의도하여 개발하니, 뭔가 타이트하게 체크하는 느낌이 들어서 좋았다.
프로젝트 막바지에는 새로오신 개발자분이 typescript class 를 활용을 잘해주셔서 class 도 조금 활용해볼 수 있었는데,
다음 프로젝ㅌ에서는 state 와 zod 로 관리했던 내용을 class 를 활용하여 개발해보고 싶다!
'References' 카테고리의 다른 글
채권관리프로그램 개발 (0) | 2025.03.05 |
---|---|
주식회사 틴틴 (0) | 2023.12.24 |
키움증권 해외선물 자동매매 시그널메이커 개발 (0) | 2023.06.13 |
위니아에이드 자급제 보상서비스 관리 시스템 개발 (0) | 2023.06.13 |
스타트업 electron app 개발 (0) | 2023.06.13 |