[STS 호환성 작업] 주석 추가
This commit is contained in:
		
							
								
								
									
										30
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										30
									
								
								README.md
									
									
									
									
									
								
							@@ -10,6 +10,28 @@
 | 
				
			|||||||
- **Container**: Docker + Kubernetes
 | 
					- **Container**: Docker + Kubernetes
 | 
				
			||||||
- **API Documentation**: Swagger (SpringDoc OpenAPI)
 | 
					- **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. 프로젝트 구조
 | 
					### 1. 프로젝트 구조
 | 
				
			||||||
@@ -66,7 +88,7 @@ public class ApiResponseDto<T> {
 | 
				
			|||||||
  "success": true,
 | 
					  "success": true,
 | 
				
			||||||
  "code": 201,
 | 
					  "code": 201,
 | 
				
			||||||
  "message": "COMMON_SUCCESS_CREATED",
 | 
					  "message": "COMMON_SUCCESS_CREATED",
 | 
				
			||||||
  "description": "Created successfully",
 | 
					  "description": "성공적으로 생성되었습니다",
 | 
				
			||||||
  "data": {
 | 
					  "data": {
 | 
				
			||||||
    "seq": 1,
 | 
					    "seq": 1,
 | 
				
			||||||
    "userId": "user123",
 | 
					    "userId": "user123",
 | 
				
			||||||
@@ -82,7 +104,7 @@ public class ApiResponseDto<T> {
 | 
				
			|||||||
  "success": false,
 | 
					  "success": false,
 | 
				
			||||||
  "code": 409,
 | 
					  "code": 409,
 | 
				
			||||||
  "message": "USER_ID_DUPLICATE",
 | 
					  "message": "USER_ID_DUPLICATE",
 | 
				
			||||||
  "description": "User ID already exists"
 | 
					  "description": "이미 존재하는 사용자 ID입니다"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -142,8 +164,8 @@ public enum ApiResponseCode {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#### 토큰 구성
 | 
					#### 토큰 구성
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- **Access Token**: 15분 (900,000ms) - API 요청 시 사용
 | 
					- **Access Token** - 쿠키에 저장, 자동 갱신
 | 
				
			||||||
- **Refresh Token**: 7일 (604,800,000ms) - 쿠키에 저장, 자동 갱신
 | 
					- **Refresh Token** - 쿠키에 저장, 자동 갱신
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#### 자동 토큰 갱신
 | 
					#### 자동 토큰 갱신
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -62,7 +62,7 @@ dependencies {
 | 
				
			|||||||
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
 | 
						testImplementation 'org.springframework.boot:spring-boot-starter-test'
 | 
				
			||||||
	testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
 | 
						testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// querydsl
 | 
						// QueryDSL
 | 
				
			||||||
	implementation 'io.github.openfeign.querydsl:querydsl-jpa:6.11'
 | 
						implementation 'io.github.openfeign.querydsl:querydsl-jpa:6.11'
 | 
				
			||||||
	annotationProcessor 'io.github.openfeign.querydsl:querydsl-apt:6.11:jpa'
 | 
						annotationProcessor 'io.github.openfeign.querydsl:querydsl-apt:6.11:jpa'
 | 
				
			||||||
	annotationProcessor 'jakarta.annotation:jakarta.annotation-api'
 | 
						annotationProcessor 'jakarta.annotation:jakarta.annotation-api'
 | 
				
			||||||
@@ -83,7 +83,8 @@ tasks.named('test') {
 | 
				
			|||||||
	useJUnitPlatform()
 | 
						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
 | 
					def generatedSrcDir = layout.buildDirectory.dir("generated/sources/annotationProcessor/java/main").get().asFile
 | 
				
			||||||
 | 
					
 | 
				
			||||||
clean {
 | 
					clean {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user