| νλͺ© | λ΄μ© |
|---|---|
| νλ‘μ νΈλͺ | ON SURVEY |
| μ£Όμ κΈ°μ | Java 21, Spring Boot 3, Spring JPA, QueryDSL, Redis, MySQL |
| DOMAIN | μ€λͺ |
|---|---|
| FORM | μ€λ¬Έ μμ± λ° μμ |
| MEMBER | μ¬μ©μ μ 보 κ΄λ¦¬ |
| MANAGEMENT | μ€λ¬Έ κ΄λ¦¬ λ° μ§κ³ |
| PARTICIPATION | μ€λ¬Έ μ°Έμ¬ |
| PAYMENT | κ²°μ |
| λ©±λ±μ± & λΆμ° λ½ | PromotionGrant + Redis λ½μΌλ‘ μ€λ³΅ μ§κΈ λ°©μ§ |
Backend/
ββ src/
β ββ main/
β ββ java/OneQ/OnSurvey/
β β ββ domain/
β β β ββ form/ # μ€λ¬Έ μμ± λ° μμ
β β β β ββ api/
β β β β β ββ FormController
β β β β β ββ dto/
β β β β β ββ request/
β β β β β ββ response/
β β β β β ββ DefaultSurveyDto
β β β β ββ application/
β β β β β ββ SurveyService
β β β β β ββ QuestionService
β β β β ββ domain/
β β β β β ββ model/ # λλ©μΈ μν°ν° (POJO)
β β β β β β ββ Survey
β β β β β β ββ Question
β β β β β ββ repository/
β β β β β ββ SurveyRepository
β β β β β ββ QuestionRepository
β β β β ββ infra/
β β β β ββ entity/ # μμμ± μν°ν° (@Entity)
β β β β β ββ SurveyEntity
β β β β β ββ QuestionEntity
β β β β β ββ ScreeningEntity
β β β β ββ mapper/ # POJO <-> JpaEntity 컨λ²ν°
β β β β ββ jpa/
β β β β ββ SurveyJpaRepository
β β β ββ management/ # μ€λ¬Έ κ΄λ¦¬ λ° μ§κ³
β β β ββ member/ # μ¬μ©μ κ΄λ¦¬
β β β ββ participation/ # μ€λ¬Έ μ°Έμ¬
β β ββ global/ # 곡μ μ€μ
β β ββ annotation/
β β ββ auth/
β β ββ config/
β β ββ entity/
β β ββ exception/
β β ββ handler/
β β ββ infra/
β β ββ response/
β β ββ util/
β ββ resources/
β ββ application.yml # νκ²½ μ€μ
ββ build.gradle
ββ Dockerfile
ββ docker-compose.yml
ββ README.md
# JAR νμΌ λΉλ (Gradle)
./gradlew bootJar
# μ΄λ―Έμ§ μμ±
docker build -t yourrepo/yourproject:latest .| ν μ€νΈ μ’ λ₯ | μ€ν λͺ λ Ή | λΉκ³ |
|---|---|---|
| λ¨μ ν μ€νΈ | ./gradlew test |
JUnit 5 + Mockito |
| ν΅ν© ν μ€νΈ | ./gradlew integrationTest (νλ‘μ νΈμ μ μ) |
Testcontainers λ‘ μ€μ DB ꡬλ |
| 컀λ²λ¦¬μ§ λ³΄κ³ μ | ./gradlew jacocoTestReport |
build/reports/jacoco/test/html/index.html νμΈ |
ν μ€ νλ‘λͺ¨μ ν¬μΈνΈ μ§κΈμ λ€μ μ‘°ν©μΌλ‘ μ€λ³΅ μ§κΈμ λ°©μ§ν©λλ€.
- DB μ λν¬ μ μ½ + λκ΄μ λ½ κΈ°λ° λ©±λ± μ²λ¦¬
- Redis κΈ°λ° λΆμ° λ½
- ν μ€ API μ¬μλ λ° κ²°κ³Ό ν΄λ§
- ν¬μΈνΈ μ§κΈ μ¬λΆ νλκ·Έ
- μν°ν°:
promotion_grant - μ λν¬ μ μ½ (1 μ μ Β· 1 μ€λ¬Έ Β· 1 μ½λλΉ 1건)
user_key,survey_id,promotion_code
| μΉμ | ν΅μ¬ λ΄μ© |
|---|---|
| λ ν¬μ§ν 리 κ°μ | Java 21 + Spring Boot 3 κΈ°λ° λ°±μλ μλ² |
| μ£Όμ λλ©μΈ | μ€λ¬Έ μμ±, κ΄λ¦¬, μ°Έμ¬ / μ¬μ©μ λ° κ²°μ κ΄λ¦¬ |
| ꡬ쑰 | Bounded Contextλ₯Ό κΈ°λ°μΌλ‘ ν λλ©μΈ λΆλ¦¬ |
| λ°°ν¬ | Dockerfile, dockerβcompose, GitHub Actions |