Skip to content

SOPT-all/35-APPJAM-SERVER-CAKEY

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

322 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🍰 CAKEY - 케이크 κ°€κ²Œ 탐색 μ„œλ²„

CAKEYλŠ” μ„œμšΈ μ§€ν•˜μ² μ—­ 기반으둜 케이크 κ°€κ²Œλ₯Ό νƒμƒ‰ν•˜κ³  λ””μžμΈμ„ μ°œν•  수 μžˆλŠ” μ„œλΉ„μŠ€μ˜ λ°±μ—”λ“œ μ„œλ²„μž…λ‹ˆλ‹€.

πŸ“‹ λͺ©μ°¨


πŸ›  기술 μŠ€νƒ

Backend

ꡬ뢄 기술
Language Java 17
Framework Spring Boot 3.2.7
ORM Spring Data JPA, QueryDSL 5.0.0
Security Spring Security, JWT (JJWT 0.11.5)
OAuth Spring OAuth2 Client (Kakao)
Database MySQL 8.x, PostgreSQL
Cache Caffeine Cache
API Client Spring Cloud OpenFeign 4.1.0

Infrastructure

ꡬ뢄 기술
Cloud AWS EC2
Container Docker, Amazon Corretto 17
CI/CD GitHub Actions
Notification Discord Webhook

λ©€ν‹° λͺ¨λ“ˆ ꡬ쑰

cakey-server
β”œβ”€β”€ cakey-api         # API μ—”λ“œν¬μΈνŠΈ, 컨트둀러, μ„œλΉ„μŠ€ 계측 (μ‹€ν–‰ κ°€λŠ₯ JAR)
β”œβ”€β”€ cakey-domain      # 도메인 μ—”ν‹°ν‹°, λ ˆν¬μ§€ν† λ¦¬, QueryDSL
β”œβ”€β”€ cakey-auth        # JWT 인증, 카카였 OAuth2 연동
β”œβ”€β”€ cakey-common      # 곡톡 μƒμˆ˜, μœ ν‹Έλ¦¬ν‹°, μ˜ˆμ™Έ 처리
└── cakey-external    # μ™ΈλΆ€ API 연동 (Discord μ•Œλ¦Ό)

✨ μ£Όμš” κΈ°λŠ₯

οΏ½ μ§€ν•˜μ² μ—­ 기반 검색

  • 지역별 κ°€κ²Œ 탐색: μ„œμšΈ μ£Όμš” 20+ μ§€ν•˜μ² μ—­ μ£Όλ³€ 케이크 κ°€κ²Œ 검색
  • μ’Œν‘œ 기반 지도 쑰회: κ°€κ²Œ μœ„μΉ˜ μ’Œν‘œ 제곡
  • 필터링: 역별 κ°€κ²Œ/λ””μžμΈ 필터링

πŸŽ‚ 케이크 λ””μžμΈ 탐색

  • μΉ΄ν…Œκ³ λ¦¬ 필터링: 생일(BIRTH), 응원(CHEER), 기념일(ANNIV), μ‹œμ¦Œ(SEASON)
  • ν…Œλ§ˆ 필터링: 귀여움, λ―Έλ‹ˆλ©€, 캐릭터, λŸ­μ…”λ¦¬, 유머, νŒνƒ€μ§€ λ“±
  • μ •λ ¬ μ˜΅μ…˜: 인기순/μ΅œμ‹ μˆœ 쑰회

❀️ μ°œν•˜κΈ° μ‹œμŠ€ν…œ

  • 케이크 μ°œν•˜κΈ°: λ§ˆμŒμ— λ“œλŠ” λ””μžμΈ μ €μž₯
  • κ°€κ²Œ μ°œν•˜κΈ°: μ’‹μ•„ν•˜λŠ” κ°€κ²Œ μ €μž₯
  • 찜 λͺ©λ‘ 쑰회: 인기순/μ΅œμ‹ μˆœ μ •λ ¬

πŸ” μ‚¬μš©μž 인증

  • 카카였 μ†Œμ…œ 둜그인: OAuth2 기반 κ°„νŽΈ 둜그인
  • JWT 인증: Access Token + Refresh Token 캐싱

πŸͺ κ°€κ²Œ 정보

  • 상세 정보 쑰회: μ£Όμ†Œ, μ „ν™”λ²ˆν˜Έ, μ˜μ—…μ‹œκ°„
  • μ‚¬μ΄μ¦ˆ/λ§› 정보: κ°€κ²Œλ³„ 케이크 μ‚¬μ΄μ¦ˆ 및 λ§› 정보
  • 카카였 μ˜€ν”ˆμ±„νŒ…: κ°€κ²Œ 문의 링크 제곡

οΏ½ ν”„λ‘œμ νŠΈ ꡬ쑰

cakey-api/src/main/java/com/cakey/
β”œβ”€β”€ CakeyServerApplication.java      # 메인 μ• ν”Œλ¦¬μΌ€μ΄μ…˜
β”œβ”€β”€ cake/                            # 케이크 도메인
β”‚   β”œβ”€β”€ controller/                  # API 컨트둀러
β”‚   β”œβ”€β”€ dto/                         # μš”μ²­/응닡 DTO
β”‚   β”œβ”€β”€ exception/                   # 도메인 μ˜ˆμ™Έ
β”‚   └── service/                     # λΉ„μ¦ˆλ‹ˆμŠ€ 둜직
β”œβ”€β”€ cakelikes/                       # 케이크 μ°œν•˜κΈ°
β”œβ”€β”€ store/                           # κ°€κ²Œ 도메인
β”œβ”€β”€ storelikes/                      # κ°€κ²Œ μ°œν•˜κΈ°
β”œβ”€β”€ user/                            # μ‚¬μš©μž 도메인
β”œβ”€β”€ common/
β”‚   β”œβ”€β”€ exception/handler/           # μ „μ—­ μ˜ˆμ™Έ 처리
β”‚   β”œβ”€β”€ filter/                      # 인증 ν•„ν„°
β”‚   β”œβ”€β”€ resolver/                    # Argument Resolver
β”‚   └── response/                    # 톡합 응닡 ν˜•μ‹
└── config/                          # μ„€μ • 클래슀
cakey-domain/src/main/java/com/cakey/
β”œβ”€β”€ cake/
β”‚   β”œβ”€β”€ domain/                      # μ—”ν‹°ν‹° (Cake, DayCategory)
β”‚   β”œβ”€β”€ dto/                         # 쿼리 DTO
β”‚   β”œβ”€β”€ facade/                      # 도메인 둜직 μ‘°ν•©
β”‚   └── repository/                  # JPA + QueryDSL λ ˆν¬μ§€ν† λ¦¬
β”œβ”€β”€ cakelike/                        # 케이크 μ°œν•˜κΈ° 도메인
β”œβ”€β”€ store/                           # κ°€κ²Œ 도메인 (Store, Station)
β”œβ”€β”€ storelike/                       # κ°€κ²Œ μ°œν•˜κΈ° 도메인
β”œβ”€β”€ user/                            # μ‚¬μš©μž 도메인
β”œβ”€β”€ caketheme/                       # 케이크 ν…Œλ§ˆ (ThemeName)
β”œβ”€β”€ size/                            # 케이크 μ‚¬μ΄μ¦ˆ
β”œβ”€β”€ operationtime/                   # μ˜μ—…μ‹œκ°„
└── common/                          # BaseTimeEntity λ“±
cakey-auth/src/main/java/com/cakey/
β”œβ”€β”€ client/kakao/api/                # 카카였 API ν΄λΌμ΄μ–ΈνŠΈ
β”œβ”€β”€ jwt/auth/                        # JWT 생성/검증
└── exception/                       # 인증 μ˜ˆμ™Έ
cakey-external/src/main/java/com/cakey/
└── feign/discord/                   # Discord μ•Œλ¦Ό 연동

πŸ”„ CI/CD

GitHub Actionsλ₯Ό ν†΅ν•œ μžλ™ 배포 νŒŒμ΄ν”„λΌμΈ:

dev 브랜치 Push
       ↓
  GitHub Actions
       ↓
  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
  β”‚ 1. Checkout            β”‚
  β”‚ 2. Set up JDK 17       β”‚
  β”‚ 3. application.yml 생성 β”‚
  β”‚ 4. Build (Gradle)      β”‚
  β”‚ 5. Docker Build & Push β”‚
  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
       ↓
  Docker Hub
       ↓
  EC2 SSH Deploy

μ›Œν¬ν”Œλ‘œμš° 파일

  • CI.yml: PR β†’ dev 브랜치 λΉŒλ“œ 검증
  • DOCKER-CD.yml: dev 브랜치 Push μ‹œ Docker λΉŒλ“œ 및 EC2 배포

About

πŸ’› 🍰 μšΈκ³ μ‹Άμ–΄ μ§ˆλ•Œλ„ λ―Έμ†Œμ§“κ²Œ λ§Œλ“œλŠ” λ§ˆλ²• 🍰 πŸ’›

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors