⛳️ 프로젝트 목적

[실무 경험 기반 구현]

[프론트엔드 전문성 및 백엔드 협업 역량 강화]


🛠️ 개발 환경 & 기술 스택

사용 언어 (FE/BE) TypeScript (FE/BE)
웹 프레임워크 (FE/BE) [FE/BE] Next.js (v14, App Router)
Auth 라이브러리 NextAuth.js (v4)
상태 관리 라이브러리 Zustand
스타일링 도구 TailwindCSS
ORM / DBMS Prisma / Supabase (PostgreSQL)
패키지 관리자 pnpm (v9.5.0)
런타임 환경 Node.js v20
이미지 CDN Supabase Storage
배포 (FE/BE) FE 배포: Vercel, BE 배포: Vercel (API 라우팅, 서버리스 함수), Supabase (PostgreSQL, DBMS)
문서화 도구 / IDE Notion / VSCode
개발 환경 / 운영 체제 Mac

❓ 사용 기술 선택 이유

<aside> 🛠️ [프레임워크] Next.js Full-Stack 기능을 활용해 프론트엔드와 백엔드를 유연하게 오가며 작업할 수 있고, 실무에서 사용했던 프레임워크라 익숙하기 때문에 채택하였습니다.

</aside>

<aside> 🔐 [인증/인가] NextAuth.js 실무에서 credential 인증/인가 기능을 접해본 경험이 있어 선택했습니다.

</aside>

<aside> 🐻 [상태관리] Zustand 경량 라이브러리로 최적화에 유리하며, 러닝 커브가 낮아 빠르게 습득할 수 있어 선택했습니다.

</aside>

<aside> 🎨 [스타일도구] TailwindCSS Styled-Components는 동적 스타일링에 유리하지만, 반복적인 디자인 피드백에서는 수정이 복잡했습니다. 빠른 개발과 일관된 디자인이 중요한 개인 작업에서는 TailwindCSS가 더 효율적이라 판단했습니다.

</aside>

<aside> 📦 [패키지매니저] pnpm Yarn Classic과 사용법이 유사해 익숙하면서도 유령 종속성 문제를 해결한 패키지 매니저라 선택했습니다.

</aside>

<aside> 🚚 [배포] Vercel Next.js의 ISR 기능을 지원하고, GitHub와 연동해 배포가 간편하며, 별도 서버 없이 백엔드 API 관리가 가능해 채택했습니다.

</aside>

<aside> 🚚 [배포/CDN] Supabase 데이터베이스를 클라우드에서 관리해주며, 인프라 설정에 대한 부담이 없고 Storage를 활용해 CDN으로 활용하기 위해 사용했습니다.

</aside>