1️⃣ 상품과 게시물 설계
main.js를 중심으로 한 클래스 설계 연습
Product,Article클래스 정의- 좋아요 / 즐겨찾기 기능
- 게시글, 상품 관련 서비스 메서드 작성
2️⃣ 중고마켓 API 구현
PostgreSQL 기반의 실전형 CRUD API 서버 구현
- 상품 및 게시글 등록/조회/수정/삭제 API
- 댓글 기능 + cursor 페이지네이션
- 이미지 업로드, 유효성 검사, 에러 핸들러 구현
.env환경 설정, CORS, 시딩 처리 등 실전 환경 구성- 🔗 배포 링크 : https://nb2-missions-sprint3.onrender.com
JWT 기반 인증 + 게시글/댓글/좋아요 기능 포함한 사용자 중심 API 서버 구현
- 회원가입 / 로그인 (Access + Refresh Token 발급)
- 유저 정보 조회 / 수정 / 비밀번호 변경
- 게시글, 댓글 등록/조회/수정/삭제 기능
- 게시글/상품에 대한 좋아요 및 좋아요 취소 기능
- 좋아요 여부(
isLiked) 포함 응답 및 좋아요한 목록 조회 - Prisma 관계형 설계 및 onDelete 적용
- 인증 미들웨어, 인가 처리, 유저 기반 권한 검증 구현
기존 Express.js 프로젝트를 타입스크립트로 마이그레이션하고, Controller/Service/Repository 계층 분리 적용
- tsconfig.json 파일 생성 및 옵션 설정 (예: outDir)
- 타입스크립트 개발 환경 세팅 (ts-node, nodemon 스크립트 포함)
- any 타입 최소화, 인터페이스 및 타입 별칭 활용
- declare로 req.user 등 타입 확장
- Controller, Service, Repository 계층 구조로 코드 리팩토링
- DTO 활용해 계층 간 데이터 전달 명확화
PostgreSQL 기반의 실전형 데이터셋으로 SQL 기본 문법 및 고급 분석 쿼리 작성 연습
- psql, pgAdmin4 환경에서 데이터베이스 연결 및 초기 세팅
- SELECT, WHERE, ORDER BY, GROUP BY 등 기본 SQL 문법 실습
- OFFSET 기반 및 커서 기반 페이지네이션 쿼리 구현
- JOIN, 집계 함수(SUM, COUNT) 활용한 통계 쿼리 작성
- 날짜별 주문 수량, 피자별 매출 등 실전 분석 쿼리 연습
- ORM 없이 순수 SQL로 데이터 관계 및 흐름 이해 강화
간단한 커뮤니티/마켓 서비스 구조 기반으로 SQL 스키마를 직접 설계하고, 주요 기능에 대한 쿼리 작성 실습
- users, products, posts, comments 등 핵심 테이블 직접 설계 및 관계 구성
- ERD 작성 및 다형성 테이블 구조 구성 (likes, comments)
- SELECT, INSERT, UPDATE, DELETE 등 기본 SQL 문법 실습
- OFFSET 기반, 커서 기반 페이지네이션 구현
- JOIN, LIKE 검색, GROUP BY + COUNT로 좋아요 수 포함 조회
- ORM 없이 순수 SQL로 전체 데이터 흐름과 관계형 모델 설계 역량 강화
좋아요한 상품 가격 변동 및 게시글 댓글에 대한 실시간 알림 기능 구현
- Notification 모델 추가 및 Prisma 스키마 수정
- NotificationRepository, NotificationService, NotificationController 구현
- ProductService에서 가격 변동 시 알림 생성 및 실시간 전송
- CommentService에서 댓글 작성 시 게시글 작성자에게 알림 생성 및 실시간 전송
- Socket.IO를 활용한 유저별 room join 및 실시간 알림 수신 기능 구현
- Notification 조회, 안 읽은 알림 개수 확인, 읽음 처리 API 구현
- 기존 상품/게시글/댓글 CRUD와 통합, 권한 검증 적용
Node.js + Express + Prisma 프로젝트에서 Jest와 Supertest를 활용한 테스트 자동화 구현
- 인증 API (로그인/회원가입) 테스트 작성
- 게시글, 상품 CRUD API 테스트 작성
- 댓글, 좋아요 기능 포함한 통합 테스트 작성
- 테스트용 데이터베이스 시드 및 teardown 구현
- Prisma ClientKnownRequestError 대응 및 외래 키 제약 처리
- 테스트 실행 시 발생하는 에러 로그 확인 및 디버깅
npm test로 전체 테스트 자동화 실행 및 결과 확인
Github Actions + Docker 기반 CI/CD 파이프라인 구축 및 배포 환경 구성
- Dockerfile 작성 및 Express 서버 컨테이너화
- docker-compose로 DB(Postgres) + API 서버 동시 실행
- 업로드 파일 유지 위해 Volume 설정 (
./uploads:/app/uploads) - Github Actions Workflow 작성
- PR 발생 시 테스트 자동 실행
- main 브랜치 push 시 AWS 배포 자동화
- 로컬/배포 환경에서 동일한 방식으로 앱 실행 가능하도록 구성
docker-compose up --build로 로컬 실행 및 테스트 완료