Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
198 commits
Select commit Hold shift + click to select a range
9d61108
ON-79 모바일 전용 인증 컨트롤러 추가 - Google/Kakao/Naver OAuth 처리 엔드포인트 구현
JDalGi Nov 19, 2025
7e4b3a6
ON-79 GoogleVerifier 추가 - 구글 idToken 서버측 검증 로직 구현
JDalGi Nov 19, 2025
d2e071a
ON-79 KakaoVerifier 추가 - 카카오 accessToken 사용자정보 검증 로직 구현
JDalGi Nov 19, 2025
5830f5b
ON-79 NaverVerifier 추가 - 네이버 accessToken 사용자정보 검증 로직 구현
JDalGi Nov 19, 2025
cc211db
ON-79 환경변수 분리용 config-env.properties 추가
JDalGi Nov 19, 2025
c3d19f6
ON-79 SecurityConfig 수정 - 웹 OAuth 제거 및 JWT 기반 모바일 인증 설정
JDalGi Nov 19, 2025
5fcabe2
ON-79 JwtProvider 수정 - 모바일 로그인용 JWT 발급 구조 정비
JDalGi Nov 19, 2025
92189bb
ON-79 JwtAuthenticationFilter 수정 - 모바일 JWT 인증 필터 정비
Byunjihun Nov 20, 2025
7f9d930
ON-79 OAuthAttributes 수정 - Google/Kakao/Naver 모바일 로그인 대응 구조로 통합
Byunjihun Nov 20, 2025
41ce1a8
ON-79 AI 관련 서비스/컨트롤러/스케줄러 수정 - 환경변수 적용 및 구조 정비
Byunjihun Nov 20, 2025
e16f8b6
t commit --amend --reset-author
Byunjihun Nov 20, 2025
6a3edcf
ON-79 build.gradle 수정 - Google API / JWT / 모바일 OAuth 연동 라이브러리 추가
Byunjihun Nov 20, 2025
27d3501
ON-79 Dockerfile 신규 추가
Byunjihun Nov 20, 2025
535ef4e
ON-79 Dockerfile 신규 추가
Byunjihun Nov 20, 2025
43d1de6
ON-79 RestTemplateConfig 추가 - RestTemplate 설정 등록
Byunjihun Nov 20, 2025
a81c7b2
ON-79 WebConfig 추가 - CORS 및 Formatter 설정
Byunjihun Nov 20, 2025
ed115be
ON-79 ArticleController 추가 - 기사 조회 API 구현
Byunjihun Nov 20, 2025
25bbc3c
ON-79 GptResultController 추가 - GPT 분석 결과 API 제공
Byunjihun Nov 20, 2025
94efdf7
ON-79 GptResult 엔티티 추가
Byunjihun Nov 20, 2025
288c4a4
ON-79 ArticleDetailResponse DTO 추가
Byunjihun Nov 20, 2025
e953a58
ON-79 ArticleSummaryResponse DTO 추가
Byunjihun Nov 20, 2025
7879a49
ON-79 GptDocument 추가 - MongoDB GPT 문서 스키마 정의
Byunjihun Nov 20, 2025
27487e9
ON-79 Article 엔티티 추가
Byunjihun Nov 20, 2025
6cdfbd0
ON-79 ArticleCategory 엔티티 추가
Byunjihun Nov 20, 2025
3cb6898
ON-79 ArticleCategoryId 복합키 추가
Byunjihun Nov 20, 2025
4c88196
ON-79 Category 엔티티 추가
Byunjihun Nov 20, 2025
b287d26
ON-79 GptResultRepository 추가
Byunjihun Nov 20, 2025
38ee7b3
ON-79 GptMongoRepository 추가
Byunjihun Nov 20, 2025
ad57eab
ON-79 ArticleCategoryRepository 추가
Byunjihun Nov 20, 2025
02bb1d0
ON-79 ArticleRepository 추가
Byunjihun Nov 20, 2025
7d47815
ON-79 CategoryRepository 추가
Byunjihun Nov 20, 2025
49561c2
ON-79 CustomOAuth2UserService 추가
Byunjihun Nov 20, 2025
424f294
ON-79 OAuth2SuccessHandler 추가 - OAuth 인증 성공 처리
Byunjihun Nov 20, 2025
8ed140f
ON-79 CustomOAuth2User 추가
Byunjihun Nov 20, 2025
d454fdf
ON-79 OAuthAttributes 추가 - OAuth 제공자 정보 매핑
Byunjihun Nov 20, 2025
5e5b651
ON-79 ArticleDetailService 추가 - 기사 상세 조회 서비스
Byunjihun Nov 20, 2025
bcc172c
ON-79 ArticleSummaryService 추가 - 요약 데이터 조회 서비스
Byunjihun Nov 20, 2025
ff618c5
ON-79 GptResultService 추가
Byunjihun Nov 20, 2025
4db6152
ON-79 application-prod.yml 추가
Byunjihun Nov 20, 2025
1237b0a
ON-79 JwtTokenProvider 수정 - JWT 생성/검증 로직 개선
Byunjihun Nov 20, 2025
a5ba56a
ON-79 AiService 수정 - GPT 요청/응답 로직 개선
Byunjihun Nov 20, 2025
6a71a11
ON-79 UserRepository 수정 - 사용자 조회 로직 개선
Byunjihun Nov 20, 2025
6eedf56
ON-79 AiScheduler 수정 - GPT 자동 실행 스케줄링 개선
Byunjihun Nov 20, 2025
0b6781e
ON-79 ServerApplication 수정 - 애플리케이션 구동 설정 업데이트
Byunjihun Nov 20, 2025
3a7dc5f
ON-79 Gradle 설정 수정 - 의존성 및 빌드 설정 업데이트
Byunjihun Nov 20, 2025
9ea679b
ON-79 SecurityConfig 수정 - OAuth2 로그인 및 CORS 설정 개선
Byunjihun Nov 20, 2025
91f8fd4
ON-79 config: application.yml 추가
Byunjihun Nov 20, 2025
764564d
ON-79 AiController 수정 - FastAPI 연동 로직 개선
Byunjihun Nov 20, 2025
2877c9b
ON-79 OAuth 테스트 코드 수정
Byunjihun Nov 20, 2025
5597394
ON-79 docker-compose.yml 추가
Byunjihun Nov 20, 2025
9c6a50a
ON-79 server/.env.example 삭제
Byunjihun Nov 25, 2025
683d07a
ON-79 application.yml 환경 변수 구조 개선
Byunjihun Nov 25, 2025
e93f23d
ON-79 EnvVarPostProcessor 신규 추가 - .env 조기 로딩 처리
Byunjihun Nov 25, 2025
00505fb
ON-79 spring.factories 등록 - EnvVarPostProcessor 활성화
Byunjihun Nov 25, 2025
f6e1c8b
ON-79 .gitignore 갱신 - 민감정보 및 빌드파일 규칙 정리
Byunjihun Nov 25, 2025
91107b6
ON-79 docker-compose.yml 환경 변수 구조 및 서비스 구성 업데이트
Byunjihun Nov 25, 2025
5026439
ON-79 JwtAuthenticationFilter 수정 - Access/Refresh 재발급 로직 개선
Byunjihun Nov 25, 2025
1cc4d61
ON-79 JwtProvider 개선 - BASE64 키 처리 및 구조 개선
Byunjihun Nov 25, 2025
4cc6959
ON-79 SecurityConfig 수정 - JWT 필터 및 인증 구조 개선
Byunjihun Nov 25, 2025
a848d16
ON-79 MobileAuthController 수정 - 모바일 OAuth 대응
Byunjihun Nov 25, 2025
249b721
ON-79 ArticleDetailResponse 필드 구조 보완
Byunjihun Nov 25, 2025
1d05ecb
ON-79 GptDocument 수정 - Mongo 스키마 개선
Byunjihun Nov 25, 2025
f189688
ON-79 GptMongoRepository 구조 개선
Byunjihun Nov 25, 2025
592875c
ON-79 GoogleVerifier 수정 - 구글 ID 토큰 검증 로직 보완
Byunjihun Nov 25, 2025
b6d4108
ON-79 OAuth2SuccessHandler 수정 - JWT 발급 및 리다이렉션 처리
Byunjihun Nov 25, 2025
efc52e2
ON-79 ArticleDetailService 로직 개선
Byunjihun Nov 25, 2025
a286079
ON-79 ArticleSummaryService 로직 개선
Byunjihun Nov 25, 2025
5b06cfa
ON-79 신규 application.yml 생성 - 환경 변수 기반 설정 적용
Byunjihun Nov 25, 2025
669b623
docker-compose 수정
Byunjihun Nov 25, 2025
9d402c7
doMySQ드라이버 추가
Byunjihun Nov 25, 2025
48fb9b3
gradle수정, application-prod 추가
Byunjihun Nov 27, 2025
340c4bf
ON-79 add application-prod.yml for prod profile
Byunjihun Nov 27, 2025
e649e82
ON-79 MyQuizController 추가 - 사용자 퀴즈 목록 조회 API 생성
Byunjihun Dec 1, 2025
bea8937
ON-79 QuizController 추가 - 퀴즈 제출 API 생성
Byunjihun Dec 1, 2025
a3c368c
ON-79 QuizResultController 추가 - 퀴즈 결과 저장 API 생성
Byunjihun Dec 1, 2025
db6ddda
ON-79 TokenController 추가 - 액세스/리프레시 토큰 관리 API 생성
Byunjihun Dec 1, 2025
2c56e00
ON-79 UserController 추가 - 사용자 정보 조회 API 생성
Byunjihun Dec 1, 2025
dc64e96
ON-79 IncorrectArticlesRepository 추가 - 오답 기사 저장 Repository 생성
Byunjihun Dec 1, 2025
6ed8179
ON-79 IncorrectQuizRepository 추가 - 오답 퀴즈 저장 Repository 생성
Byunjihun Dec 1, 2025
afeefb4
ON-79 QuizResultRequest 추가 - 퀴즈 결과 요청 DTO 생성
Byunjihun Dec 1, 2025
55d1437
ON-79 QuizResultService 추가 - 퀴즈 결과 처리 서비스 생성
Byunjihun Dec 1, 2025
3256bea
ON-79 QuizSubmitRequest 추가 - 퀴즈 제출 DTO 생성
Byunjihun Dec 1, 2025
077cd06
ON-79 docker-compose.yml 수정 - 환경변수 및 서비스 설정 업데이트
Byunjihun Dec 1, 2025
2e5196e
ON-79 Dockerfile 수정 - 빌드 및 환경 구성 개선
Byunjihun Dec 1, 2025
2b0df4b
ON-79 build.gradle 수정 - 의존성 및 빌드 설정 업데이트
Byunjihun Dec 1, 2025
102ca43
ON-79 JwtAuthenticationFilter 수정 - JWT 인증 흐름 개선 및 예외 케이스 보완
Byunjihun Dec 1, 2025
9c71d2f
ON-79 JwtProvider 수정 - 토큰 발급 및 검증 로직 업데이트
Byunjihun Dec 1, 2025
ed04718
ON-79 EnvVarPostProcessor 수정 - .env 경로 및 로딩 방식 개선
Byunjihun Dec 1, 2025
0b98641
ON-79 SecurityConfig 수정 - 인증/인가 설정 및 필터 체인 업데이트
Byunjihun Dec 1, 2025
fc2d6fb
ON-79 ArticleController 수정 - 기사 상세/목록 조회 로직 정비
Byunjihun Dec 1, 2025
11f1c0f
ON-79 ArticleDetailResponse 수정 - DTO 필드 및 응답 구조 업데이트
Byunjihun Dec 1, 2025
34d8831
ON-79 ArticleSummaryResponse 수정 - 요약 데이터 처리 개선
Byunjihun Dec 1, 2025
e5ba7ed
ON-79 GptDocument 수정 - MongoDB 문서 모델 조정
Byunjihun Dec 1, 2025
0b7ebce
ON-79 GptMongoRepository 수정 - Mongo 쿼리 및 구조 개선
Byunjihun Dec 1, 2025
93bff26
ON-79 GoogleVerifier 수정 - Google ID 토큰 검증 로직 업데이트
Byunjihun Dec 1, 2025
f833502
ON-79 OAuth2SuccessHandler 수정 - 소셜 로그인 처리 개선
Byunjihun Dec 1, 2025
ecec615
ON-79 SolvedArticleResponse 수정 - DTO 구조 및 응답 데이터 보완
Byunjihun Dec 1, 2025
a293075
ON-79 WrongArticleResponse 수정 - 오답 응답 DTO 업데이트
Byunjihun Dec 1, 2025
7aee15a
ON-79 ArticleDetailService 수정 - 상세 조회 서비스 개선
Byunjihun Dec 1, 2025
974a466
ON-79 ArticleSummaryService 수정 - 기사 목록 요약 처리 로직 보완
Byunjihun Dec 1, 2025
bc66c7b
ON-79 QuizQueryService 수정 - 퀴즈 조회 쿼리 최적화
Byunjihun Dec 1, 2025
aa8ed39
ON-79 QuizService 수정 - 퀴즈 생성/제출 로직 업데이트
Byunjihun Dec 1, 2025
dfaca09
ON-79 application-prod.yml 수정 - 프로덕션 설정 최신화
Byunjihun Dec 1, 2025
4dc9b76
ON-79 application.yml 수정 - 공통 환경 설정 정리
Byunjihun Dec 1, 2025
3976a0b
commit
Byunjihun Dec 3, 2025
5488b1d
ON-79 GoogleTokenVerifier 삭제 - 모바일 토큰 검증 방식 전면 개편
Byunjihun Dec 4, 2025
c2c5d4d
ON-79 EnvVarPostProcessor 수정 - 환경변수 로딩 방식 개선
Byunjihun Dec 4, 2025
f753e70
ON-79 QuizResultRequest 추가 - 모바일 퀴즈 제출 요청 DTO 생성
Byunjihun Dec 4, 2025
3cf3f54
ON-79 SolvedArticleResponse 추가 - 사용자 정답 기록 응답 구조 정의
Byunjihun Dec 4, 2025
0f19a3c
ON-79 WrongArticleResponse 추가 - 틀린 문제 리스트 응답 구조 정의
Byunjihun Dec 4, 2025
07dae1f
ON-79 BaseEntity MongoDB 전용 패키지로 이동 - RDB 구조 제거
Byunjihun Dec 4, 2025
88dd927
ON-79 IncorrectArticles/Quiz Repository 추가 - 사용자 오답 저장 기능 구현
Byunjihun Dec 4, 2025
fce6229
ON-79 UserRepository 패키지 이동 - 도메인 구조 정리
Byunjihun Dec 4, 2025
0817967
ON-79 QuizResultService 패키지 이동 - 서비스 계층 구조 정립
Byunjihun Dec 4, 2025
6fa77d5
ON-79 모바일 API 전체 구조 리팩토링 - 인증/기사/퀴즈/오답/정답 시스템 통합 및 DTO/Service/Config…
Byunjihun Dec 4, 2025
60fd121
ON-79 OAuth2 커스텀 사용자 객체 추가 - 공통 사용자 정보 매핑 구조 정의
Dec 5, 2025
69a7827
ON-79 OAuth2 사용자 서비스 추가 - Google/Kakao/Naver 사용자 정보 로딩 구현
Dec 5, 2025
e1e0cee
ON-79 OAuth2 로그인 성공 핸들러 추가 - JWT 발급 및 모바일 딥링크 리다이렉트 처리
Dec 5, 2025
cdd680c
ON-79 OAuth2 프로바이더별 사용자 정보 변환기 추가 - Google/Kakao/Naver 사용자 속성 파싱
Dec 5, 2025
ff67cea
ON-79 ProviderInfo JPA 컨버터 추가 - ENUM <-> String 자동 변환 지원
Dec 5, 2025
c78d811
ON-79 모바일 로그인 서비스 추가 - 디바이스 기반 회원 생성 및 JWT 발급 로직 구현
Dec 5, 2025
e528aa3
ON-79 JWT Provider 개선 - provider 포함한 subject 구조 및 토큰 발급 규칙 정리
Dec 5, 2025
f3694ed
ON-79 Spring Security 설정 개선 - OAuth2Login + JWT 필터 통합 구성
Dec 5, 2025
15792ac
ON-79 모바일 로그인 컨트롤러 수정 - 유효성 검사 및 JWT 발급 응답 정리
Dec 5, 2025
04a0674
ON-79 토큰 재발급 컨트롤러 수정 - 모바일/소셜 공통 리프레시 구조 적용
Dec 5, 2025
d443138
ON-79 ProviderInfo ENUM 수정 - Google/Kakao/Naver 및 MOBILE 타입 정리
Dec 5, 2025
6e34344
ON-79 User 엔티티 수정 - 소셜로그인 식별자/프로필/Provider 필드 개선
Dec 5, 2025
fb5352c
ON-79 LoginRequest DTO 수정 - 모바일 로그인 전용 idToken 추가
Dec 5, 2025
89f36af
ON-79 UserRepository 수정 - provider 기반 identifier 조회 메서드 정리
Dec 5, 2025
c9381ff
ON-79 Prod 설정 수정 - OAuth2 및 JWT 환경변수 구조 정리
Dec 5, 2025
2af4379
ON-79 OAuth2 클라이언트 설정 추가 - Google/Kakao/Naver redirect 및 provider 설정 반영
Dec 5, 2025
5116640
ON-79 JWT 인증 필터 수정 - OAuth2 경로 제외 및 Authentication 생성 로직 정비
Dec 5, 2025
5184a23
commit
Dec 8, 2025
629c4a9
commit
Byunjihun Dec 10, 2025
27d9531
back & front connect
Dec 15, 2025
f3e5e5c
ON-79 Const 상수 클래스 추가
Jan 9, 2026
5eee1f5
ON-79 BaseEntity 이동 및 패키지 변경
Jan 9, 2026
b58c335
ON-79 CacheConfig 설정 클래스 추가
Jan 9, 2026
033538d
ON-79 CorsConfig 설정 이동
Jan 9, 2026
03514ca
ON-79 SecurityConfig 리팩토링 및 이동
Jan 9, 2026
67881c5
ON-79 LoginRequest DTO 이동
Jan 9, 2026
9f01244
ON-79 TokenResponse DTO 이동
Jan 9, 2026
4c94fa7
ON-79 JwtProvider 이동
Jan 9, 2026
1a11696
ON-79 JwtAuthenticationFilter 이동
Jan 9, 2026
d2abd36
ON-79 CustomOAuth2User 이동
Jan 9, 2026
02eead6
ON-79 CustomOAuth2UserService 이동
Jan 9, 2026
e8f6be9
ON-79 OAuth2LoginSuccessHandler 이동
Jan 9, 2026
f5b8964
ON-79 AuthController 추가
Jan 9, 2026
430863b
ON-79 OAuthBridgeController 이동
Jan 9, 2026
3542aa3
ON-79 Role Enum 클래스 추가
Jan 9, 2026
e4979a7
ON-79 ProviderInfo Enum 이동
Jan 9, 2026
f1197bf
ON-79 ProviderInfoConverter 이동
Jan 9, 2026
d6a3acf
ON-79 User 엔티티 이동
Jan 9, 2026
0320c9f
ON-79 UserRepository 이동
Jan 9, 2026
ab6b68f
ON-79 UserService 서비스 클래스 추가
Jan 9, 2026
3f45be0
ON-79 AiController 패키지 이동
Jan 9, 2026
2872d14
ON-79 AiService 패키지 이동
Jan 9, 2026
840993e
ON-79 AiScheduler 패키지 이동
Jan 9, 2026
76217e3
ON-79 GptDocument 엔티티 이동
Jan 9, 2026
fd0c6a2
ON-79 GptMongoRepository 이동
Jan 9, 2026
1c934d7
ON-79 ArticleDetailResponse DTO 이동
Jan 9, 2026
ee616d8
ON-79 ArticleSummaryResponse DTO 이동
Jan 9, 2026
43bc083
ON-79 QuizAnswerParser 이동
Jan 9, 2026
90f6f2d
ON-79 ArticleDetailService 이동
Jan 9, 2026
0e71e27
ON-79 ArticleSummaryService 이동
Jan 9, 2026
83c9c37
ON-79 ArticleController 이동 및 생성
Jan 9, 2026
6036c1e
ON-79 IncorrectArticles 엔티티 이동
Jan 9, 2026
69a7d17
ON-79 IncorrectArticlesId 이동
Jan 9, 2026
c1e7e71
ON-79 IncorrectQuiz 엔티티 이동
Jan 9, 2026
f94e818
ON-79 IncorrectQuizId 이동
Jan 9, 2026
df1753f
ON-79 IncorrectArticlesRepository 이동
Jan 9, 2026
81db96a
ON-79 IncorrectQuizRepository 이동
Jan 9, 2026
7031c68
ON-79 QuizResultRequest DTO 추가
Jan 9, 2026
8cf7455
ON-79 QuizSubmitRequest DTO 이동
Jan 9, 2026
c02632f
ON-79 SolvedArticleResponse DTO 이동
Jan 9, 2026
4c2d922
ON-79 WrongArticleResponse DTO 이동
Jan 9, 2026
0b88735
ON-79 QuizQueryService 이동
Jan 9, 2026
0d437cf
ON-79 QuizService 이동
Jan 9, 2026
98bd70a
ON-79 MyQuizController 이동
Jan 9, 2026
ceff49b
ON-79 QuizController 이동
Jan 9, 2026
98d6ef0
ON-79 QuizResultController 이동
Jan 9, 2026
b177a59
ON-79 ServerApplication 메인 클래스 수정
Jan 9, 2026
4946591
ON-79 application.yml 설정 통합
Jan 9, 2026
1e3b31d
ON-79 테스트용 application-test.yml 추가
Jan 9, 2026
8d1ff51
ON-79 build.gradle 의존성 업데이트
Jan 9, 2026
6f19d3f
ON-79 gradlew 권한 수정
Jan 9, 2026
b85e8ce
ON-79 ServerApplicationTests 업데이트
Jan 9, 2026
12e566f
ON-79 ArticleController 수정 - 상세 조회 파라미터 타입을 Long에서 String으로 변경
Jan 10, 2026
137a6c4
ON-79 ArticleDetailResponse 수정 - articleId 필드 타입을 String으로 변경
Jan 10, 2026
0d0e24a
ON-79 ArticleSummaryResponse 수정 - articleId 필드 타입을 String으로 변경
Jan 10, 2026
fae7d83
ON-79 GptDocument 엔티티 수정 - Selected_Articles 컬렉션 매핑 및 편의 메서드 추가
Jan 10, 2026
2feae09
ON-79 ArticleDetailService 수정 - String ID 조회 및 DTO 매핑 로직 업데이트
Jan 10, 2026
4a11444
ON-79 ArticleSummaryService 수정 - MongoDB _id(String) 매핑 적용
Jan 10, 2026
a8aae11
ON-79 QuizService 수정 - 기사 ID 타입 변경 영향범위 수정
Jan 10, 2026
5746ae6
ON-79 MongoCheckRunner 추가 - 서버 실행 시 MongoDB 연결 상태 확인 기능 구현
Jan 10, 2026
062aabc
ON-79 application.yml 수정 - MongoDB 데이터베이스 이름 명시 및 AI 서버 URL 수정
Jan 10, 2026
2cdfdad
사용자 오답 저장 로직 및 해설, 키워드, 설명 로직 구현
Jan 18, 2026
fd3d227
사용자 오답 저장 로직 및 해설, 키워드, 설명 로직 구현
Jan 18, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
81 changes: 79 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,81 @@
# Local configuration files
application-local.properties
# Global Ignore

HELP.md
.gradle/
build/
!gradle/wrapper/gradle-wrapper.jar
!**/src/main/**/build/
!**/src/test/**/build/

# STS / Eclipse
.apt_generated
.classpath
.factorypath
.project
.settings/
.springBeans/
.sts4-cache/
bin/
!**/src/main/**/bin/
!**/src/test/**/bin/

# IntelliJ IDEA
.idea/
*.iws
*.iml
*.ipr
out/
!**/src/main/**/out/
!**/src/test/**/out/

# VS Code
.vscode/

# NetBeans
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/

# Gradle
gradle-app.setting
/gradle.properties

# Logs & Temp
logs/
*.log
*.tmp
*.swp

# OS-specific
.DS_Store
Thumbs.db

# Docker
/docker-data/
/docker-volume/
/docker/volumes/

# Build artifacts (server module)
/server/build/
/server/.gradle/
/server/.idea/

# Security: Sensitive Config Files

# 루트 .env
.env
.env.*

# server 내부 src/main/resources/.env
server/src/main/resources/.env

# application-local*, application-prod* (민감정보)
**/application-local.yml
**/application-local.properties
**/application-prod.yml
**/application-prod.properties

# Unique Project Settings
*.pid
5 changes: 5 additions & 0 deletions .idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

54 changes: 54 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
version: "3.9"

services:
spring:
container_name: spring_app
build:
context: ./server
ports:
- "9000:9000"
env_file:
- ./server/.env
environment:
SPRING_PROFILES_ACTIVE: prod
SERVER_PORT: 9000 # 서버 포트 강제
depends_on:
- ai_backend
- ai_mongo
networks:
- ai_network

ai_backend:
container_name: ai_backend
build:
context: ../oba_AI
ports:
- "8000:8000"
env_file:
- ../oba_AI/.env
command: [
"uvicorn", "app:app",
"--host", "0.0.0.0",
"--port", "8000"
]
networks:
- ai_network

ai_mongo:
image: mongo:7.0
container_name: ai_mongo
ports:
- "27017:27017"
volumes:
- mongo_data:/data/db
environment:
MONGO_INITDB_DATABASE: OneBitArticle
networks:
- ai_network

networks:
ai_network:
driver: bridge

volumes:
mongo_data:
25 changes: 0 additions & 25 deletions server/.env.example

This file was deleted.

58 changes: 0 additions & 58 deletions server/.gitignore

This file was deleted.

13 changes: 13 additions & 0 deletions server/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
FROM gradle:8.5-jdk17 AS builder
WORKDIR /app
COPY build.gradle settings.gradle ./
COPY gradle ./gradle
RUN gradle dependencies --no-daemon || true
COPY src ./src
RUN gradle bootJar --no-daemon

FROM eclipse-temurin:17-jdk
WORKDIR /app
COPY --from=builder /app/build/libs/*.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "app.jar"]
64 changes: 35 additions & 29 deletions server/build.gradle
Original file line number Diff line number Diff line change
@@ -1,57 +1,63 @@
plugins {
id 'java'
id 'org.springframework.boot' version '3.5.4'
id 'io.spring.dependency-management' version '1.1.7'
id 'org.springframework.boot' version '3.5.4'
id 'io.spring.dependency-management' version '1.1.5'
id 'java'
}

group = 'oba.backend'
version = '0.0.1-SNAPSHOT'

java {
toolchain {
languageVersion = JavaLanguageVersion.of(17)
}
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}

configurations {
compileOnly {
extendsFrom annotationProcessor
}
}

repositories {
mavenCentral()
mavenCentral()
}

dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
/* -------------------- Google OAuth / ID Token -------------------- */
implementation 'org.springframework.boot:spring-boot-starter-oauth2-client'
implementation 'com.google.api-client:google-api-client:2.2.0'
implementation 'com.google.http-client:google-http-client-gson:1.43.3'

/* -------------------- Spring Core -------------------- */
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-security'
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'

// MySQL 라인을 추가
runtimeOnly 'com.mysql:mysql-connector-j'
/* -------------------- Cache -------------------- */
implementation 'org.springframework.boot:spring-boot-starter-cache'
implementation 'com.github.ben-manes.caffeine:caffeine:3.1.8'

/* -------------------- Database -------------------- */
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-data-mongodb'
runtimeOnly 'com.mysql:mysql-connector-j:8.0.33'

// JWT Library (jjwt)
/* -------------------- JWT -------------------- */
implementation 'io.jsonwebtoken:jjwt-api:0.11.5'
runtimeOnly 'io.jsonwebtoken:jjwt-impl:0.11.5'
runtimeOnly 'io.jsonwebtoken:jjwt-jackson:0.11.5'
Comment on lines 42 to 44
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🌐 Web query:

jjwt latest version 2025 0.12 security updates

💡 Result:

  • As of repository releases, the latest 0.12.x release published on the JJWT GitHub releases page is 0.12.4. [1]

  • A reported vulnerability (CVE-2024-31033) affecting JJWT "through 0.12.5" (claims that certain characters may be ignored when generating/signing keys) is tracked by multiple advisory databases; the vendor has publicly disputed the practical impact. See OSV/NVD and GitLab advisory entries for details. [2][3]

Sources

  1. JJWT releases (GitHub). [1]
  2. OSV / CVE-2024-31033 entry. [2]
  3. GitLab advisory for CVE-2024-31033. [3]

🌐 Web query:

jjwt library release history 0.11.5 0.12 breaking changes

💡 Result:

Short summary — main breaking changes when upgrading from jjwt 0.11.5 → 0.12.x

  • 0.12.0 is the project’s first breaking-release; it adds JWE/JWK support and other major API redesigns. [1]
  • Claims and Header types are now immutable; you must use the new builder APIs (ClaimsBuilder / HeaderBuilder) to create/modify them. Several setters were removed (e.g., JwsHeader#setAlgorithm, Header#setCompressionAlgorithm). [2][7]
  • JwtParser is now immutable and configured exclusively via JwtParserBuilder (Jwts.parser() now returns a builder). Parse method names were changed/renamed. [3][2]
  • SignatureAlgorithm enum/usage was replaced: the old SignatureAlgorithm usages were deprecated/removed in favor of the new algorithm interfaces/registries (Jwts.SIG) and new signWith(...) overloads — update how you build/sign tokens. [2][6]
  • Header/JWT builder APIs changed: some Jwts.header()/jwsHeader(...) overloads were removed in favor of the new header() → HeaderBuilder flow. [7][2]
  • Misc: JSON serializer package moves, improved HSM/PKCS11 support, and other API renames — consult the CHANGELOG/migration notes for a full list. [2][1]
  • Security note: a CVE/GHSA was reported against jjwt-impl:0.11.5 (CVE referenced in issue discussion); that is one reason many projects consider upgrading despite the breaking changes. [4]

Sources

  • Release notes / CHANGELOG (jwtk/jjwt releases). [1]
  • 0.12 migration / breaking-changes summary (CHANGELOG / migration guide). [2]
  • GitHub discussion / guidance about parser immutability and usage examples. [3]
  • GitHub issue reporting CVE vs 0.11.5. [4]

If you want, I can extract the exact changelog entries and list the concrete method/class renames you need to change in your code (I can produce a diff-style mapping).


🌐 Web query:

jjwt io.jsonwebtoken current version January 2026

💡 Result:

As of January 9, 2026 the current released version of JJWT (io.jsonwebtoken) is 0.13.0. (javadoc.io)

Citations:


jjwt 라이브러리 업그레이드 시 주의: 주요 breaking changes 필요

0.11.5에서 최신 버전(0.13.0)으로 업그레이드하려면 단순 버전 변경만으로는 부족합니다. 0.12.0부터 중대한 API 변경이 도입되었습니다:

  • ClaimsHeader가 불변(immutable)으로 변경됨 → ClaimsBuilder, HeaderBuilder 사용 필요
  • JwtParser가 불변으로 변경됨 → JwtParserBuilder로만 설정 가능
  • SignatureAlgorithm 대체: 새로운 알고리즘 인터페이스(Jwts.SIG) 사용 필요
  • 토큰 구축 및 서명 메서드 이름 변경

또한 CVE-2024-31033이 0.12.5 이하 버전에 영향을 미치므로, 업그레이드 시 마이그레이션 가이드를 참고하여 광범위한 코드 리팩토링이 필요합니다.

🤖 Prompt for AI Agents
In @server/build.gradle around lines 42 - 44, You upgraded jjwt dependency
versions in build.gradle but must not only change the version to 0.13.0 —
refactor all JWT usage to follow breaking API changes: replace mutable
Claims/Header uses with ClaimsBuilder/HeaderBuilder, construct parsers via
JwtParserBuilder instead of mutating JwtParser, replace SignatureAlgorithm usage
with the new Jwts.SIG algorithm constants, and update token build/sign method
calls to the new names; also ensure you pick >=0.12.6 (prefer 0.13.0) to avoid
CVE-2024-31033 and consult the jjwt migration guide to apply these changes
across all codepaths that create/parse/sign/verify tokens (look for usages of
Claims, Header, JwtParser, SignatureAlgorithm, and Jwts.build()/sign() sites).


// testDB -> h2
testRuntimeOnly 'com.h2database:h2'
/* -------------------- Scheduler -------------------- */
implementation 'org.springframework.boot:spring-boot-starter-quartz'

implementation 'org.springframework.boot:spring-boot-starter-security'
implementation 'org.springframework.boot:spring-boot-starter-oauth2-client'
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity6'
}
/* -------------------- Dotenv -------------------- */
implementation 'io.github.cdimascio:dotenv-java:3.0.0'

/* -------------------- Lombok (최신 버전으로 업데이트) -------------------- */
compileOnly 'org.projectlombok:lombok:1.18.34'
annotationProcessor 'org.projectlombok:lombok:1.18.34'

/* -------------------- Test -------------------- */
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testRuntimeOnly 'com.h2database:h2'
}

tasks.named('test') {
useJUnitPlatform()
useJUnitPlatform()
}
Empty file modified server/gradlew
100644 → 100755
Empty file.
8 changes: 8 additions & 0 deletions server/netsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
PID PPID PGID WINPID TTY UID STIME COMMAND
1483 1 1483 319596 cons2 197609 20:42:39 /usr/bin/bash
2954 1 2954 336312 cons3 197609 03:29:20 /usr/bin/bash
3495 3487 3487 276496 cons2 197609 10:33:18 /c/Program Files/nodejs/node
3487 1483 3487 386764 cons2 197609 10:33:16 /usr/bin/bash
3646 2954 3646 394660 cons3 197609 10:40:08 /usr/bin/PS
1394 1 1394 226624 cons0 197609 20:42:33 /usr/bin/bash
1399 1 1399 324196 cons1 197609 20:42:34 /usr/bin/bash
Comment on lines +1 to +8
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

실수로 커밋된 시스템 진단 출력 파일을 제거해야 합니다.

이 파일은 프로세스 목록 명령어의 출력 결과로 보이며, 실수로 버전 관리에 포함된 것으로 판단됩니다. 다음과 같은 문제가 있습니다:

  • 소스 코드가 아닙니다: 애플리케이션 코드나 설정 파일이 아닌 시스템 진단 데이터입니다.
  • 보안/프라이버시 우려: 개발 환경의 프로세스 ID, 사용자 ID(197609), 파일 경로 등 로컬 시스템 정보가 노출됩니다.
  • 저장소 오염: 이러한 임시 진단 파일은 버전 관리에 포함되어서는 안 됩니다.

이 파일을 PR에서 제거하고, 유사한 파일이 실수로 커밋되지 않도록 .gitignore에 적절한 패턴을 추가하는 것을 권장합니다.

🗑️ 파일 제거 방법
# 파일 삭제 및 커밋
git rm server/netsh
git commit -m "Remove accidentally committed process listing file"

또한 .gitignore에 다음 패턴 추가를 고려하세요:

# System diagnostic outputs
netsh
ps_output
process_list
🤖 Prompt for AI Agents
In @server/netsh around lines 1 - 8, Remove the accidentally committed
diagnostic file server/netsh from the repository and commit the removal (use git
rm / stage deletion and commit), then add an appropriate ignore pattern to
.gitignore (e.g., a pattern matching netsh or other process listing filenames)
so future process dumps aren’t tracked; if this file has sensitive data and must
be purged from history, run a history-rewrite tool (git filter-repo or BFG)
targeting server/netsh and force-push the cleaned branch.

Loading