
Humming Vision
요구사항 분석
스토리보드
디자인
사용 기술
- Next.js
- (App Router) B2B 웹사이트의 검색 엔진 노출을 위한 SEO 최적화에 중점을 두고, 동적 sitemap 생성, generateMetadata를 통한 제품별 메타데이터 자동 생성, 서버 사이드 렌더링 등의 기능을 활용하기 위해 사용하였습니다.
- TypeScript
- 프론트엔드와 백엔드 전체에서 타입 안정성을 확보하고, OpenAPI 스펙 기반으로 자동 생성된 타입을 통해 API 응답 타입 불일치를 방지하여 안정적인 풀스택 개발을 위해 사용하였습니다.
- Tailwind CSS
- 서버 컴포넌트에서도 사용 가능한 zero-runtime CSS 특성과 유틸리티 클래스 기반의 빠른 UI 개발을 위해 선택하였습니다.
- React Query
- 백엔드 API와의 통신에서 발생하는 서버 상태를 효율적으로 관리하고, 제품 목록 및 상세 정보의 캐싱과 자동 리페치를 통해 불필요한 네트워크 요청을 줄이기 위해 사용하였습니다.
- Zustand
- 간단하고 가벼운 보일러플레이트로 모달, 사이드바 등 UI 관련 클라이언트 전역 상태를 관리하기 위해 사용하였습니다.
- React Hook Form
- 제품 등록/수정, 문의 작성 등 복잡한 폼 데이터를 효율적으로 관리하고, Zod 스키마를 통한 타입 안전한 유효성 검사를 구현하기 위해 사용하였습니다.
- NestJS
- TypeScript 기반의 구조화된 백엔드 아키텍처를 구축하고, 의존성 주입(DI)과 모듈 시스템을 활용하여 확장 가능하고 유지보수가 용이한 RESTful API 서버를 개발하기 위해 사용하였습니다.
- PostgreSQL
- 제품(카메라, 렌즈, 조명 등), 관리자, 문의 등 복잡한 관계를 가진 데이터를 안정적으로 저장하고 관리하기 위해 관계형 데이터베이스를 선택하였습니다.
- AWS
- EC2에서 Docker 기반 애플리케이션을 배포하고, S3를 통해 제품 이미지 및 문서 파일(PDF, 매뉴얼 등)을 안전하게 저장하며 확장 가능한 인프라를 구축하기 위해 사용하였습니다.
- Docker
- 멀티 스테이지 빌드를 통한 이미지 최적화와 개발-운영 환경의 일관성을 보장하며, 프론트엔드와 백엔드를 각각 컨테이너화하여 배포를 간소화하기 위해 사용하였습니다.
- GitHub Actions
- main 브랜치에 푸시 시 자동으로 Docker 이미지를 빌드하고 EC2 서버에 배포하는 CI/CD 파이프라인을 구축하여 수동 배포 작업을 제거하고 배포 안정성을 높이기 위해 사용하였습니다.
- Turborepo
- Next.js 프론트엔드, NestJS 백엔드, 공유 타입 패키지를 하나의 모노레포에서 효율적으로 관리하고, 백엔드 API 스펙을 자동으로 TypeScript 타입으로 변환하여 프론트엔드에서 사용할 수 있도록 구성하였습니다.













