AI 기반 맞춤 성장 학습 플랫폼 TakeIT의 백엔드 서버입니다.
사용자 진단, 학습 콘텐츠 추천, 면접 피드백 등 주요 기능을 제공하며,
Spring Boot 기반 RESTful API와 JWT 인증, AWS 배포 환경을 구성합니다.
- 회원가입, 로그인 (JWT 기반)
- 소셜 로그인 (Google, Naver, Kakao)
- 사용자 권한(Role)에 따른 접근 제어
- 선택형 + 서술형 진단 시스템
- 진단 결과 기반 점수/그래프/분석 리포트 제공
- 성장률 분석 및 피드백 자동화
- STT 기반 사용자 응답 수집
- GPT 기반 서술형 피드백 생성 및 저장
- 사전/사후 면접 비교 분석
- 사용자의 진단 결과 기반 개인 맞춤형 로드맵 제공
- 로드맵 단계별 진행률 관리 및 수정 기능 지원
src/
├── main/
│ ├── java/
│ │ └── com.education.takeit/
│ │ ├── admin/ # 관리자 기능 도메인
│ │ ├── diagnosis/ # 진단 관련 도메인
│ │ ├── exam/ # 평가 관련 기능
│ │ ├── feedback/ # AI 피드백 생성 및 제공 로직
│ │ ├── global/ # 전역 설정 및 공통 컴포넌트
│ │ │ ├── client/ # 외부 API 연동
│ │ │ ├── config/ # Spring 설정
│ │ │ ├── dto/ # 공통 응답/요청 DTO 정의
│ │ │ ├── exception/ # 전역 예외 처리 핸들러
│ │ │ ├── security/ # JWT, OAuth 보안 설정
│ │ ├── interview/ # 면접 질문 및 음성 응답 처리
│ │ ├── kafka/ # Kafka 메시지 발행/구독 로직
│ │ ├── oauth/ # OAuth 로그인 (Google, Naver, Kakao)
│ │ ├── recommend/ # 추천컨텐츠
│ │ ├── roadmap/ # 사용자 맞춤형 로드맵 로직
│ │ ├── solution/ # 정답 및 해설 관련 로직
│ │ ├── user/ # 사용자 정보 및 계정 관리
│ │ └── TakeitApplication # SpringBootApplication 진입점
│
├── resources/
│ ├── db/ # SQL, 마이그레이션 스크립트 등
│ ├── application.yml # 공통 설정
│ ├── application-local.yml # 로컬 환경 설정
│ ├── application-dev.yml # 개발 서버 설정
│ └── application-test.yml # 테스트 환경 설정
- 단위 테스트: JUnit5, Mockito
- 통합 테스트: SpringBootTest
- 테스트 커버리지 측정: JaCoCo
- JWT Access + Refresh Token 발급 및 갱신
- OAuth2 인증 로직 직접 구현 (Google, Naver, Kakao)
- HMAC 기반 토큰 서명 및 인증 필터 커스터마이징
- Swagger UI:
/swagger-ui/index.html - OpenAPI Spec:
/v3/api-docs