diff --git a/README.md b/README.md index 32416ad..3a94d12 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,28 @@ - **Container**: Docker + Kubernetes - **API Documentation**: Swagger (SpringDoc OpenAPI) +## 개발 환경 설정 + +### Eclipse/STS 사용 시 필수 설정 + +**Annotation Processing 설정이 필요합니다.** + +STS에서 프로젝트를 열었을 때 컴파일 오류가 발생하는 경우, 다음 설정을 확인하세요: + +1. **프로젝트 우클릭** → **Properties** 선택 +2. **Java Compiler** → **Annotation Processing** 선택 +3. 다음 설정을 확인/적용: + - **Enable project specific settings** 체크 + - **Enable annotation processing** 체크 + - **Enable processing in editor** 체크 해제 (선택사항) + - **Generated source directory**: `build/generated/sources/annotationProcessor/java/main` + - **Generated test source directory**: `build/generated/sources/annotationProcessor/java/test` + +**설정 이유:** +- MapStruct 매퍼 인터페이스의 구현체가 자동 생성됩니다 +- QueryDSL Q클래스들이 자동 생성됩니다 +- 이 설정이 없으면 컴파일 오류가 발생할 수 있습니다 + ## 개발 가이드 ### 1. 프로젝트 구조 @@ -66,7 +88,7 @@ public class ApiResponseDto { "success": true, "code": 201, "message": "COMMON_SUCCESS_CREATED", - "description": "Created successfully", + "description": "성공적으로 생성되었습니다", "data": { "seq": 1, "userId": "user123", @@ -82,7 +104,7 @@ public class ApiResponseDto { "success": false, "code": 409, "message": "USER_ID_DUPLICATE", - "description": "User ID already exists" + "description": "이미 존재하는 사용자 ID입니다" } ``` @@ -142,8 +164,8 @@ public enum ApiResponseCode { #### 토큰 구성 -- **Access Token**: 15분 (900,000ms) - API 요청 시 사용 -- **Refresh Token**: 7일 (604,800,000ms) - 쿠키에 저장, 자동 갱신 +- **Access Token** - 쿠키에 저장, 자동 갱신 +- **Refresh Token** - 쿠키에 저장, 자동 갱신 #### 자동 토큰 갱신 diff --git a/build.gradle b/build.gradle index 89a2fb2..247d5b1 100644 --- a/build.gradle +++ b/build.gradle @@ -62,7 +62,7 @@ dependencies { testImplementation 'org.springframework.boot:spring-boot-starter-test' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' - // querydsl + // QueryDSL implementation 'io.github.openfeign.querydsl:querydsl-jpa:6.11' annotationProcessor 'io.github.openfeign.querydsl:querydsl-apt:6.11:jpa' annotationProcessor 'jakarta.annotation:jakarta.annotation-api' @@ -83,7 +83,8 @@ tasks.named('test') { useJUnitPlatform() } -// querydsl +// annotationProcessor(QueryDSL, MapStruct) +// * Annotation Processing 설정이 필요한경우 "build/generated/sources/annotationProcessor/java/main" 경로 등록 def generatedSrcDir = layout.buildDirectory.dir("generated/sources/annotationProcessor/java/main").get().asFile clean {