Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
292 commits
Select commit Hold shift + click to select a range
7efffae
#21 feat: oauth2 dto 관련 구현
zyovn Jul 7, 2025
366d7de
#21 feat: security 관련 로직 구현
zyovn Jul 7, 2025
860478f
#21 feat: 구글 소셜 로그인 구현
zyovn Jul 7, 2025
7d21326
#21 fix: security, jwt, user 생성 관련 오류 수정
zyovn Jul 8, 2025
a2e0f72
#21 fix: 피드백 반영 및 errorCode 수정
zyovn Jul 8, 2025
c81998c
Merge pull request #22 from Susanghan-guys/feat/#21-google
zyovn Jul 8, 2025
cc9ec38
#23 feat: kakaoUserInfo
zyovn Jul 8, 2025
8e7133e
#23 feat: 카카오 소셜 로그인 구현
zyovn Jul 8, 2025
66a89e6
#23 fix: 피드백 반영
zyovn Jul 8, 2025
fc7c7b5
#26 feat: 사용자 로그아웃 API
zyovn Jul 8, 2025
b54be8b
#26 feat: refreshToken update
zyovn Jul 8, 2025
b7d289b
#26 docs: swagger 작성
zyovn Jul 8, 2025
566311a
#26 feat: securityConfig 수정
zyovn Jul 8, 2025
8b9f229
#26 remove: oatuth2 dto 삭제
zyovn Jul 8, 2025
ae6d9cf
#26 remove: OAuth2Mapper 삭제
zyovn Jul 8, 2025
f878fdd
#26 refactor: userRepository 패키지 이동
zyovn Jul 8, 2025
0888843
#26 feat: 로그아웃 시, 블랙리스트에 accessToken 추가
zyovn Jul 8, 2025
469adf8
#26 docs: schema 작성
zyovn Jul 8, 2025
8a029e1
#26 refactor: refreshToken successResponse 수정
zyovn Jul 8, 2025
b5392bc
#26 fix: 피드백 반영
zyovn Jul 8, 2025
9ce6ec4
#26 refactor: successResponse 수정
zyovn Jul 8, 2025
a695018
#24 feat: 네이버 소셜 로그인 구현
nnmrm Jul 8, 2025
7f1c280
ci: CI/CD 파이프라인 구축
nnmrm Jul 8, 2025
1cb5521
ci: Docker 환경 설정
nnmrm Jul 8, 2025
9365ce6
#28 feat: terms 관련 도메인 구현
zyovn Jul 9, 2025
42a6085
#28 feat: terms 관련 repository
zyovn Jul 9, 2025
5caa8da
#28 feat: terms 관련 request
zyovn Jul 9, 2025
c5e484f
#28 remove: terms 관련 도메인 삭제
zyovn Jul 9, 2025
e6322a5
#28 feat: user내 이용 약관 관련 컬럼 추가
zyovn Jul 9, 2025
a8b407f
#28 feat: 사용자 이용 약관 API 구현
zyovn Jul 9, 2025
112bc0d
#28 style: 개행 수정
zyovn Jul 9, 2025
1f96e48
Merge pull request #25 from Susanghan-guys/feat/#23-kakao
zyovn Jul 9, 2025
84b3e8f
Merge pull request #27 from Susanghan-guys/feat/#26-logout
zyovn Jul 9, 2025
1e687b5
#28 fix: 충돌 해결
zyovn Jul 9, 2025
6d3085a
#28 refactor: terms 패키지 이동
zyovn Jul 9, 2025
a631c45
#28 refactor: terms -> user로 클래스명 변경 및 swagger 작성
zyovn Jul 9, 2025
bfdca47
#28 docs: swagger schema 작성
zyovn Jul 9, 2025
aa061c8
Merge branch 'develop' into feat/#24--naver
nnmrm Jul 9, 2025
b60ad11
chore: Docker 설정에서 mysql 정보 삭제
nnmrm Jul 9, 2025
cd72aee
refactor: null 안전성 및 타입 안전성 검증
nnmrm Jul 9, 2025
00e885c
fix: 누락 메소드 추가 및 중복 메소드 삭제
nnmrm Jul 9, 2025
3cd4f50
Merge pull request #29 from Susanghan-guys/feat/#24--naver
nnmrm Jul 9, 2025
3be0c84
Merge pull request #33 from Susanghan-guys/feat/#24--naver
nnmrm Jul 9, 2025
293319d
#28 fix: 오류 수정
zyovn Jul 9, 2025
1584f73
chore: 테스트를 위한 트리거 브랜치 목록 수정
nnmrm Jul 9, 2025
8ffab5d
fix: 버전 수정
nnmrm Jul 9, 2025
d4061b3
ci: GitHub Actions 빌드 실패 수정
nnmrm Jul 9, 2025
7c336ce
#28 feat: userOnboarding API 구현
zyovn Jul 9, 2025
cf06c0d
#28 docs: swagger schema 작성
zyovn Jul 9, 2025
56d1156
#28 feat: etc일 경우, 예외 처리 추가
zyovn Jul 9, 2025
9945c37
#28 fix: 스웨거 경로 및 request 수정
zyovn Jul 9, 2025
2861673
#28 feat: gitignore 추가
zyovn Jul 9, 2025
c757010
#28 fix: 피드백 반영
zyovn Jul 9, 2025
fb53955
Merge pull request #34 from Susanghan-guys/feat/#28-onboarding
zyovn Jul 9, 2025
ef33796
chore: 아티팩트 이름 제거 및 CI/CD 파이프라인 정리
nnmrm Jul 10, 2025
5afbb37
Merge pull request #31 from Susanghan-guys/feat/#30-cicd
nnmrm Jul 10, 2025
9ea8cba
ci: JAR 파일명 변경
nnmrm Jul 10, 2025
46eb54a
#36 fix: frontend redirect uri 추가
zyovn Jul 10, 2025
70ef898
#36 fix: provider 제거
zyovn Jul 10, 2025
b0313f8
#36 chore: 토큰 보안 관련 todo 주석 추가
zyovn Jul 10, 2025
30d4f62
Merge pull request #37 from Susanghan-guys/fix/#36-social-redirect
zyovn Jul 10, 2025
5905716
ci: JAR 파일명을 soosanghan.jar로 통일하고 Dockerfile 수정
nnmrm Jul 10, 2025
6643109
chore: 자동 배포 목록에서 해당 브랜치 삭제
nnmrm Jul 10, 2025
77d9bdf
Update dev_deploy.yml
nnmrm Jul 10, 2025
8771c38
Update dev_deploy.yml
nnmrm Jul 10, 2025
f16513c
Update dev_deploy.yml
nnmrm Jul 10, 2025
824e5f5
Update dev_deploy.yml
nnmrm Jul 10, 2025
cfeae65
fix: scp 경로 수정
nnmrm Jul 10, 2025
666b1f5
Merge pull request #39 from Susanghan-guys/feat/#35-deploy-fix
nnmrm Jul 10, 2025
50dd246
ci: 배포 방식을 scp → rsync로 전환
nnmrm Jul 10, 2025
2b25054
chore: 배포 브랜치를 develop으로 제한
nnmrm Jul 10, 2025
92d46fa
Merge pull request #41 from Susanghan-guys/feat/#35-deploy-refactor
nnmrm Jul 10, 2025
6ae1ef9
#42 chore: corsConfig 설정
zyovn Jul 12, 2025
5e0ba28
Merge pull request #43 from Susanghan-guys/chore/#42-cors
zyovn Jul 12, 2025
56a9282
#44 refactor: token -> tempCode를 query에 제공
zyovn Jul 12, 2025
d6c3c6f
#44 feat: 임시 코드로 토큰 및 사용자 정보 조회 API 구현
zyovn Jul 13, 2025
096a36e
Delete src/main/java/com/susanghan_guys/server/global/.DS_Store
nnmrm Jul 13, 2025
39cc415
Remove tracked .DS_Store files and update .gitignore
nnmrm Jul 13, 2025
2cc06a5
Merge pull request #45 from Susanghan-guys/#feat/gitignore
nnmrm Jul 13, 2025
f29fddf
#44 feat: 온보딩 여부 컬럼 추가 및 회원 가입 여부 확인 수정
zyovn Jul 13, 2025
251024d
#44 refactor: userInfo -> exchangeToken으로 클래스 및 메서드명 변경
zyovn Jul 13, 2025
eacc1e1
#44 docs: swagger 작성
zyovn Jul 13, 2025
15daa0f
#44 refactor: 불필요한 변수 선언 삭제
zyovn Jul 13, 2025
adc47f5
#44 refactor: 성공 코드 수정
zyovn Jul 13, 2025
71128b5
#44 fix: securityConfig 수정
zyovn Jul 13, 2025
7eab843
#44 refactor: user api 관련 에러 처리 validator로 분리
zyovn Jul 13, 2025
6fa1833
#44 fix: 피드백 반영
zyovn Jul 13, 2025
f21d19f
#44 style: 공백 추가
zyovn Jul 13, 2025
8b520c8
Merge pull request #46 from Susanghan-guys/feat/#44-user-info
zyovn Jul 13, 2025
4ae936b
#49 feat: 사용자 프로필 이미지 관련 컬럼 추가
zyovn Jul 14, 2025
a8412db
#49 feat: response 및 user 가입 시, 프로필 이미지도 함께 저장
zyovn Jul 14, 2025
7e9f996
#49 feat: response에 socialLoginType 추가
zyovn Jul 14, 2025
137dc08
Merge pull request #50 from Susanghan-guys/feat/#49-user-response
zyovn Jul 14, 2025
72e74a8
#51 fix: corsConfig 제거
zyovn Jul 15, 2025
5c10ac0
Merge pull request #52 from Susanghan-guys/fix/#51-cors
zyovn Jul 15, 2025
2fa355b
#48 feat: 마이페이지 조회 초기 구현
zyovn Jul 15, 2025
a466369
#48 chore: 불필요한 import문 제거
zyovn Jul 15, 2025
0de620e
#48 feat: 마이 페이지 조회 API
zyovn Jul 16, 2025
51c61b9
#48 refactor: oauth2 패키지 이동
zyovn Jul 16, 2025
4670e55
#48 feat: 마이 페이지 수정 API
zyovn Jul 17, 2025
d2fd614
#48 refactor: errorCode 도메인 별로 분리
zyovn Jul 17, 2025
bae1317
#48 docs: swagger 작성
zyovn Jul 17, 2025
31c14d9
#48 refactor: 사용자 마이 페이지 수정 응답 메시지 수정
zyovn Jul 17, 2025
7f9eb65
#48 fix: 피드백 반영
zyovn Jul 17, 2025
7e22b27
Merge pull request #53 from Susanghan-guys/feat/#48-my-page
zyovn Jul 18, 2025
6d8fb5c
#54 feat: 사용자 탈퇴 이유 및 request dto 구현
zyovn Jul 19, 2025
43aea5a
#54 fix: 사용자 식별자 email -> providerId, SocialLogin으로 변경
zyovn Jul 19, 2025
507416c
#54 refactor: 로그값 socialLogin enum으로 변경
zyovn Jul 19, 2025
b5999d9
#54 feat: 사용자 탈퇴 API
zyovn Jul 19, 2025
ef763b1
#54 feat: etc일 경우, 예외 처리 추가
zyovn Jul 19, 2025
d199400
#54 fix: 커스텀 에러 코드 및 도메인별 에러 코드 수정
zyovn Jul 19, 2025
247018a
#54 feat: 사용자 탈퇴 시, 로그인 불가능
zyovn Jul 19, 2025
3aa86eb
#54 feat: 탈퇴 요청한 사용자가 연속으로 탈퇴를 시도할 경우, 예외 처리
zyovn Jul 19, 2025
76a2ab6
#54 chore: 불필요한 import문 제거
zyovn Jul 19, 2025
9060c57
#54 docs: swagger schema 작성
zyovn Jul 19, 2025
70fa01c
#54 docs: userSwagger 작성
zyovn Jul 19, 2025
95216c7
#54 docs: userAuthSwagger 작성
zyovn Jul 19, 2025
27bad68
#54 docs: schema 수정
zyovn Jul 19, 2025
91c486f
#54 fix: 에러 코드 수정
zyovn Jul 19, 2025
25870f2
#54 fix: 피드백 반영
zyovn Jul 19, 2025
ed93ab4
Merge pull request #55 from Susanghan-guys/feat/#54-user-delete
zyovn Jul 19, 2025
e38f39c
#56 feat: 사용자 탈퇴 이유 단일 -> 중복으로 수정
zyovn Jul 19, 2025
cd2531b
feat: DCA/YCC 작품 제출 기능 구현
nnmrm Jul 19, 2025
c89daf7
#56 feat: 사용자 탈퇴 시, 자동 로그아웃 처리
zyovn Jul 19, 2025
8e9dd5e
feat: DCA 공모전 제출 유효성 및 추가자료 제출 방식 개선
nnmrm Jul 19, 2025
f70c274
fix: S3 업로드 시 파일 확장자 보존 및 불필요한 import 정리
nnmrm Jul 19, 2025
1c9fac4
Merge branch 'develop' into feat/#47-report-request
nnmrm Jul 19, 2025
dbcd25c
#56 feat: 사용자 탈퇴 soft -> hard로 변경 및 탈퇴 이유 도메인 생성
zyovn Jul 19, 2025
b5dd826
#56 fix: 피드백 반영
zyovn Jul 19, 2025
7d7a76d
#56 fix: userException -> reasonException으로 수정
zyovn Jul 19, 2025
d756a58
#56 refactor: validator 패키지 이동
zyovn Jul 19, 2025
e10b93b
Merge pull request #57 from Susanghan-guys/feat/#47-report-request
nnmrm Jul 20, 2025
484baf3
refactor: 피드백 반영
nnmrm Jul 20, 2025
397dcdf
refactor: WorkException을 전역 예외 핸들링에서 Work 도메인 예외 핸들러로 분기되도록 수정
nnmrm Jul 20, 2025
2c5fcbf
#61 feat: 온보딩 과정에 이름 수정 추가
zyovn Jul 21, 2025
d77e425
Merge pull request #62 from Susanghan-guys/feat/#61-onboarding-name
zyovn Jul 21, 2025
3a92bc4
Merge pull request #60 from Susanghan-guys/refactor/#59-exception-han…
nnmrm Jul 21, 2025
890bbf3
#56 fix: 충돌 해결
zyovn Jul 21, 2025
ff4e97f
fix: Work 엔티티에서 filesType 필드 삭제
nnmrm Jul 21, 2025
7ec4bef
#56 fix: 사용자 삭제 delete로 수정 및 redis 오류 해결
zyovn Jul 22, 2025
cfbc031
Merge pull request #58 from Susanghan-guys/feat/#56-delete-reason
zyovn Jul 22, 2025
2b31918
Merge pull request #64 from Susanghan-guys/fix/#63-delete-filesType
nnmrm Jul 22, 2025
f82fac8
#65 fix: enum 매핑 오류 수정 및 request 타입 수정
zyovn Jul 24, 2025
61d2bf8
#65 fix: 피드백 반영
zyovn Jul 24, 2025
dc9bd63
Merge pull request #66 from Susanghan-guys/fix/#65-dca-enum
zyovn Jul 24, 2025
828987a
#67 chore: open ai 의존성 설정
zyovn Jul 25, 2025
937b576
#68 fix: category json property 수정
zyovn Jul 25, 2025
b2891b5
Merge pull request #69 from Susanghan-guys/fix/#68-dca-category
zyovn Jul 25, 2025
c63ec47
#70 chore: validation 관련 의존성 추가
zyovn Jul 26, 2025
21cc8ee
#70 fix: 사용자 탈퇴 시, 로그아웃 관련 코드 삭제
zyovn Jul 26, 2025
44ea133
#70 chore: 불필요한 코드 삭제
zyovn Jul 26, 2025
08e834c
Merge pull request #71 from Susanghan-guys/fix/#70-user-delete
zyovn Jul 26, 2025
190f865
#72 feat: 401 관련 handler 추가
zyovn Jul 26, 2025
cc53257
#72 style: 불필요한 괄호 삭제
zyovn Jul 26, 2025
ff072d0
#72 feat: 403 관련 에러 handler 추가
zyovn Jul 26, 2025
68a7ef2
#72 refactor: jwt 관련 패키지 security로 이동
zyovn Jul 26, 2025
594ed92
Merge pull request #73 from Susanghan-guys/fix/#72-token
zyovn Jul 26, 2025
81c952f
#74 chore: 불필요한 import문 삭제
zyovn Jul 26, 2025
7a47678
#74 feat: 내 리포트 조회 API
zyovn Jul 26, 2025
6d2049c
#74 chore: 불필요한 코드 삭제
zyovn Jul 26, 2025
1b9f7ce
#74 docs: swagger 작성
zyovn Jul 26, 2025
8853d9b
#74 rename: work -> report로 수정
zyovn Jul 26, 2025
64f7959
#74 refactor: work dto 경로 수정
zyovn Jul 26, 2025
6e2df99
#74 refactor: work validator 경로 수정
zyovn Jul 26, 2025
5777a03
#74 refactor: 변수명 수정
zyovn Jul 26, 2025
d74d45f
#74 feat: reportStatus 컬럼 추가
zyovn Jul 26, 2025
6d4b2ea
#74 fix: 피드백 반영
zyovn Jul 26, 2025
7932b52
Merge pull request #75 from Susanghan-guys/feat/#74-my-report
zyovn Jul 27, 2025
f6e4da9
Merge branch 'develop' of https://github.com/Susanghan-guys/be into c…
zyovn Jul 27, 2025
d837ec0
#67 chore: openAiConfig 구현
zyovn Jul 27, 2025
b942af8
#67 feat: open ai structuredOutput 구현
zyovn Jul 28, 2025
dc8efd8
#67 refactor: openai 관련 패키지 구조 변경
zyovn Jul 28, 2025
32e6968
#67 feat: errorCode 추가
zyovn Jul 28, 2025
022ee03
#67 feat: 작품 요약 초기 구현
zyovn Jul 28, 2025
6139d25
#67 refactor: prompt 별도의 클래스로 분리
zyovn Jul 28, 2025
2f6c434
#67 fix: successCode 수정
zyovn Jul 28, 2025
76d9f15
#67 refactor: successCode 도메인 별로 분리
zyovn Jul 28, 2025
190ea08
#67 refactor: workSuccessCode 도메인 별로 분리
zyovn Jul 29, 2025
adf949d
#77 feat: 리다이렉트 uri 로컬, 배포로 분기 처리
zyovn Jul 29, 2025
e70b548
#77 fix: 피드백 반영
zyovn Jul 29, 2025
9f0e0a8
Merge pull request #78 from Susanghan-guys/feat/#77-redirect
zyovn Jul 29, 2025
a9f9ddb
#77 fix: 원래대로 수정
zyovn Jul 29, 2025
eb4b934
Merge pull request #79 from Susanghan-guys/feat/#77-redirect
zyovn Jul 29, 2025
6e14bf4
#67 feat: workSummary port/adapter 구현 및 내부 로직 수정
zyovn Jul 30, 2025
71a7aa7
#67 rename: 메서드명 수정
zyovn Jul 30, 2025
ff077ea
#67 feat: workSummary error handling
zyovn Jul 30, 2025
09de676
#67 feat: ycc pdf -> image 변환 구현
zyovn Jul 30, 2025
28e6e1b
#67 feat: ycc, dca pdf -> jpg 관련 로직 구현
zyovn Jul 31, 2025
6b2a3e7
#67 feat: 작품 요약 프롬프트 수정 및 dcaWorkSummary 로직 수정
zyovn Jul 31, 2025
65b7c23
#67 chore: gitignore 추가
zyovn Jul 31, 2025
f0d2fed
#67 refactor: dcaWorkSummary 수정
zyovn Jul 31, 2025
ea8e63d
#67 chore: 불필요한 import 삭제
zyovn Aug 1, 2025
df0193a
#67 feat: pdfFile 엔티티 구현 및 dcaWorkSummary 수정
zyovn Aug 1, 2025
911fc89
#67 feat: yccWorkSummmary 구현
zyovn Aug 1, 2025
e49b61b
#67 feat: validatePersonalWork 추가 구현 및 에러 코드 수정
zyovn Aug 1, 2025
4bc3ecc
#67 docs: workSummary TODO 추가
zyovn Aug 1, 2025
3b2b079
#67 refactor: dca pdfFile save mapper로 수정
zyovn Aug 1, 2025
8d5695a
#67 fix: transactional 어노테이션 추가 및 jakarta -> spring transaction으로 수정
zyovn Aug 1, 2025
c518b62
#67 fix: pdfFileService로 분리 및 dca pdfFile 저장 로직 수정 (확장자로 판단)
zyovn Aug 2, 2025
4af0dad
ci: 개발용/운영용 서버 분리를 위한 워크플로 파일 작성
nnmrm Aug 2, 2025
5275c83
chore: 워크플로에서 해당 브랜치 삭제
nnmrm Aug 2, 2025
670ea09
Merge pull request #85 from Susanghan-guys/ci/#84-server-split
nnmrm Aug 2, 2025
786b91e
#67 fix: pdfFileRepository type = work -> workId, type = additionalFi…
zyovn Aug 2, 2025
48e14ba
#67 refactor: file 별도의 도메인으로 분리
zyovn Aug 2, 2025
4e75143
#67 fix: 작품 요약 API 수정
zyovn Aug 2, 2025
e1bf05d
#67 fix: fileErrorCode 수정
zyovn Aug 2, 2025
2f8fdc0
#67 refactor: workSummaryPrompt 수정
zyovn Aug 2, 2025
a709a61
#67 fix: 추가 파일(기획안)이 null일 경우, 빈 리스트 반환
zyovn Aug 2, 2025
de8d1c4
#67 fix: pdfFile 쿼리 조건문 강화
zyovn Aug 2, 2025
62ff033
#67 docs: swagger 작성
zyovn Aug 2, 2025
16ca4f3
#67 refactor: successResponse 분리
zyovn Aug 2, 2025
6068d38
#67 fix: sourceType, filesType 위치 수정
zyovn Aug 2, 2025
a834fac
#67 docs: pdfFileRepository 개행 수정
zyovn Aug 2, 2025
7f0e48c
#67 refactor: pdfImage를 mapper를 통해 생성으로 수정
zyovn Aug 2, 2025
d2f3620
#67 fix: 피드백 반영
zyovn Aug 2, 2025
9ee0237
#67 fix: 소유자 검증 validator 분리
zyovn Aug 2, 2025
351868c
#67 rename: workSummaryPort, Adapter -> openAiPort, Adapter로 변경
zyovn Aug 4, 2025
5815286
Merge pull request #87 from Susanghan-guys/chore/#67-open-ai
zyovn Aug 6, 2025
839f497
#88 chore: smtp 의존성 설정
zyovn Aug 6, 2025
5561505
#88 feat: mail 전송 API 초기 구현
zyovn Aug 7, 2025
86e9df3
#88 refactor: 불필요한 파라미터 삭제
zyovn Aug 7, 2025
4778957
#88 fix: 로고 이미지 s3로 수정
zyovn Aug 7, 2025
ee0e6b0
#88 fix: 인증 코드 6글자로 수정
zyovn Aug 7, 2025
0b69628
#88 fat: 신청자, 팀원 메일 전송 로직 구현
zyovn Aug 8, 2025
752c9ea
#88 refactor: 메서드 분리
zyovn Aug 8, 2025
7eee808
#88 chore: 불필요한 import문 삭제
zyovn Aug 8, 2025
1f83811
#88 fix: user, workMember redirectUri 수정
zyovn Aug 8, 2025
8c48fd3
#88 feat: 리포트 인증 코드 API
zyovn Aug 8, 2025
737923a
#88 feat: workMember에 reportVisibility 컬럼 추가
zyovn Aug 8, 2025
2e0688f
#88 feat: 코드 입력 시, workMember의 리포트 상태를 visible로 업데이트
zyovn Aug 9, 2025
0b39ebf
#88 remove: workMember에서 reportVisibility 관련 코드 제거
zyovn Aug 9, 2025
c8b9036
#88 feat: 내 리포트 조회 수정
zyovn Aug 9, 2025
cc6d92a
#88 feat: 팀원일 경우, 내 리포트 삭제 API
zyovn Aug 9, 2025
b76a68e
#88 remove: 불필요한 enum 삭제
zyovn Aug 9, 2025
7071ef7
#88 chore: 불필요한 import문 삭제
zyovn Aug 9, 2025
2fc8a20
#88 fix: 성공 코드 수정
zyovn Aug 9, 2025
32e8080
#88 fix: mail error handling
zyovn Aug 9, 2025
e899168
#88 fix: mail 성공 코드 수정
zyovn Aug 9, 2025
89b4c5d
#88 fix: report errorCode 수정 및 validator로 분리
zyovn Aug 9, 2025
304b74c
#88 docs: swagger 작성
zyovn Aug 9, 2025
69146b4
#88 docs: schema 작성
zyovn Aug 9, 2025
056167e
#88 fix: mail api securityConfig에 추가
zyovn Aug 9, 2025
8fcda3e
#88 fix: mail updateCode transactional 추가
zyovn Aug 9, 2025
1fcd129
#88 fix: response에 workId 추가
zyovn Aug 9, 2025
4cc2186
#88 fix: 신청자 코드 인증 예외 처리 추가
zyovn Aug 9, 2025
172d3ba
#88 fix: 피드백 반영
zyovn Aug 9, 2025
cda780c
#88 fix: 리포트 제목 입력 예외 처리 추가
zyovn Aug 9, 2025
9ac4414
#88 fix: 피드백 반영
zyovn Aug 9, 2025
1b7ae8a
#88 feat: 이전 메일 전송 여부 확인
zyovn Aug 9, 2025
4f344b2
Merge pull request #89 from Susanghan-guys/feat/#88-mail
zyovn Aug 10, 2025
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
14 changes: 14 additions & 0 deletions .coderabbit.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
language: "ko-KR"
early_access: false
reviews:
profile: "chill"
request_changes_workflow: false
high_level_summary: true
poem: true
review_status: true
collapse_walkthrough: false
auto_review:
enabled: true
drafts: false
chat:
auto_reply: true
2 changes: 2 additions & 0 deletions .github/ISSUE_TEMPLATE/feature-template.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ assignees: ''
## 📌 어떤 기능인가요?
<!-- 추가하려는 기능에 대해 간결하게 설명해주세요 -->

-


## 📝 작업 상세 내용
- [ ] TODO
15 changes: 12 additions & 3 deletions .github/ISSUE_TEMPLATE/refactor-template.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,18 @@ assignees: ''

---

## 📌 어떤 기능인가요?
<!-- 추가하려는 기능에 대해 간결하게 설명해주세요 -->
## 📌 리팩토링 대상
<!-- 어떤 기능/모듈을 리팩토링했는지 명확히 작성해주세요 -->

-


## 🛠️ 리팩토링 사유
<!-- 리팩토링을 하게 된 배경이나 필요성을 간단히 설명해주세요 -->

-


## 📝 작업 상세 내용
- [ ] TODO
<!-- 주요 변경 사항을 정리해주세요 -->
- [ ] TODO
86 changes: 86 additions & 0 deletions .github/workflows/dev_deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
name: dev CI/CD Pipeline

on:
push:
branches:
- develop

jobs:
build:
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'

- name: Make application.yml for dev
run: |
mkdir -p src/main/resources
echo "${{ secrets.APPLICATION_YML_DEV }}" > src/main/resources/application.yml
shell: bash

- name: Grant execute permission for gradlew
run: chmod +x gradlew

- name: Build with Gradle
uses: gradle/gradle-build-action@v2
with:
arguments: build

- name: Upload deployment files
uses: actions/upload-artifact@v4
with:
name: deployment-files
path: |
build/libs/server-0.0.1-SNAPSHOT.jar
Dockerfile
docker-compose-dev.yml

deploy:
needs: build
runs-on: ubuntu-latest

steps:

- name: Download artifact
uses: actions/download-artifact@v4
with:
name: deployment-files
path: deployment

- name: Debug Check downloaded files
run: ls -R deployment

- name: Deploy to EC2 (dev) using Docker
env:
EC2_SSH_KEY: ${{ secrets.EC2_DEV_SSH_KEY }}
EC2_USERNAME: ${{ secrets.EC2_DEV_USERNAME }}
EC2_HOST: ${{ secrets.EC2_DEV_HOST }}
run: |
echo "$EC2_SSH_KEY" > private_key.pem
chmod 600 private_key.pem

function sync_file() {
local source_file=$1
local target_path="/home/$EC2_USERNAME/"
rsync -avz -e "ssh -i private_key.pem -o StrictHostKeyChecking=no" \
"$source_file" "$EC2_USERNAME@$EC2_HOST:$target_path"
}

sync_file deployment/build/libs/server-0.0.1-SNAPSHOT.jar
sync_file deployment/Dockerfile
sync_file deployment/docker-compose-dev.yml

ssh -i private_key.pem -o StrictHostKeyChecking=no $EC2_USERNAME@$EC2_HOST "
cd /home/$EC2_USERNAME/
docker-compose -f docker-compose-dev.yml down
docker-compose -f docker-compose-dev.yml up --build -d
"

rm -f private_key.pem
86 changes: 86 additions & 0 deletions .github/workflows/prod_deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
name: prod CI/CD Pipeline

on:
push:
branches:
- main

jobs:
build:
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'

- name: Make application.yml
run: |
mkdir -p src/main/resources
echo "${{ secrets.APPLICATION_YML }}" > src/main/resources/application.yml
shell: bash

- name: Grant execute permission for gradlew
run: chmod +x gradlew

- name: Build with Gradle
uses: gradle/gradle-build-action@v2
with:
arguments: build

- name: Upload deployment files
uses: actions/upload-artifact@v4
with:
name: deployment-files
path: |
build/libs/server-0.0.1-SNAPSHOT.jar
Dockerfile
docker-compose.yml

deploy:
needs: build
runs-on: ubuntu-latest

steps:

- name: Download artifact
uses: actions/download-artifact@v4
with:
name: deployment-files
path: deployment

- name: Debug Check downloaded files
run: ls -R deployment

- name: Deploy to EC2 using Docker (rsync)
env:
EC2_SSH_KEY: ${{ secrets.EC2_SSH_KEY }}
EC2_USERNAME: ${{ secrets.EC2_USERNAME }}
EC2_HOST: ${{ secrets.EC2_HOST }}
run: |
echo "$EC2_SSH_KEY" > private_key.pem
chmod 600 private_key.pem

function sync_file() {
local source_file=$1
local target_path="/home/$EC2_USERNAME/"
rsync -avz -e "ssh -i private_key.pem -o StrictHostKeyChecking=no" \
"$source_file" "$EC2_USERNAME@$EC2_HOST:$target_path"
}

sync_file deployment/build/libs/server-0.0.1-SNAPSHOT.jar
sync_file deployment/Dockerfile
sync_file deployment/docker-compose.yml

ssh -i private_key.pem -o StrictHostKeyChecking=no $EC2_USERNAME@$EC2_HOST "
cd /home/$EC2_USERNAME/
docker-compose down
docker-compose up --build -d
"

rm -f private_key.pem
9 changes: 9 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,12 @@ build/
!**/src/main/**/build/
!**/src/test/**/build/

### application.yml ###
application.yml
application-local.yml
application-dev.yml
application-prod.yml

### STS ###
.apt_generated
.classpath
Expand Down Expand Up @@ -35,3 +41,6 @@ out/

### VS Code ###
.vscode/

### DS_Store ###
*.DS_Store
17 changes: 17 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Java 17을 사용하는 Spring Boot 애플리케이션 빌드
FROM openjdk:17-jdk-slim

# 필요한 패키지 설치 (wget for wait-for-it.sh)
RUN apt-get update && apt-get install -y wget

# wait-for-it.sh 스크립트 다운로드 및 실행 권한 부여
RUN wget -O /usr/local/bin/wait-for-it.sh https://raw.githubusercontent.com/vishnubob/wait-for-it/master/wait-for-it.sh && \
chmod +x /usr/local/bin/wait-for-it.sh


COPY server-0.0.1-SNAPSHOT.jar app.jar

EXPOSE 8080

# Redis 준비 완료 후 앱 실행
ENTRYPOINT ["/usr/local/bin/wait-for-it.sh", "redis:6379", "--", "java", "-jar", "/app.jar"]
41 changes: 40 additions & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -23,14 +23,53 @@ repositories {
mavenCentral()
}

dependencyManagement {
imports {
mavenBom "org.springframework.ai:spring-ai-bom:1.0.0"
}
}

dependencies {
// implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-validation'
compileOnly 'org.projectlombok:lombok'
runtimeOnly 'com.mysql:mysql-connector-j'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'

// swagger
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.8.6'

// security
testImplementation 'org.springframework.security:spring-security-test'

// jwt
implementation 'io.jsonwebtoken:jjwt-api:0.11.5'
implementation 'io.jsonwebtoken:jjwt-impl:0.11.5'
implementation 'io.jsonwebtoken:jjwt-jackson:0.11.5'

// oauth
implementation 'org.springframework.boot:spring-boot-starter-oauth2-client'

// redis
implementation 'org.springframework.boot:spring-boot-starter-data-redis'

// s3
implementation platform("software.amazon.awssdk:bom:2.25.12")
implementation 'software.amazon.awssdk:s3'
implementation 'software.amazon.awssdk:auth'
implementation 'org.springframework.cloud:spring-cloud-starter-aws:2.2.6.RELEASE'

// open ai
implementation 'org.springframework.ai:spring-ai-starter-model-openai'

// pdfbox
implementation 'org.apache.pdfbox:pdfbox:2.0.28'

// smtp
implementation 'org.springframework.boot:spring-boot-starter-mail'
}

tasks.named('test') {
Expand Down
26 changes: 26 additions & 0 deletions docker-compose-dev.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
version: '3.8'

services:
app:
build: .
container_name: susanghanguys-dev-app
depends_on:
- redis
ports:
- "8080:8080"
environment:
SPRING_DATA_REDIS_HOST: redis
SPRING_DATA_REDIS_PORT: 6379
restart: always

redis:
image: redis:7.2
container_name: susanghanguys-redis
ports:
- "6379:6379"
volumes:
- redis-data:/data
restart: always

volumes:
redis-data:
26 changes: 26 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
version: '3.8'

services:
app:
build: .
container_name: susanghanguys-app
depends_on:
- redis
ports:
- "8080:8080"
environment:
SPRING_DATA_REDIS_HOST: redis
SPRING_DATA_REDIS_PORT: 6379
restart: always

redis:
image: redis:7.2
container_name: susanghanguys-redis
ports:
- "6379:6379"
volumes:
- redis-data:/data
restart: always

volumes:
redis-data:
Empty file modified gradlew
100644 → 100755
Empty file.
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,12 @@

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
import org.springframework.data.redis.repository.configuration.EnableRedisRepositories;

@SpringBootApplication
@EnableJpaAuditing
@EnableRedisRepositories(basePackages = "com.susanghan_guys.server.oauth2.infrastructure.persistence")
public class ServerApplication {

public static void main(String[] args) {
Expand Down
Loading
Loading