Skip to content

juhyunO/Codepresso

Repository files navigation

CodePresso Cafe Platform

카페 온라인 주문 및 관리 플랫폼 시스템

프로젝트 소개

CodePresso는 카페 운영을 위한 종합 웹 플랫폼입니다.
고객은 온라인으로 메뉴를 주문하고, 리뷰를 작성하며, 쿠폰을 활용할 수 있습니다.
관리자는 상품, 주문, 회원, 지점 등을 효율적으로 관리할 수 있습니다.


주요 기능

회원 관리

  • 회원가입 및 로그인 (Spring Security 기반 인증)
  • 이메일 인증 (Naver SMTP)
  • 프로필 관리 (프로필 이미지 업로드)
  • 아이디/비밀번호 찾기
  • 찜 목록 관리

상품 관리

  • 상품 카테고리별 조회
  • 상품 검색 기능
  • 상품 상세 정보
  • 할인가격 적용

장바구니

  • 장바구니 추가/수정/삭제
  • 장바구니 목록 조회

주문 및 결제

  • 주문 생성 및 관리
  • Toss Payments 결제 연동
  • 주문 내역 조회
  • 주문 상세 정보

리뷰 시스템

  • 상품 리뷰 작성/수정/삭제
  • 리뷰 조회 및 평점

게시판

  • 공지사항 및 게시글 작성/수정/삭제
  • 게시판 타입별 분류
  • 게시글 목록 및 상세 조회

쿠폰 시스템

  • 쿠폰 발급 및 관리
  • 쿠폰 적용

지점 관리

  • 지점 정보 조회
  • 지점 목록

기술 스택

Backend

  • Java 21
  • Spring Boot 3.5.5
    • Spring MVC
    • Spring Data JPA
    • Spring Security
    • Spring Boot DevTools
    • Spring Boot Docker Compose
  • Hibernate (JPA 구현체)
  • Lombok (보일러플레이트 코드 제거)
  • Bean Validation (입력 검증)

Database

  • MySQL 8.4 (Docker Container)
  • JPA/Hibernate (ORM)

View

  • JSP (Jakarta Server Pages)
  • JSTL 3.0 (Jakarta Standard Tag Library)

Build Tool

  • Gradle 8.x

DevOps

  • Docker Compose (MySQL 컨테이너)

External Services

  • Toss Payments API (결제 시스템)
  • Naver SMTP (이메일 발송)

API Documentation

  • Swagger UI / OpenAPI 3 (SpringDoc)

Testing

  • JUnit 5
  • Spring Boot Test
  • H2 Database (테스트용 인메모리 DB)

프로젝트 구조

codepresso/
├── src/
│   ├── main/
│   │   ├── java/com/codepresso/codepresso/
│   │   │   ├── config/              # 설정 클래스 (Security, Swagger 등)
│   │   │   ├── controller/          # 컨트롤러 레이어
│   │   │   │   ├── auth/            # 인증 관련
│   │   │   │   ├── board/           # 게시판
│   │   │   │   ├── branch/          # 지점
│   │   │   │   ├── cart/            # 장바구니
│   │   │   │   ├── coupon/          # 쿠폰
│   │   │   │   ├── member/          # 회원
│   │   │   │   ├── order/           # 주문
│   │   │   │   ├── payment/         # 결제
│   │   │   │   ├── product/         # 상품
│   │   │   │   └── review/          # 리뷰
│   │   │   ├── service/             # 서비스 레이어 (비즈니스 로직)
│   │   │   ├── repository/          # 레포지토리 레이어 (데이터 접근)
│   │   │   ├── entity/              # JPA 엔티티
│   │   │   ├── dto/                 # 데이터 전송 객체
│   │   │   ├── converter/           # Entity ↔ DTO 변환
│   │   │   ├── security/            # Spring Security 설정
│   │   │   ├── exception/           # 예외 처리
│   │   │   └── CodepressoApplication.java
│   │   ├── resources/
│   │   │   ├── application.yml      # 애플리케이션 설정
│   │   │   └── static/              # 정적 리소스 (CSS, JS, 이미지)
│   │   └── webapp/
│   │       └── WEB-INF/
│   │           └── views/           # JSP 뷰 파일
│   └── test/                        # 테스트 코드
├── build.gradle                     # Gradle 빌드 설정
├── docker-compose.yml               # Docker Compose 설정 (MySQL)
└── README.md

아키텍처

프로젝트는 레이어드 아키텍처 (Layered Architecture) 패턴을 따릅니다:

  1. Controller Layer: HTTP 요청/응답 처리
  2. Service Layer: 비즈니스 로직 처리
  3. Repository Layer: 데이터베이스 접근
  4. Entity Layer: 도메인 모델 (JPA 엔티티)
  5. DTO Layer: 계층 간 데이터 전송
  6. Converter Layer: Entity와 DTO 간 변환

Git 브랜치 전략

프로젝트는 Git Flow 전략을 따릅니다:

  • main: 프로덕션 배포 브랜치
  • develop: 개발 통합 브랜치
  • feature/*: 새로운 기능 개발 브랜치
  • hotfix/*: 긴급 버그 수정 브랜치

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published