Release Note
🎉 새로 추가된 것들
- Schedule V2 API가 추가되었어요. 일정 생성, 참여자, 출석 정책, 스터디 그룹 일정 흐름을 새 구조로 다룰 수 있어요. (#734, #767, #768)
- Schedule 삭제 API가 추가되어 운영자가 잘못 생성된 일정을 정리할 수 있어요. (#857)
- UPMS 제작을 위한 Project 도메인과 엔티티가 신설되었어요. (#741)
- Project 조회 API와 PM의 Draft 작성/제출 플로우가 추가되었어요. (#761)
- Project 등록 Admin 흐름과 권한 인프라가 추가되었어요. (#796)
- 프로젝트 매칭 차수 CRUD API가 추가되었어요. (#804)
- 프로젝트 지원 폼 저장/조회 API가 추가되고 Survey 도메인과 연동되었어요. (#787)
- 챌린저가 프로젝트에 지원하고, 지원서를 조회하고, 지원을 철회할 수 있는 플로우가 추가되었어요. (#818, #837, #851)
- 프로젝트 지원서 권한 인프라가 추가되어 지원서 조회 범위를 역할과 소속에 맞게 제한할 수 있어요. (#838, #855)
- 프로젝트 지원용 폼 조회 시 챌린저 파트에 맞는 섹션만 내려가도록 필터링이 추가되었어요. (#806)
- 프로젝트 매칭 선발 도메인 API가 추가되었어요. (#840)
- 매칭 차수 사이에 질문을 수정할 수 있는 기능이 추가되었어요. (#839)
- 프로젝트 지원 및 매칭 통계 API가 추가되어 운영진이 지원 현황을 빠르게 확인할 수 있어요. (#864)
- 프로젝트 삭제 및 중단 API가 추가되었어요. (#901)
- 여러 프로젝트의 멤버를 한 번에 조회하는 API가 추가되었어요. (#850)
- 프로젝트 EDIT 권한 평가가 일원화되고 운영진 대상 허용 정책이 추가되었어요. (#870)
- Curriculum V2 Query API가 추가되었어요. (#770)
- OriginalWorkbook CUD 기능이 추가되었어요. (#830)
- 스터디 그룹 관리 기능이 추가되었고, 사용하지 않는 일부 API가 Deprecated 처리되었어요. (#784)
- 스터디 그룹 일정 생성 API가 추가되었어요. (#767)
- 운영진 대상 공지 기능이 추가되었어요. (#765)
- 공지사항에 필독 옵션이 추가되었어요. (#821)
- 운영진 대시보드 KPI API가 추가되어 지원/운영 상태를 서버에서 집계해 내려줄 수 있어요. (#852)
- Admin Analytics API가 추가되어 학교별 요약, 운영 현황, 리스크 챌린저, 액션 큐를 조회할 수 있어요. (#852)
- Member 및 Challenger 검색/정보 조회 V2 API가 추가되고 조회 성능이 개선되었어요. (#885)
- ID/PW 로그인 방식이 추가되었어요. (#782)
- 로그인 ID 대신 이메일을 로그인 식별자로 사용하는 흐름이 추가되었어요. (#877)
- 이메일 인증 기반 비밀번호 재설정, 인증 세션 검증, 인증 메일 재발송 제한이 추가되었어요. (#878, #879)
- Kakao OAuth 로그인에서 Authorization Code를 사용하는 API가 추가되었어요. (#845)
- Apple Sign-In 시 플랫폼별 client_id 분기 처리가 추가되었어요. (#828)
- Resource Permission Batch API가 추가되어 여러 리소스 권한을 한 번에 평가할 수 있어요. (#906)
- 필수 약관 동의 상태 조회 API가 추가되었어요. (#916)
- 약관 동의 기록 저장 로직이 개선되어 약관 버전 기준 동의 증적을 남길 수 있어요. (#915)
- Maintenance Mode와 운영진용 Bypass Filter가 추가되어 점검 중에도 운영자가 필요한 확인을 할 수 있어요. (#886)
- Mock Data Seeding API가 추가되어 Alpha/개발 환경에서 회원, 프로젝트, 커리큘럼, 공지 데이터를 빠르게 만들 수 있어요. (#881)
- 프로젝트 시나리오 및 지원서 시나리오 시딩 API가 추가되어 지원 플로우 테스트 데이터를 한 번에 구성할 수 있어요. (#908, #923)
- Figma Comment를 LLM으로 분류하고 Discord 담당자 멘션으로 전달하는 기능이 추가되었어요. (#835)
- Global Cache UseCase가 추가되어 캐시 사용 방식을 도메인 공통 규칙으로 맞출 수 있어요. (#897)
- Event Outbox Relay가 추가되어 도메인 이벤트 발행을 트랜잭션 이후 안정적으로 처리할 수 있어요. (#898)
- API request tracing용 span이 추가되어 요청 단위 추적을 더 쉽게 볼 수 있어요. (#907)
✨ 개선된 것들
- Request 로그에 Query Count, Query Time, IP 정보가 포함되도록 개선되었어요. (#777)
- 로그가 JSON 구조로 정리되어 Loki, OpenTelemetry, Prometheus 기반 관측 환경에서 검색하기 쉬워졌어요. (#847)
- Local 환경에서도 Query 관련 메트릭을 로그에서 조회할 수 있도록 개선되었어요. (#854)
- OpenTelemetry 로그 export 의존성이 정렬되어 관측 설정 충돌 가능성이 줄었어요. (#918)
- Self-Hosted 모니터링 구성이 개선되어 Prometheus, Grafana, Loki, Tempo, Alertmanager를 함께 운영할 수 있어요. (#892)
- Docker 이미지 빌드가 Layered Build와 캐시를 활용하도록 개선되어 배포 빌드 시간이 줄었어요. (#890)
- Alpha 환경 배포용 CD가 추가되었어요. (#904)
- Sentry 설정이 제거되고 서버 실행에 필요한 환경변수 예시가 보강되었어요. (#893)
- 이메일 발송 방식이 SMTP에서 AWS SES로 변경되었어요. (#896)
- 이메일 발송 이벤트가 추상화된 DomainEvent 기반으로 통합되었어요. (#880, #883)
- 프로젝트 목록 조회가 배치 처리로 개선되어 여러 프로젝트를 조회할 때 불필요한 반복 조회가 줄었어요. (#869)
- Fixture 기반 테스트 구조와 통합 테스트 격리 환경이 정비되었어요. (#805)
- 테스트 지원 클래스가 정리되어 신규 테스트는
IntegrationTestSupport중심으로 작성할 수 있어요. (#805) - 코드 컨벤션 검증이 추가되어 PR에서 스타일 위반을 더 빨리 잡을 수 있어요. (#899)
- 스터디 그룹 도메인 구조가 단순화되고 역할 기반 조회 로직과 테스트 커버리지가 보강되었어요. (#862)
- 스터디 그룹 관련 Entity 및 API가 개편되었어요. (#746)
- Curriculum 도메인 엔티티 구조가 개편되었어요. (#738)
- 프로젝트 도메인 권한 정책이 조회, 생성, 수정, 관리, 응답 마스킹 기준으로 일괄 정비되었어요. (#810)
- PO 기수 중복 제약이 DRAFT 상태에만 적용되는 partial index로 조정되었어요. (#914)
- Survey 도메인 UseCase가 새롭게 설계 및 구현되었어요. (#748, #789)
- 공지사항 조회 시 필독 공지가 상단에 먼저 조회되도록 개선되었어요. (#821)
- CI 테스트 실패 시 동일 PR에 댓글이 최대 1개만 남도록 개선되었어요. (#759)
♻️ 변경된 동작
- 내가 관리하는 스터디 그룹 목록 조회 API 엔드포인트가
/api/v1/study-groups/me에서/api/v1/study-groups/managed로 변경되었어요. (#813) - Schedule V1 API가 제거되고 Schedule V2 API 기준으로 전환되었어요. (#800)
- Survey 도메인 리팩토링에 따라 Recruitment 도메인이 제거되었어요. (#742)
- Spring Security OAuth Login 웹 리다이렉트 흐름이 제거되고 API 기반 OAuth 흐름으로 정리되었어요. (#882)
- 회원 이메일에 unique constraint가 추가되어 이메일 중복 가입을 데이터베이스 레벨에서도 막아요. (#874)
- 회원 로그인 식별자가 이메일 기준으로 전환되며 기존 로그인 ID 컬럼이 정리되었어요. (#867, #877)
- 로그인 응답과 인증 요청에서 ClientType을 함께 다루도록 변경되었어요. (#887)
- 프로젝트 지원서 상태 명칭과 unique 제약이 DRAFT 흐름에 맞게 정리되었어요. (#843)
- Project Application의
PENDING상태가DRAFT중심 흐름으로 정리되었어요. (#843) - FCM Token과 Topic 기반 구조가 정리되어 멀티 디바이스 토큰과 Outbox 중심 구조로 이동했어요. (#688, #898)
🔧 수정된 문제
- CI 워크플로우 및 Scalar Configuration 내 오류가 수정되었어요. (#778)
- Form Entity의 title 컬럼이 NOT NULL로 변경됨에 따라 기본값이 설정되었어요. (#772)
- CI에 필요한 권한이 CD에서 제공되지 않아 Nested Call이 불가능하던 오류가 수정되었어요. (#764)
- 테스트 환경에서 StudyGroupFixture 충돌로 테스트가 깨지던 문제가 임시 비활성화 및 후속 테스트 구조 개선으로 정리되었어요. (#762, #805)
- 스터디 그룹에 담당 파트장이 없을 때 Iterator에서 NPE가 발생하던 오류가 수정되었어요. (#823)
- 내가 관리하는 스터디 그룹 목록을 조회하지 못하던 오류가 수정되었어요. (#813)
- CI 과정에서 테스트가 OOM으로 실패하던 문제가 수정되었어요. (#814)
- 운영진 대시보드 API가 잘못된 값을 반환하던 문제가 수정되었어요. (#856)
- 회원 검색 키워드에서 닉네임 검색이 누락되던 문제가 수정되었어요. (#875)
- 테스트 컴파일 실패가 수정되어 v2.0.0 릴리즈 PR의 CI가 다시 통과해요. (#921)
💀 Deprecated
- Topic 기반 FCM Alarm 기능이 Deprecated 되었어요. (#688)
- 사용되지 않는 Organization 도메인 일부 API가 Deprecated 되었어요. (#784)
- Schedule V1 API가 제거되었어요. (#800)
- Recruitment 도메인이 제거되었어요. (#742)
- Spring Security OAuth Login 웹 리다이렉트 관련 코드가 제거되었어요. (#882)
📦 의존성 업데이트
- 테스트에서 Fixture 패턴을 더 잘 활용하기 위해 Naver FixtureMonkey가 도입되었어요. (#805)
- Checkstyle과 Naver Checkstyle 설정이 추가되어 코드 컨벤션 검증 기준이 명시되었어요. (#899)
- Flyway 마이그레이션이 Project, Survey, Curriculum, Schedule, Figma, Authentication, Event Outbox, Term Consent 흐름에 맞게 추가 및 정리되었어요. (#741, #742, #770, #787, #828, #874, #877, #898, #915)
- 개발/모니터링 Docker Compose 구성이 정리되었고, 운영 관측 스택용 설정 파일이 추가되었어요. (#892)
- Boot time 측정 스크립트와 App 이미지 빌드 스크립트가 추가되었어요. (#890, #891)
📝 문서 업데이트
- Scalar 기반 API 문서 시스템이 도입되고 서버 실행 시 배너가 추가되었어요. (#775)
- Swagger summary에 API별 고유 ID(
[XXX-NNN]) 체계가 도입되어 FE-BE 간 API 매핑이 명확해졌어요. (#826) - API ID 및 ErrorCode 문서 자동화가 추가되어 문서 카탈로그를 정적으로 확인할 수 있어요. (#903)
- 공지사항 생성/전체 조회 API에 대한 사용 가이드가 추가되었어요. (#825)
- 프로젝트 권한 정책, 챌린저 관리, 감사 로그, Figma 백오피스, 매칭 차수 테스트 JSON 등 FE 연동 가이드가 추가되었어요. (#810, #835, #840, #852)
- Event Outbox, Global Cache, 유지보수 모드, 이메일 로그인 식별자, 약관 동의 증적 등 주요 설계 결정이 ADR로 정리되었어요. (#888, #897, #898, #915)
- P6Spy 활용 현황 및 개선 방안 문서와 성능 측정 관련 스크립트가 추가되었어요. (#891)
- CODEOWNERS 파일이 정상 동작하도록 수정되었어요. (#758)
- Community Guideline, Security Policy, Contributing 문서가 추가되고 AI 프롬프트 파일이 정비되었어요. (#751)
- LICENSE가 업데이트되었어요. (#763)