Skip to content

UIverse-Team/UIverse-BE

Repository files navigation

💫 [TEAM] UIverse / Fast Campus Devcamp Final Project

🕊️ 1. Team Introduction

안녕하세요 저희는 팀 UIVerse입니다. UIverse개발과 디자인이 조화로운 우주라는 의미를 담고 있습니다.

UIVerse는 모든 사람들의 개인화된 쇼핑 경험을 만들어 나가기 위해 노력합니다.


🕊️ 2. Team Member

Backend Backend Backend Backend Backend
곽진호 지한얼 장병중 박소윤 박의연
Frontend Frontend Frontend
박진현 양명규 최영애
UXUI UXUI
나소나 한은서

🕊️ 3. Ground Rules

  1. 프로젝트 관련 이야기는 Slack 파이널 프로젝트 5조 - be 채널에서만!
  2. 회의 시간에는 주제에 집중! 딴 얘기는 잠시 미뤄두기
  3. 밤샘 코딩은 자율 선택! - 강요 ❌, 눈치 ❌, 본인 리듬대로 🎵
  4. Slack 채팅에는 이모지로 꼭 체크해줘요! ✅
  5. 항상 웃으며 소통하기 😊
  6. 30분 이상 외출은 공유 필수 - 잠깐 나갈 땐 슬쩍 알려줘요!
  7. 다른 팀과 비교는 금지 ❌ - 우리는 우리만의 속도로!
  8. 하루에 한 번, 팀원 상태 체크 - “네 문제가 곧 내 문제”라는 마음으로 🤝
  9. 고민은 최대 1시간까지만! - 나머지는 팀에게 맡겨요. 우리, 팀이니까요 🙌

🕊️ 4. Project Introduction

Ora 오늘도, 내일도, 오라

Ora는 이탈리아어로 "지금"을 뜻합니다.
편리하고 빠르게 쇼핑하고자 하는 소비자들에게 오라는 언제나 열려있음을 의미합니다.
오라고객 데이터 수집과 분석을 통해 사용자 맞춤형 쇼핑 경험을 제공하는 것을 목표로 하는 쇼핑 플랫폼입니다.

Project Service

기능 주기능 상세 기능
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 파일 업로드 파일 업로드

🕊️ 5. Project Structure

✨ 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  

🕊️ 6. ERD

ERD


🕊️ 7. Backend Tech Stack

슬라이드1

🕊️ 8. Infra Tech Stack

슬라이드2

🕊️ 9. Infra Structure

아키텍처

🕊️ 10. 코드 스타일 가이드

(1) 어노테이션이 붙은 파라미터는 두 줄로 작성

    @GetMapping
    public PagedModel<PostResponse> getAllPosts(@RequestParam int page,

                                                @RequestParam int size) {
         ...     
    }

(3) 어노테이션 순서

  • 애노테이션은 피라미드 형식으로 정리합니다.
  • 글자수가 적은 애노테이션이 위에 위치하며, 아래로 갈수록 길이가 길어집니다.
@RestController
@RequiredArgsConstructor
@RequestMapping("/api/uiverse")

(3) 코드 라인 길이 : 코드 한 줄의 길이는 최대 120자를 초과하지 않습니다.

(4) Setter 사용 지양 : Setter 메서드 사용을 지양하고, 생성자나 빌더 패턴을 활용합니다.

(5) Record 사용 권장 : DTO 역할을 하는 클래스에서는 record를 필수적으로 사용합니다.

(6) 생성자와 빌더 패턴 : @Builder는 클래스가 아닌 생성자에 사용하며, 생성자는 private으로 선언합니다.

(7) DTO 네이밍 규칙 : DTO 클래스는 Request, Response 접두사를 사용합니다.

(8) 테이블 네이밍 규칙 : 테이블명은 복수형을 사용합니다.

(9) 클래스, 인터페이스, Enum 선언 후 개행

  • 클래스, 인터페이스, Enum을 선언한 후에는 한 줄 개행을 추가합니다.
  • ⚠️ 단, 메서드 바디{ } 내에서 불필요한 개행을 하지 않습니다.

(11) 메서드 체이닝 시 개행 규칙 : 메서드 체이닝 시 .을 기준으로 개행합니다.

return response().status("OK")
    .data(data)
    .build();

(12) return문 개행 규칙 : return 문은 위에 한 줄 개행 후 작성합니다.

...

return result;

🕊️ 11. 프로젝트 운영

(1) Milestone 관리

  • 프로젝트 주요 목표를 Milestone으로 정의합니다.
  • 해당 Milestone에서 처리해야하는 작업을 Issue로 발행합니다.

(2) Issue 관리

  • GitHub Issue를 통해 작업과 문제를 관리합니다.
  • IssueLabel을 사용하여 작업 유형과 상태를 구분합니다.

(3) Brach 생성 규칙

  • 작업은 이슈 번호를 기반으로 브랜치를 생성하여 진행합니다.
  • 브랜치는 be/feat/issueNumber 네이밍 규칙을 따릅니다.

(4) Branch 전략

  • Branch는 main - develop - feature 구조를 따릅니다.
  • main : 운영 환경에서 사용되는 안정적인 코드만 포함합니다.
  • develop : 새로운 기능이 병합되기 전 테스트 및 통합이 이루어지는 브랜치입니다.
  • feature : 각 기능 개발을 위한 브랜치로, 작업이 완료되면 develop 브랜치로 병합됩니다.
*   main
|   
|   *   develop
|   |   
|   |   *   be/feat/1
|   |   *   be/feat/2
|   |   *   be/feat/3
|   |  /
|   | /
|   *
|  /
| /
*   

About

DevCamp Final Project✨

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 5

Languages