문서 작성 스타일 가이드
기본 원칙
목적
- 실무에 즉시 적용 가능한 문서
- 명확하고 간결한 설명
- 체계적인 정보 구조화
- 지속적인 업데이트 가능
언어 사용
- 주 언어: 한국어
- 기술 용어: 영어 그대로 사용
- 코드 및 주석: 영어
문서 구조
표준 템플릿
# [문서 제목]
## 개요
[주제에 대한 간단한 설명]
## 목차
- [섹션 1]
- [섹션 2]
- [섹션 3]
## 상세 내용
### [섹션 1]
[내용]
### [섹션 2]
[내용]
## 예제
[실제 사용 예제]
## 참고 자료
- [링크 1]
- [링크 2]
---
*최종 업데이트: YYYY-MM-DD*체크박스 활용
## 구현 단계
- [ ] 요구사항 분석
- [ ] 설계 문서 작성
- [ ] 개발 환경 설정
- [x] 기본 구조 구현
- [ ] 테스트 작성
- [ ] 배포코드 블록 작성
기본 형식
```kotlin
// 설명이 필요한 부분에 주석 추가
class UserService(
private val userRepository: UserRepository
) {
suspend fun findUser(id: Long): User? {
return userRepository.findById(id)
}
}
```여러 파일 표시
### UserController.kt
```kotlin
// Controller 코드UserService.kt
// Service 코드
## 다이어그램 활용
### Mermaid 다이어그램
```markdown
```mermaid
graph TD
A[클라이언트] -->|요청| B[API Gateway]
B --> C[인증 서비스]
B --> D[비즈니스 서비스]
D --> E[데이터베이스]
### 플로우 차트
```markdown
```mermaid
flowchart LR
Start([시작]) --> Input[/입력 받기/]
Input --> Process[처리]
Process --> Decision{검증}
Decision -->|성공| Success[완료]
Decision -->|실패| Error[에러 처리]
Error --> Input
## API 문서화
### 엔드포인트 설명
```markdown
### 사용자 조회 API
**Endpoint**: `GET /api/v1/users/{userId}`
**Request**:
- Path Parameter:
- `userId` (Long): 사용자 ID
**Response**:
```json
{
"success": true,
"data": {
"id": 1,
"name": "홍길동",
"email": "user@example.com"
}
}
Error Response:
{
"success": false,
"error": {
"code": "USER_NOT_FOUND",
"message": "사용자를 찾을 수 없습니다"
}
}
## 표 활용
### 비교 표
```markdown
| 기능 | Spring MVC | Spring WebFlux |
|------|-----------|----------------|
| 프로그래밍 모델 | 동기/블로킹 | 비동기/논블로킹 |
| 스레드 모델 | Thread per Request | Event Loop |
| 적합한 경우 | 일반적인 웹 애플리케이션 | 고성능, 대용량 처리 |
설정 값 표
| 속성 | 기본값 | 권장값 | 설명 |
|-----|-------|-------|-----|
| connection.timeout | 30s | 10s | 연결 타임아웃 |
| pool.size | 10 | 20-50 | 커넥션 풀 크기 |링크 및 참조
내부 링크
자세한 내용은 [개발 가이드라인](./development-guidelines.md)을 참조하세요.외부 링크
## 참고 자료
- [Spring 공식 문서](https://spring.io/guides)
- [Kotlin 코루틴 가이드](https://kotlinlang.org/docs/coroutines-guide.html)
- [AWS Best Practices](https://aws.amazon.com/architecture/best-practices/)주의사항 표시
중요 정보
> **참고**: 이 기능은 Spring Boot 3.0 이상에서만 사용 가능합니다.
> **주의**: 프로덕션 환경에서는 반드시 SSL을 활성화하세요.
> **경고**: 이 설정을 변경하면 기존 데이터가 손실될 수 있습니다.팁과 트릭
💡 **Tip**: IntelliJ IDEA에서 `Ctrl+Shift+F`로 전체 검색이 가능합니다.
🔧 **트러블슈팅**: 연결 오류가 발생하면 방화벽 설정을 확인하세요.버전 관리
변경 이력
## 변경 이력
- 2024-12-01: 초기 버전 작성
- 2024-12-15: Spring Boot 3.x 내용 추가
- 2024-12-20: 성능 최적화 섹션 보강버전별 차이점
### Spring Boot 버전별 차이
#### 2.x
- Java 8+ 지원
- Spring Framework 5.x
#### 3.x
- Java 17+ 필수
- Spring Framework 6.x
- Jakarta EE 9+실제 적용 예시
프로젝트 설정 문서
# 프로젝트 설정 가이드
## 개발 환경
- JDK 17
- Kotlin 1.9+
- Spring Boot 3.2
- Gradle 8.0
## 설정 단계
- [ ] JDK 17 설치
- [ ] IDE 설정 (IntelliJ IDEA 권장)
- [ ] 프로젝트 클론
- [ ] 의존성 설치: `./gradlew build`
- [ ] 로컬 DB 설정
- [ ] 애플리케이션 실행: `./gradlew bootRun`
## 트러블슈팅
### 빌드 실패 시
1. JDK 버전 확인: `java -version`
2. Gradle 캐시 정리: `./gradlew clean`
3. IDE 캐시 무효화
---
*최종 업데이트: 2024-12-20*