벌써 데브코스를 시작한 지 한 달이 지났다.
이론 위주의 학습을 지나, 드디어 첫 팀 프로젝트를 진행하게 됐다.
이번 1차 프로젝트는
기본적인 템플릿은 제공되었고,
그 위에 팀 회의를 통해 구조와 구현 방향을 정해 프로젝트를 진행했다.
Spring으로 CRUD를 직접 구현해보는 첫 팀 프로젝트라 기대도 되고, 살짝 긴장도 되는 순간이었다.
첫 번째 프로젝트의 주제는 카페 메뉴 관리 서비스다.
Spring Framework를 사용해
카페의 커피 메뉴 데이터를 관리하는
CRUD(Create, Read, Update, Delete) 기능을 구현하는 것이 핵심 목표다.
단순히 기능 구현에 그치지 않고,
HTTP 메서드 설계, 데이터베이스 연동, 팀 단위 협업까지
백엔드 개발의 기본 흐름을 경험하는 데 목적이 있다.
| 구분 | 내용 |
|---|---|
| 프로젝트 기간 | 12/15 (월) 09:00 ~ 12/22 (월) 18:00 |
| 프로젝트 발표 | 12/22 (월) |
| 팀 구성 | 총 4명, 1차 프로젝트 팀으로 진행 |
짧은 기간이지만,
그만큼 빠르게 설계하고 구현하며 집중도가 필요한 프로젝트다.
POST 메서드 사용GET 메서드 사용PUT 메서드 사용DELETE 메서드 사용우리는 작은 로컬 카페 ‘Grids & Circles’라는 설정이다.
💡
고객에게는
“당일 오후 2시 이후 주문 건은 다음 날 배송이 시작됩니다.”
라고 안내한다.
이번 프로젝트는 총 4명이 각 도메인을 맡아 병렬로 개발을 진행했다.
각자 맡은 역할과 책임은 아래와 같다.
상품 도메인은 카페에서 판매하는 상품 정보를 관리하는 영역이다.
GET /product : 상품 리스트 조회
GET /product/{id} : 특정 상품 조회
POST /product : 상품 생성
PUT /product?id= : 상품 정보 수정
DELETE /product?id= : 상품 삭제
주문 도메인은 사용자의 주문 생성부터 상태 관리까지를 담당한다.
POST /orders : 주문 생성 (시간 기준 주문 병합)
GET /orders/{orderId} : 주문 단건 조회
PATCH /orders/{orderId}/status : 주문 상태 변경
이틀 전 데이터 및 주문 완료 건 삭제는 스케줄러로 처리
어드민 도메인은 주문 전체를 관리하고, 예외 케이스를 처리하는 영역이다.
(미정) POST /admin : 어드민 생성
(미정) GET /admins : 어드민 조회
GET /admin/lists : 주문 리스트 조회
(미정) GET /admin/list/{id} : 주문 단건 조회
(미정) PUT /admin/list/{id} : 주문 처리
DELETE /admin/list/{id} : 주문 삭제
(미정) GET /admin/lists/{userId} : userId 기반 주문 리스트 조회
유저 도메인은 회원가입 없는 구조에서 고객 정보를 관리하는 역할을 맡는다.
POST /users : 유저 생성
GET /users : 유저 전체 조회
GET /users/{userId} : 유저 단건 조회
PUT /users/{userId} : 유저 수정
DELETE /users/{userId} : 유저 삭제
enum 정의entity/Orderentity/OrderStatusenum 분리 및 정의controllerservicerepositorydtoorders 폴더 위치 변경 및 도메인 구조 정리enum으로 분리하는 방식이