mirror of
https://github.com/hwanny1128/HGZero.git
synced 2025-12-06 18:26:23 +00:00
528 lines
17 KiB
Markdown
528 lines
17 KiB
Markdown
# Meeting 서비스 백엔드 개발 결과
|
|
|
|
## 1. 개요
|
|
|
|
### 1.1 개발 범위
|
|
- **서비스명**: Meeting Service
|
|
- **포트**: 8081
|
|
- **아키텍처**: Clean/Hexagonal Architecture
|
|
- **프레임워크**: Spring Boot 3.3.0, Java 21
|
|
- **데이터베이스**: PostgreSQL (meetingdb)
|
|
- **캐시**: Redis (database: 1)
|
|
- **메시징**: Azure Event Hubs
|
|
|
|
### 1.2 개발 방식
|
|
3단계 점진적 개발:
|
|
- **Stage 0 (준비)**: 프로젝트 구조 파악 및 메인 애플리케이션 생성
|
|
- **Stage 1 (공통 모듈)**: common 모듈 검토
|
|
- **Stage 2 (서비스 구현)**: Config, Domain, Service, Gateway, Controller 레이어 구현
|
|
|
|
---
|
|
|
|
## 2. Stage 0: 준비 단계
|
|
|
|
### 2.1 완료 항목
|
|
✅ 기존 개발 결과 분석
|
|
- 62개 Java 파일 확인 (Domain, Service, UseCase, Gateway, Entity, Repository)
|
|
- Clean/Hexagonal 아키텍처 패턴 확인
|
|
- 패키지 구조 문서 작성 (develop/dev/package-structure-meeting.md)
|
|
|
|
✅ MeetingApplication.java 생성
|
|
```java
|
|
위치: meeting/src/main/java/com/unicorn/hgzero/meeting/MeetingApplication.java
|
|
패키지: com.unicorn.hgzero.meeting
|
|
ComponentScan: {"com.unicorn.hgzero.meeting", "com.unicorn.hgzero.common"}
|
|
```
|
|
|
|
✅ application.yml 확인
|
|
```yaml
|
|
서버 포트: 8081
|
|
데이터베이스: PostgreSQL (meetingdb)
|
|
Redis: database 1
|
|
JWT 설정: access-token-validity 3600초
|
|
CORS: http://localhost:*
|
|
```
|
|
|
|
✅ 컴파일 에러 수정
|
|
- TemplateEntity 패키지 경로 수정
|
|
- Dashboard 도메인 클래스 확장:
|
|
- userId, period 필드 추가
|
|
- Statistics 클래스 필드 확장 (11개 필드)
|
|
- 도메인 메서드 추가:
|
|
- MinutesSection.update(String title, String content)
|
|
- Todo.update(String title, String description, String assigneeId, LocalDate dueDate, String priority)
|
|
- Minutes.incrementVersion()
|
|
- Minutes.updateTitle(String title)
|
|
|
|
### 2.2 컴파일 결과
|
|
```
|
|
BUILD SUCCESSFUL
|
|
경고: 1개 (MinutesEntity @Builder.Default)
|
|
에러: 0개
|
|
```
|
|
|
|
---
|
|
|
|
## 3. Stage 1: common 모듈
|
|
|
|
### 3.1 common 모듈 구성
|
|
✅ 검토 완료
|
|
|
|
| 카테고리 | 클래스 | 설명 |
|
|
|---------|--------|------|
|
|
| AOP | LoggingAspect | 로깅 관점 |
|
|
| Config | JpaConfig | JPA 설정 |
|
|
| DTO | ApiResponse | API 응답 포맷 |
|
|
| DTO | JwtTokenDTO, JwtTokenRefreshDTO, JwtTokenVerifyDTO | JWT 토큰 DTO |
|
|
| Entity | BaseTimeEntity | 생성/수정 시간 베이스 엔티티 |
|
|
| Exception | BusinessException | 비즈니스 예외 |
|
|
| Exception | ErrorCode | 에러 코드 |
|
|
| Exception | InfraException | 인프라 예외 |
|
|
| Util | DateUtil | 날짜 유틸리티 |
|
|
| Util | StringUtil | 문자열 유틸리티 |
|
|
|
|
### 3.2 컴파일 결과
|
|
```
|
|
BUILD SUCCESSFUL
|
|
```
|
|
|
|
---
|
|
|
|
## 4. Stage 2: meeting 서비스 구현
|
|
|
|
### 4.1 Config 레이어 (완료)
|
|
|
|
#### 4.1.1 SecurityConfig
|
|
✅ 구현 완료
|
|
```
|
|
위치: infra/config/SecurityConfig.java
|
|
기능:
|
|
- JWT 기반 인증
|
|
- CORS 설정 (환경변수 기반)
|
|
- Stateless 세션 관리
|
|
- 공개 엔드포인트: /actuator/**, /swagger-ui/**, /health, /ws/**
|
|
- WebSocket 엔드포인트 허용
|
|
```
|
|
|
|
#### 4.1.2 JWT 인증 시스템
|
|
✅ 구현 완료
|
|
```
|
|
위치: infra/config/jwt/
|
|
|
|
JwtTokenProvider:
|
|
- JWT 토큰 검증 및 파싱
|
|
- 사용자 정보 추출 (userId, username, authority)
|
|
- 토큰 만료 확인
|
|
|
|
JwtAuthenticationFilter:
|
|
- HTTP 요청에서 JWT 토큰 추출
|
|
- Spring Security 인증 컨텍스트 설정
|
|
- 공개 엔드포인트 필터 제외
|
|
|
|
UserPrincipal:
|
|
- 인증된 사용자 정보 객체
|
|
- userId, username, authority 필드
|
|
- 권한 확인 메서드 (isAdmin, isUser)
|
|
```
|
|
|
|
#### 4.1.3 SwaggerConfig
|
|
✅ 구현 완료
|
|
```
|
|
위치: infra/config/SwaggerConfig.java
|
|
기능:
|
|
- OpenAPI 3.0 설정
|
|
- Bearer JWT 인증 스킴
|
|
- 서버 설정 (localhost:8081, 커스텀 서버)
|
|
- API 정보 (제목, 설명, 버전, 연락처)
|
|
```
|
|
|
|
### 4.2 컴파일 결과
|
|
```
|
|
BUILD SUCCESSFUL
|
|
경고: 1개 (deprecated API 사용)
|
|
에러: 0개
|
|
```
|
|
|
|
---
|
|
|
|
## 5. 기존 구현 현황
|
|
|
|
### 5.1 Domain 레이어 (6개 클래스)
|
|
✅ 기존 구현 확인
|
|
- Meeting: 회의 도메인
|
|
- Minutes: 회의록 도메인 (updateTitle, incrementVersion 메서드 추가)
|
|
- MinutesSection: 회의록 섹션 도메인 (update 메서드 추가)
|
|
- Todo: Todo 도메인 (update 메서드 추가)
|
|
- Template: 템플릿 도메인
|
|
- Dashboard: 대시보드 도메인 (userId, period 필드 추가, Statistics 확장)
|
|
|
|
### 5.2 Service 레이어 (6개 클래스)
|
|
✅ 기존 구현 확인
|
|
- MeetingService: 회의 비즈니스 로직
|
|
- MinutesService: 회의록 비즈니스 로직
|
|
- MinutesSectionService: 회의록 섹션 비즈니스 로직
|
|
- TodoService: Todo 비즈니스 로직
|
|
- TemplateService: 템플릿 비즈니스 로직
|
|
- DashboardService: 대시보드 비즈니스 로직
|
|
|
|
### 5.3 UseCase 레이어 (28개 인터페이스)
|
|
✅ 기존 구현 확인
|
|
- UseCase In (16개): Service 입력 포트
|
|
- UseCase Out (12개): Gateway 출력 포트
|
|
|
|
### 5.4 Gateway 레이어 (6개 클래스)
|
|
✅ 기존 구현 확인
|
|
- MeetingGateway: 회의 게이트웨이
|
|
- MinutesGateway: 회의록 게이트웨이
|
|
- TodoGateway: Todo 게이트웨이
|
|
- TemplateGateway: 템플릿 게이트웨이
|
|
- DashboardGateway: 대시보드 게이트웨이
|
|
- CacheGateway: 캐시 게이트웨이
|
|
|
|
### 5.5 Entity 레이어 (5개 클래스)
|
|
✅ 기존 구현 확인
|
|
- MeetingEntity: 회의 엔티티
|
|
- MinutesEntity: 회의록 엔티티
|
|
- MinutesSectionEntity: 회의록 섹션 엔티티 (package 수정)
|
|
- TodoEntity: Todo 엔티티
|
|
- TemplateEntity: 템플릿 엔티티 (package 수정, import 추가)
|
|
|
|
### 5.6 Repository 레이어 (5개 인터페이스)
|
|
✅ 기존 구현 확인
|
|
- MeetingJpaRepository
|
|
- MinutesJpaRepository
|
|
- TodoJpaRepository
|
|
- TemplateJpaRepository
|
|
- MinutesSectionJpaRepository
|
|
|
|
---
|
|
|
|
## 6. 신규 구현 완료 항목 (Claude AI 개발)
|
|
|
|
### 6.1 Controller 레이어 (2개 클래스) ✅ 신규 구현 완료
|
|
- **DashboardController**: GET /dashboard
|
|
- 위치: `infra/controller/DashboardController.java`
|
|
- 기능: 사용자별 맞춤 대시보드 데이터 조회
|
|
- API: 예정된 회의, 진행중 Todo, 최근 회의록, 통계 정보
|
|
|
|
- **MeetingController**: 회의 관리 5개 API
|
|
- 위치: `infra/controller/MeetingController.java`
|
|
- API 목록:
|
|
- POST /meetings - 회의 예약
|
|
- PUT /meetings/{meetingId}/template - 템플릿 적용
|
|
- POST /meetings/{meetingId}/start - 회의 시작
|
|
- POST /meetings/{meetingId}/end - 회의 종료
|
|
- GET /meetings/{meetingId} - 회의 정보 조회
|
|
- DELETE /meetings/{meetingId} - 회의 취소
|
|
|
|
### 6.2 비즈니스 DTO 레이어 (6개 클래스) ✅ 신규 구현 완료
|
|
- **위치**: `biz/dto/`
|
|
- **구현 목록**:
|
|
- `DashboardDTO.java` - 대시보드 데이터 (중첩 클래스 4개 포함)
|
|
- `MeetingDTO.java` - 회의 데이터 (중첩 클래스 1개 포함)
|
|
- `MinutesDTO.java` - 회의록 데이터
|
|
- `SectionDTO.java` - 회의록 섹션 데이터
|
|
- `TodoDTO.java` - Todo 데이터
|
|
- `TemplateDTO.java` - 템플릿 데이터 (중첩 클래스 1개 포함)
|
|
|
|
### 6.3 API DTO 레이어 (5개 클래스) ✅ 신규 구현 완료
|
|
- **요청 DTO** (2개):
|
|
- `CreateMeetingRequest.java` - 회의 생성 요청 (Validation 포함)
|
|
- `SelectTemplateRequest.java` - 템플릿 선택 요청
|
|
|
|
- **응답 DTO** (3개):
|
|
- `DashboardResponse.java` - 대시보드 응답 (중첩 클래스 4개 포함)
|
|
- `MeetingResponse.java` - 회의 응답 (중첩 클래스 1개 포함)
|
|
- `SessionResponse.java` - 세션 응답
|
|
|
|
### 6.4 Event 발행 시스템 (6개 클래스) ✅ 신규 구현 완료
|
|
- **Event Publisher Interface**:
|
|
- `EventPublisher.java` - 이벤트 발행 인터페이스
|
|
|
|
- **Event Publisher 구현체**:
|
|
- `EventHubPublisher.java` - Kafka 기반 이벤트 발행 구현체
|
|
|
|
- **Event DTO** (4개):
|
|
- `MeetingStartedEvent.java` - 회의 시작 이벤트
|
|
- `MeetingEndedEvent.java` - 회의 종료 이벤트
|
|
- `TodoAssignedEvent.java` - Todo 할당 이벤트
|
|
- `NotificationRequestEvent.java` - 알림 요청 이벤트
|
|
|
|
### 6.5 Cache 서비스 (2개 클래스) ✅ 신규 구현 완료
|
|
- **CacheService**: Redis 기반 캐시 서비스
|
|
- 위치: `infra/cache/CacheService.java`
|
|
- 기능: 회의, 회의록, Todo, 대시보드, 세션 캐싱
|
|
- 메서드: cache*, getCached*, evictCache*
|
|
|
|
- **CacheConfig**: Redis 설정
|
|
- 위치: `infra/cache/CacheConfig.java`
|
|
- 기능: RedisConnectionFactory, RedisTemplate, ObjectMapper 설정
|
|
|
|
### 6.6 추가 Config (1개 클래스) ✅ 신규 구현 완료
|
|
- **EventHubConfig**: Kafka 설정
|
|
- 위치: `infra/config/EventHubConfig.java`
|
|
- 기능: Kafka Producer 설정, KafkaTemplate 설정
|
|
- 특징: 성능 최적화, 중복 방지, 압축 설정
|
|
|
|
### 6.7 신규 구현 완료 항목 (추가) ✅
|
|
|
|
#### 6.7.1 Controller 레이어 (3개 클래스) ✅ 신규 구현 완료
|
|
- **MinutesController**: 회의록 관리 7개 API
|
|
- 위치: `infra/controller/MinutesController.java`
|
|
- API 목록:
|
|
- GET /minutes - 회의록 목록 조회
|
|
- GET /minutes/{minutesId} - 회의록 상세 조회
|
|
- PATCH /minutes/{minutesId} - 회의록 수정
|
|
- POST /minutes/{minutesId}/finalize - 회의록 확정
|
|
- POST /minutes/{minutesId}/sections/{sectionId}/verify - 섹션 검증 완료
|
|
- POST /minutes/{minutesId}/sections/{sectionId}/lock - 섹션 잠금
|
|
- DELETE /minutes/{minutesId}/sections/{sectionId}/lock - 섹션 잠금 해제
|
|
|
|
- **TodoController**: Todo 관리 4개 API
|
|
- 위치: `infra/controller/TodoController.java`
|
|
- API 목록:
|
|
- POST /todos - Todo 생성 (할당)
|
|
- PATCH /todos/{todoId} - Todo 수정
|
|
- PATCH /todos/{todoId}/complete - Todo 완료
|
|
- GET /todos - Todo 목록 조회
|
|
|
|
- **TemplateController**: 템플릿 관리 2개 API
|
|
- 위치: `infra/controller/TemplateController.java`
|
|
- API 목록:
|
|
- GET /templates - 템플릿 목록 조회
|
|
- GET /templates/{templateId} - 템플릿 상세 조회
|
|
|
|
#### 6.7.2 추가 API DTO 레이어 (7개 클래스) ✅ 신규 구현 완료
|
|
- **요청 DTO** (4개):
|
|
- `CreateMinutesRequest.java` - 회의록 생성 요청
|
|
- `UpdateMinutesRequest.java` - 회의록 수정 요청
|
|
- `CreateTodoRequest.java` - Todo 생성 요청 (Validation 포함)
|
|
- `UpdateTodoRequest.java` - Todo 수정 요청
|
|
|
|
- **응답 DTO** (3개):
|
|
- `MinutesListResponse.java` - 회의록 목록 응답 (중첩 클래스 1개 포함)
|
|
- `MinutesDetailResponse.java` - 회의록 상세 응답 (중첩 클래스 3개 포함)
|
|
- `TodoListResponse.java` - Todo 목록 응답 (중첩 클래스 1개 포함)
|
|
- `TemplateListResponse.java` - 템플릿 목록 응답 (중첩 클래스 2개 포함)
|
|
- `TemplateDetailResponse.java` - 템플릿 상세 응답 (중첩 클래스 1개 포함)
|
|
|
|
#### 6.7.3 WebSocket 레이어 (4개 클래스) ✅ 신규 구현 완료
|
|
- **WebSocketConfig**: WebSocket 설정
|
|
- 위치: `infra/config/WebSocketConfig.java`
|
|
- 기능: SockJS 지원, CORS 설정, 엔드포인트 `/ws/minutes/{minutesId}`
|
|
|
|
- **WebSocketHandler**: WebSocket 메시지 핸들러
|
|
- 위치: `infra/websocket/WebSocketHandler.java`
|
|
- 기능: 연결 관리, 메시지 라우팅, 세션 관리, 브로드캐스트
|
|
|
|
- **CollaborationMessage**: 협업 메시지 DTO
|
|
- 위치: `infra/websocket/CollaborationMessage.java`
|
|
- 메시지 타입: SECTION_UPDATE, SECTION_LOCK, CURSOR_MOVE, USER_JOINED 등
|
|
|
|
- **CollaborationMessageHandler**: 실시간 협업 메시지 처리
|
|
- 위치: `infra/websocket/CollaborationMessageHandler.java`
|
|
- 기능: 섹션 업데이트, 잠금/해제, 커서 이동, 타이핑 상태 처리
|
|
|
|
#### 6.7.4 EventPublisher 확장 ✅ 신규 구현 완료
|
|
- **편의 메서드 추가** (3개):
|
|
- `publishTodoAssigned()` - Todo 할당 이벤트 발행
|
|
- `publishTodoCompleted()` - Todo 완료 이벤트 발행
|
|
- `publishMinutesFinalized()` - 회의록 확정 이벤트 발행
|
|
|
|
- **EventHubPublisher 구현체 확장**:
|
|
- 편의 메서드 구현체 추가
|
|
- 추가 토픽 설정 (todo-completed, minutes-finalized)
|
|
|
|
---
|
|
|
|
## 7. 개발 완료 요약
|
|
|
|
### 7.1 전체 구현 현황 ✅
|
|
**Meeting Service 백엔드 개발 100% 완료**
|
|
|
|
#### 구현된 주요 컴포넌트:
|
|
1. **Controller 레이어** (5개):
|
|
- DashboardController ✅
|
|
- MeetingController ✅
|
|
- MinutesController ✅
|
|
- TodoController ✅
|
|
- TemplateController ✅
|
|
|
|
2. **API DTO 레이어** (12개):
|
|
- Request DTOs: CreateMeetingRequest, SelectTemplateRequest, CreateMinutesRequest, UpdateMinutesRequest, CreateTodoRequest, UpdateTodoRequest ✅
|
|
- Response DTOs: DashboardResponse, MeetingResponse, SessionResponse, MinutesListResponse, MinutesDetailResponse, TodoListResponse, TemplateListResponse, TemplateDetailResponse ✅
|
|
|
|
3. **WebSocket 레이어** (4개):
|
|
- WebSocketConfig ✅
|
|
- WebSocketHandler ✅
|
|
- CollaborationMessage ✅
|
|
- CollaborationMessageHandler ✅
|
|
|
|
4. **Event 시스템** (7개):
|
|
- EventPublisher 인터페이스 ✅
|
|
- EventHubPublisher 구현체 ✅
|
|
- 4개 Event DTO 클래스 ✅
|
|
- 편의 메서드 확장 ✅
|
|
|
|
5. **Cache 시스템** (2개):
|
|
- CacheService ✅
|
|
- CacheConfig ✅
|
|
|
|
6. **Configuration** (4개):
|
|
- SecurityConfig ✅
|
|
- SwaggerConfig ✅
|
|
- EventHubConfig ✅
|
|
- WebSocketConfig ✅
|
|
|
|
### 7.2 API 엔드포인트 구현 현황
|
|
- **Dashboard APIs**: 1개 ✅
|
|
- **Meeting APIs**: 6개 ✅
|
|
- **Minutes APIs**: 7개 ✅
|
|
- **Todo APIs**: 4개 ✅
|
|
- **Template APIs**: 2개 ✅
|
|
- **WebSocket**: 1개 ✅
|
|
|
|
**총 21개 API 엔드포인트 구현 완료**
|
|
|
|
### 7.3 아키텍처 패턴 적용
|
|
- **Clean/Hexagonal Architecture** ✅
|
|
- **Event-Driven Architecture** (Kafka) ✅
|
|
- **캐싱 전략** (Redis) ✅
|
|
- **실시간 협업** (WebSocket) ✅
|
|
- **인증/인가** (JWT) ✅
|
|
- **API 문서화** (OpenAPI 3.0) ✅
|
|
|
|
---
|
|
|
|
## 8. 개발 환경
|
|
|
|
### 8.1 기술 스택
|
|
- **언어**: Java 21
|
|
- **프레임워크**: Spring Boot 3.3.0
|
|
- **빌드 도구**: Gradle 8.14
|
|
- **데이터베이스**: PostgreSQL 14
|
|
- **캐시**: Redis 7
|
|
- **메시징**: Azure Event Hubs
|
|
- **API 문서**: OpenAPI 3.0 (Swagger)
|
|
|
|
### 8.2 의존성
|
|
```gradle
|
|
Spring Boot Starter Web
|
|
Spring Boot Starter Data JPA
|
|
Spring Boot Starter Security
|
|
Spring Boot Starter WebSocket
|
|
Spring Boot Starter Data Redis
|
|
Spring Boot Starter Actuator
|
|
SpringDoc OpenAPI (2.5.0)
|
|
JJWT (0.12.5)
|
|
Lombok
|
|
PostgreSQL Driver
|
|
```
|
|
|
|
### 8.3 데이터베이스 연결 정보
|
|
```yaml
|
|
호스트: 4.230.48.72
|
|
포트: 5432
|
|
데이터베이스: meetingdb
|
|
사용자: hgzerouser
|
|
```
|
|
|
|
### 8.4 Redis 연결 정보
|
|
```yaml
|
|
호스트: 20.249.177.114
|
|
포트: 6379
|
|
데이터베이스: 1
|
|
```
|
|
|
|
---
|
|
|
|
## 9. 컴파일 및 빌드
|
|
|
|
### 9.1 컴파일 명령
|
|
```bash
|
|
# Meeting 서비스 컴파일
|
|
./gradlew meeting:compileJava
|
|
|
|
# Common 모듈 컴파일
|
|
./gradlew common:compileJava
|
|
|
|
# 전체 프로젝트 컴파일
|
|
./gradlew compileJava
|
|
```
|
|
|
|
### 9.2 빌드 명령
|
|
```bash
|
|
# Meeting 서비스 빌드
|
|
./gradlew meeting:build
|
|
|
|
# 전체 프로젝트 빌드
|
|
./gradlew build
|
|
```
|
|
|
|
### 9.3 실행 명령
|
|
```bash
|
|
# Meeting 서비스 실행
|
|
./gradlew meeting:bootRun
|
|
|
|
# 또는 jar 실행
|
|
java -jar meeting/build/libs/meeting.jar
|
|
```
|
|
|
|
---
|
|
|
|
## 10. API 엔드포인트
|
|
|
|
### 10.1 Dashboard APIs (1개)
|
|
| Method | Endpoint | 설명 | 상태 |
|
|
|--------|----------|------|-----|
|
|
| GET | /api/dashboard | 대시보드 데이터 조회 | ✅ 구현완료 |
|
|
|
|
### 10.2 Meeting APIs (6개)
|
|
| Method | Endpoint | 설명 | 상태 |
|
|
|--------|----------|------|-----|
|
|
| POST | /api/meetings | 회의 예약 | ✅ 구현완료 |
|
|
| PUT | /api/meetings/{meetingId}/template | 템플릿 선택 | ✅ 구현완료 |
|
|
| POST | /api/meetings/{meetingId}/start | 회의 시작 | ✅ 구현완료 |
|
|
| POST | /api/meetings/{meetingId}/end | 회의 종료 | ✅ 구현완료 |
|
|
| GET | /api/meetings/{meetingId} | 회의 정보 조회 | ✅ 구현완료 |
|
|
| DELETE | /api/meetings/{meetingId} | 회의 취소 | ✅ 구현완료 |
|
|
|
|
### 10.3 Minutes APIs (7개)
|
|
| Method | Endpoint | 설명 | 상태 |
|
|
|--------|----------|------|-----|
|
|
| GET | /api/minutes | 회의록 목록 조회 | ✅ 구현완료 |
|
|
| GET | /api/minutes/{minutesId} | 회의록 상세 조회 | ✅ 구현완료 |
|
|
| PATCH | /api/minutes/{minutesId} | 회의록 수정 | ✅ 구현완료 |
|
|
| POST | /api/minutes/{minutesId}/finalize | 회의록 확정 | ✅ 구현완료 |
|
|
| POST | /api/minutes/{minutesId}/sections/{sectionId}/verify | 섹션 검증 완료 | ✅ 구현완료 |
|
|
| POST | /api/minutes/{minutesId}/sections/{sectionId}/lock | 섹션 잠금 | ✅ 구현완료 |
|
|
| DELETE | /api/minutes/{minutesId}/sections/{sectionId}/lock | 섹션 잠금 해제 | ✅ 구현완료 |
|
|
|
|
### 10.4 Todo APIs (4개)
|
|
| Method | Endpoint | 설명 | 상태 |
|
|
|--------|----------|------|-----|
|
|
| POST | /api/todos | Todo 생성 (할당) | ✅ 구현완료 |
|
|
| PATCH | /api/todos/{todoId} | Todo 수정 | ✅ 구현완료 |
|
|
| PATCH | /api/todos/{todoId}/complete | Todo 완료 | ✅ 구현완료 |
|
|
| GET | /api/todos | Todo 목록 조회 | ✅ 구현완료 |
|
|
|
|
### 10.5 Template APIs (2개)
|
|
| Method | Endpoint | 설명 | 상태 |
|
|
|--------|----------|------|-----|
|
|
| GET | /api/templates | 템플릿 목록 조회 | ✅ 구현완료 |
|
|
| GET | /api/templates/{templateId} | 템플릿 상세 조회 | ✅ 구현완료 |
|
|
|
|
### 10.6 WebSocket
|
|
| Endpoint | 설명 | 상태 |
|
|
|----------|------|-----|
|
|
| /ws/minutes/{minutesId} | 회의록 실시간 협업 | ✅ 구현완료 |
|
|
|
|
---
|
|
|
|
## 11. 참고 문서
|
|
- 패키지 구조도: develop/dev/package-structure-meeting.md
|
|
- API 설계서: design/backend/api/API설계서.md
|
|
- 논리 아키텍처: design/backend/logical/logical-architecture.md
|
|
- 내부 시퀀스: design/backend/sequence/inner/*.puml
|
|
- 데이터베이스 설치 결과: develop/database/exec/db-exec-dev.md
|