지난 초급 프로젝트는 팀원들 모두 첫 프로젝트를 진행하는 상황이라 소통과 일정 관리, 그리고 업무 분담 면에서 많은 어려움이 있었습니다. 작업이 겹치거나 누락되는 경우도 있었고, 서로의 의견을 조율하다가 오전을 모두 사용한 적도 있었습니다. 이런 경험은 당시에는 힘들었지만 팀 프로젝트에서 무엇이 중요한지를 배우는 값진 기회였습니다.
중급 프로젝트를 시작하며 설레는 마음도 크지만 긴장감도 함께 느껴집니다.
이전 경험을 바탕으로 소통을 더욱 원활히 하고 일정 관리와 업무 분담을 철저히 계획해 프로젝트를 성공적으로 마무리하며 팀원들과 함께 좋은 결과를 만들어내고 싶습니다. 이번에는 더 나은 협업을 통해 성장과 성취를 모두 이루는 뜻깊은 시간을 기대해 봅니다✨✨
기술 스택
기술 스택
Next.js: 리액트는 SPA(Single Page Application)이고, CSR(Client Side Rendering) 기반으로 앱의 첫 로딩시간이 길고, SEO 가 좋지 않다는 단점이 있다. 이를 해결하기 위해 SSR(서버 사이드 렌더링), SSG(정적 사이트 생성), 파일 기반 라우팅, 성능 최적화 등 다양한 기능을 기본적으로 제공하는 Next.js를 선택했습니다.
TypeSciprt: ts는 컴파일 과정에서 오류를 잡아내기 때문에 오류를 잡아내기 쉽고, 협업 시 팀원들이 작성한 코드에 타입이 명시되어 흐름을 쉽게 파악할 수 있기 때문에 선택했습니다.
Module Css: 컴포넌트 단위로 파일을 분리하고 스타일을 적용할 수 있어 클래스 이름 충돌을 방지해 주기 때문에 선택했습니다.
Redux: Redux는 많은 대규모 프로젝트에서 사용되고 있는 상태 관리 도구이기 때문에 학습을 통해 최신 트렌드와 함께 실제 프로젝트에서의 활용 방법을 익히기 위해 선택했습니다.
Vercel: Next.js 프로젝트와의 뛰어난 호환성을 제공하며 간편하게 배포와 호스팅이 가능하기 때문에 선택했습니다. (빠른 배포 속도 & 무료)
Notion: 팀원들과 함께 Notion 페이지를 관리하며 프로젝트에 맡겨진 업무, 진행 현황 등을 실시간으로 공유하고 피드백을 받을 수 있어 선택했습니다.
네이밍 컨벤션
디렉터리 & 파일명 케밥 케이스(kebab-case) ex) item-category
컴포넌트 파스칼 케이스(PascalCase) ex) ItemComponent
변수명 카멜 케이스(camelCase) ex) itemData
커스텀훅 use + 파스칼 케이스(PascalCase) ex) useItemData.tsx
이미지 & 아이콘 img, ic + 스네이크 케이스(snake_case) ex) img_item.svg ic_item.svg