π« Permit Seoul - ν°μΌ μλ§€ μλ²
Permit Seoul μ 곡μ°/νμ€ν°λ²/νμ¬ λ±μ μν ν°μΌ μλ§€ μλΉμ€μ λ°±μλ μλ²μ
λλ€.
ꡬλΆ
κΈ°μ
Language
Java 17
Framework
Spring Boot 3.2.1
ORM
Spring Data JPA
Security
Spring Security, JWT, OAuth2 (Google, Kakao)
Database
MySQL 8.x
Cache
Redis
API Client
Spring Cloud OpenFeign
ꡬλΆ
κΈ°μ
Cloud
AWS EC2, S3
Container
Docker, Amazon Corretto 17
CI/CD
GitHub Actions
Logging
Loki, Logstash, Discord Webhook
Resilience
Resilience4j (Circuit Breaker)
ꡬλΆ
κΈ°μ
Payment
Toss Payments API
OAuth
Google, Kakao μμ
λ‘κ·ΈμΈ
Notification
Email (SMTP), Notion API
QR Code
ZXing
π ν°μΌ μλ§€ μμ€ν
μ€μκ° μ¬κ³ κ΄λ¦¬ : Redis κΈ°λ° λμμ± μ μ΄
μμ½ μΈμ
κ΄λ¦¬ : 7λΆ TTLμ μμ½ μΈμ
μΌλ‘ μ’μ μμ ν보
μ’μ/ν°μΌ μ ν μ ν : λ€μν ν°μΌ νμ
λ° νμ°¨ μ§μ
Toss Payments μ°λ : κ²°μ μΉμΈ λ° μ·¨μ API
νΈλμμ
λΆλ¦¬ μν€ν
μ² : μΈλΆ API νΈμΆμ DB νΈλμμ
μμ λΆλ¦¬νμ¬ μ»€λ₯μ
ν¨μ¨μ± ν₯μ
Resilience4j Circuit Breaker : μΈλΆ API μ₯μ μ μν· λΈλ μ΄μ»€ μ μ©
νλΆ μ μ±
: νμ¬ μμ 3μΌ μ κΉμ§ μ·¨μ κ°λ₯
OAuth2 μμ
λ‘κ·ΈμΈ : Google, Kakao
JWT μΈμ¦ : Access Token κΈ°λ° μΈμ¦
πͺ μ΄λ²€νΈ/νμ¬ κ΄λ¦¬
νμ¬ CRUD : κ΄λ¦¬μ μ μ© νμ¬ μμ±/μμ /μμ
νμν
μ΄λΈ κ΄λ¦¬ : Notion API μ°λ νμν
μ΄λΈ
μ’μ λ°°μΉλ : μ΄λ²€νΈλ³ μ’μ μ΄λ―Έμ§ κ΄λ¦¬
π₯ κ²μ€νΈ κ΄λ¦¬ (Admin)
QR 체ν¬μΈ : ZXing κΈ°λ° QR μ½λ μμ± λ° μ€μΊ
κ²μ€νΈ μ΄λ : μ΄λ©μΌ μ΄λμ₯ λ°μ‘
μ
μ₯ κ΄λ¦¬ : μ€μκ° μ²΄ν¬μΈ/체ν¬μμ
ν μΈ μΏ ν° : μ΄λ²€νΈλ³ μΏ ν° λ°κΈ λ° μ μ©
μΏ ν° μ½λ μμ± : κ³ μ μΏ ν° μ½λ μλ μμ±
src/main/java/com/permitseoul/permitserver/
βββ PermitServerApplication.java
βββ domain/ # λλ©μΈλ³ λͺ¨λ
β βββ admin/ # κ΄λ¦¬μ κΈ°λ₯
β β βββ coupon/ # μΏ ν° κ΄λ¦¬
β β βββ event/ # νμ¬ κ΄λ¦¬
β β βββ guest/ # κ²μ€νΈ κ΄λ¦¬
β β βββ ticket/ # ν°μΌ κ΄λ¦¬
β β βββ timetable/ # νμν
μ΄λΈ κ΄λ¦¬
β βββ auth/ # μΈμ¦/μΈκ°
β βββ coupon/ # μΏ ν°
β βββ event/ # νμ¬
β βββ payment/ # κ²°μ
β βββ reservation/ # μμ½
β βββ reservationsession/ # μμ½ μΈμ
β βββ ticket/ # ν°μΌ
β βββ user/ # μ¬μ©μ
βββ global/ # κ³΅ν΅ λͺ¨λ
βββ aop/ # AOP μ€μ
βββ config/ # μ€μ ν΄λμ€
βββ exception/ # μμΈ μ²λ¦¬
βββ external/ # μΈλΆ API μ°λ
βββ filter/ # νν°
βββ redis/ # Redis μ€μ
βββ response/ # μλ΅ κ°μ²΄
βββ util/ # μ νΈλ¦¬ν°
GitHub Actionsλ₯Ό ν΅ν μλ λ°°ν¬ νμ΄νλΌμΈ:
main λΈλμΉ Push
β
GitHub Actions
β
ββββββββββββββββββββββββββ
β 1. Checkout β
β 2. Set up JDK 17 β
β 3. Build (Gradle) β
β 4. Docker Build & Push β
ββββββββββββββββββββββββββ
β
Docker Hub
β
EC2 SSH Deploy
CI-PROD.yml / CI_DEV.yml: CI νμ΄νλΌμΈ
DOCKER-PROD-CD.yml / DOCKER-DEV-CD.yml: CD νμ΄νλΌμΈ