안녕하세요 저희는 팀 UIVerse입니다.
UIverse란 개발과 디자인이 조화로운 우주라는 의미를 담고 있습니다.
UIVerse는 모든 사람들의 개인화된 쇼핑 경험을 만들어 나가기 위해 노력합니다.
| Backend | Backend | Backend | Backend | Backend |
|---|---|---|---|---|
| 곽진호 | 지한얼 | 장병중 | 박소윤 | 박의연 |
| Frontend | Frontend | Frontend |
|---|---|---|
| 박진현 | 양명규 | 최영애 |
| UXUI | UXUI |
|---|---|
![]() |
![]() |
| 나소나 | 한은서 |
- 프로젝트 관련 이야기는 Slack
파이널 프로젝트 5조 - be채널에서만! - 회의 시간에는 주제에 집중! 딴 얘기는 잠시 미뤄두기
- 밤샘 코딩은 자율 선택! - 강요 ❌, 눈치 ❌, 본인 리듬대로 🎵
- Slack 채팅에는 이모지로 꼭 체크해줘요! ✅
- 항상 웃으며 소통하기 😊
- 30분 이상 외출은 공유 필수 - 잠깐 나갈 땐 슬쩍 알려줘요!
- 다른 팀과 비교는 금지 ❌ - 우리는 우리만의 속도로!
- 하루에 한 번, 팀원 상태 체크 - “네 문제가 곧 내 문제”라는 마음으로 🤝
- 고민은 최대 1시간까지만! - 나머지는 팀에게 맡겨요. 우리, 팀이니까요 🙌
Ora는 이탈리아어로 "지금"을 뜻합니다.
편리하고 빠르게 쇼핑하고자 하는 소비자들에게 오라는 언제나 열려있음을 의미합니다.
오라는 고객 데이터 수집과 분석을 통해 사용자 맞춤형 쇼핑 경험을 제공하는 것을 목표로 하는 쇼핑 플랫폼입니다.
| 기능 | 주기능 | 상세 기능 |
|---|---|---|
| 1. 회원 관리 | 1.1 회원가입 | 로컬 회원가입 API |
| 1.2 로그인 |
로컬 로그인 및 소셜 로그인, 로그인 상태 체크 및 로그아웃 |
|
| 1.3 회원 정보 관리 |
회원 정보 조회, 아이디 찾기, 비밀번호/전화번호/이름 변경, 회원 탈퇴, 비밀번호 재설정 |
|
| 2. 장바구니 관리 | 2.1 회원 장바구니 | 회원 장바구니 조회, 추가, 수량 변경, 삭제 |
| 2.2 비회원 장바구니 | 비회원 장바구니 조회 | |
| 3. 주문/결제 관리 | 3.1 주문 생성 |
회원 장바구니 주문, 비회원 장바구니 주문, 즉시 주문 |
| 3.2 주문 조회 | 주문 목록 조회 및 주문 상세 조회 | |
| 3.2 주문 취소 | 주문 취소 및 취소 내역 조회 | |
| 3.3 결제 처리 |
결제 승인 요청, 결제 승인 결과, 결제 페이지 렌더링 |
|
| 4. 배송지 관리 | 4.1 배송지 관리 |
배송지 추가, 상세 조회/수정/삭제, 배송지 목록 및 기본 배송지 조회 |
| 5. 상품 및 리뷰/찜 관리 | 5.1 상품 조회 |
상품 목록 조회, 단건 조회, 오늘의 특가, 인기 상품, 카테고리별 조회, 최근 본 상품 조회 |
| 5.2 상품 리뷰 |
리뷰 좋아요, 리뷰 작성, 수정, 삭제, 상세 조회, 마이페이지 리뷰 조회, 리뷰 이미지 조회 |
|
| 5.3 상품 찜 | 상품 찜 추가/삭제, 찜 목록 조회 | |
| 5.4 스토어 찜 | 스토어 찜 추가/삭제, 찜 목록 조회 | |
| 6. 인증 및 검색 | 6.1 SMS 인증 | 인증코드 발송/확인 |
| 6.2 이메일 인증 |
이메일 인증 여부 체크, 회원가입/비밀번호 재설정 이메일 인증 |
|
| 6.3 검색 | 사용자 검색어 입력 요청 | |
| 7. 급상승 키워드 | 7.1 키워드 조회 | 쇼핑몰 메인 페이지의 급상승 키워드와 연관 상품 리스트 조회 |
| 7.2 키워드 상세 | 쇼핑몰 랭킹 디테일 페이지의 급상승 키워드와 연관 상품 리스트 조회 | |
| 8. 공지사항/문의사항 | 8.1 공지사항 | 전체 공지 조회, 상세 조회, 검색 |
| 8.2 문의사항 | 문의사항 작성, 목록 조회, 상세 조회 | |
| 9. 기타 | 9.1 파일 업로드 | 파일 업로드 |
✨ UIverse는 도메인 중심의 멀티모듈 구조를 채택하고 있으며, 핵심 비즈니스 로직과 사용자 행동 로그를 분리하여 관리합니다.
├── 📂 UIverse-BE/
│ ├── 📄 .gitignore
│ ├── 📄 README.md # 프로젝트 개요 및 가이드 문서
│ ├── 📂 .ebextensions/ # AWS Elastic Beanstalk 관련 설정
│ ├── 📂 src/
│ │ ├── 📂 main/
│ │ │ ├── 📂 java/
│ │ │ │ └── 📂 com/
│ │ │ │ └── 📂 jishop/ # 도메인별 패키지 구성 (product, payment 등)
│ │ │ │ ├── 📂 controller/
│ │ │ │ ├── 📂 service/
│ │ │ │ ├── 📂 domain/
│ │ │ │ ├── 📂 repository/
│ │ │ │ └── 📂 dto/
│ │ │ └── 📂 resources/ # 설정 및 정적 리소스
│ │ │ ├── 📂 config/ # 환경별 application.yml (local, secret, prod)
│ │ │ ├── 📂 static/
│ │ │ └── 📂 templates/
│ │ └── 📂 test/
│ ├── 📄 build.gradle
│ └── 📄 settings.gradle
├── 📂 log/ # 사용자 로그 추적 모듈 (서브 프로젝트)
│ ├── 📂 src/
│ │ ├── 📂 main/
│ │ │ ├── 📂 java/
│ │ │ │ └── 📂 com/
│ │ │ │ └── 📂 log/
│ │ │ │ ├── 📂 controller/
│ │ │ │ ├── 📂 domain/
│ │ │ │ ├── 📂 repository/
│ │ │ │ ├── 📂 redis/ # Redis 연동 모듈
│ │ │ │ └── 📂 service/
│ │ │ └── 📂 resources/
│ │ │ ├── 📂 config/ # 로그 모듈 전용 설정
│ │ │ ├── 📂 k6-scripts/ # K6 부하 테스트 스크립트
│ │ │ └── 📄 application.yml
│ │ └── 📂 test/
│ │ └── 📂 java/ # 로그 모듈 테스트
│ ├── 📄 build.gradle
│ └── 📄 Dockerfile
@GetMapping
public PagedModel<PostResponse> getAllPosts(@RequestParam int page,
@RequestParam int size) {
...
}- 애노테이션은 피라미드 형식으로 정리합니다.
- 글자수가 적은 애노테이션이 위에 위치하며, 아래로 갈수록 길이가 길어집니다.
@RestController
@RequiredArgsConstructor
@RequestMapping("/api/uiverse")(3) 코드 라인 길이 : 코드 한 줄의 길이는 최대 120자를 초과하지 않습니다.
(4) Setter 사용 지양 : Setter 메서드 사용을 지양하고, 생성자나 빌더 패턴을 활용합니다.
(5) Record 사용 권장 : DTO 역할을 하는 클래스에서는 record를 필수적으로 사용합니다.
(6) 생성자와 빌더 패턴 : @Builder는 클래스가 아닌 생성자에 사용하며, 생성자는 private으로 선언합니다.
(7) DTO 네이밍 규칙 : DTO 클래스는 Request, Response 접두사를 사용합니다.
(8) 테이블 네이밍 규칙 : 테이블명은 복수형을 사용합니다.
- 클래스, 인터페이스,
Enum을 선언한 후에는 한 줄 개행을 추가합니다. ⚠️ 단, 메서드 바디{ }내에서 불필요한 개행을 하지 않습니다.
(11) 메서드 체이닝 시 개행 규칙 : 메서드 체이닝 시 .을 기준으로 개행합니다.
return response().status("OK")
.data(data)
.build();(12) return문 개행 규칙 : return 문은 위에 한 줄 개행 후 작성합니다.
...
return result;- 프로젝트 주요 목표를
Milestone으로 정의합니다. - 해당
Milestone에서 처리해야하는 작업을Issue로 발행합니다.
- GitHub
Issue를 통해 작업과 문제를 관리합니다. Issue와Label을 사용하여 작업 유형과 상태를 구분합니다.
- 작업은 이슈 번호를 기반으로 브랜치를 생성하여 진행합니다.
- 브랜치는
be/feat/issueNumber네이밍 규칙을 따릅니다.
- Branch는
main-develop-feature구조를 따릅니다. main: 운영 환경에서 사용되는 안정적인 코드만 포함합니다.develop: 새로운 기능이 병합되기 전 테스트 및 통합이 이루어지는 브랜치입니다.feature: 각 기능 개발을 위한 브랜치로, 작업이 완료되면develop브랜치로 병합됩니다.
* main
|
| * develop
| |
| | * be/feat/1
| | * be/feat/2
| | * be/feat/3
| | /
| | /
| *
| /
| /
*

