From f2f982ade79fa4ebe548421c32c35b2d10b9c47f Mon Sep 17 00:00:00 2001 From: Hoyoung027 Date: Fri, 7 Aug 2026 00:08:38 +0900 Subject: [PATCH 1/6] =?UTF-8?q?refactor=20:=20presigned=20url=20=EB=B0=9C?= =?UTF-8?q?=EA=B8=89=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/ceos/backend/domain/activity/ActivityController.java | 2 +- .../ceos/backend/domain/management/ManagementController.java | 2 +- .../java/ceos/backend/domain/project/ProjectController.java | 2 +- .../java/ceos/backend/domain/sponsor/SponsorController.java | 2 +- .../java/ceos/backend/domain/startup/StartupController.java | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/ceos/backend/domain/activity/ActivityController.java b/src/main/java/ceos/backend/domain/activity/ActivityController.java index 6552b4e0..c3feb030 100644 --- a/src/main/java/ceos/backend/domain/activity/ActivityController.java +++ b/src/main/java/ceos/backend/domain/activity/ActivityController.java @@ -60,7 +60,7 @@ public void deleteActivity(@PathVariable Long id) { } @Operation(summary = "활동 이미지 url 생성하기") - @GetMapping("/image") + @PostMapping("/image") public AwsS3Url getImageUrl() { log.info("활동 이미지 url 생성하기"); return activityService.getImageUrl(); diff --git a/src/main/java/ceos/backend/domain/management/ManagementController.java b/src/main/java/ceos/backend/domain/management/ManagementController.java index 1b72adcc..ce1a5ea0 100644 --- a/src/main/java/ceos/backend/domain/management/ManagementController.java +++ b/src/main/java/ceos/backend/domain/management/ManagementController.java @@ -71,7 +71,7 @@ public void deleteManagement(@PathVariable(name = "managerId") Long managerId) { } @Operation(summary = "임원진 이미지 url 생성하기") - @GetMapping("/image") + @PostMapping("/image") public AwsS3Url getImageUrl() { log.info("임원진 이미지 url 생성하기"); return managementService.getImageUrl(); diff --git a/src/main/java/ceos/backend/domain/project/ProjectController.java b/src/main/java/ceos/backend/domain/project/ProjectController.java index 6de00476..141ad9c6 100644 --- a/src/main/java/ceos/backend/domain/project/ProjectController.java +++ b/src/main/java/ceos/backend/domain/project/ProjectController.java @@ -61,7 +61,7 @@ public void deleteActivity(@PathVariable Long projectId) { } @Operation(summary = "프로젝트 이미지 url 생성하기") - @GetMapping("/image") + @PostMapping("/image") public AwsS3Url getImageUrl() { log.info("프로젝트 이미지 url 생성하기"); return projectService.getImageUrl(); diff --git a/src/main/java/ceos/backend/domain/sponsor/SponsorController.java b/src/main/java/ceos/backend/domain/sponsor/SponsorController.java index 5dd95a12..4ab95dea 100644 --- a/src/main/java/ceos/backend/domain/sponsor/SponsorController.java +++ b/src/main/java/ceos/backend/domain/sponsor/SponsorController.java @@ -60,7 +60,7 @@ public void deleteSponsor(@PathVariable(name = "sponsorId") Long sponsorId) { } @Operation(summary = "스폰서 이미지 url 생성하기") - @GetMapping("/image") + @PostMapping("/image") public AwsS3Url getImageUrl() { log.info("스폰서 이미지 url 생성하기"); return sponsorService.getImageUrl(); diff --git a/src/main/java/ceos/backend/domain/startup/StartupController.java b/src/main/java/ceos/backend/domain/startup/StartupController.java index c93765c0..1f3f5ecf 100644 --- a/src/main/java/ceos/backend/domain/startup/StartupController.java +++ b/src/main/java/ceos/backend/domain/startup/StartupController.java @@ -61,7 +61,7 @@ public void deleteManagement(@PathVariable(name = "startupId") Long startupId) { } @Operation(summary = "서비스 이미지 url 생성하기") - @GetMapping("/image") + @PostMapping("/image") public AwsS3Url getImageUrl() { log.info("서비스 이미지 url 생성하기"); return startupService.getImageUrl(); From c80ae2bf67bb937afaf69f8f67c1cdfe001d5ae9 Mon Sep 17 00:00:00 2001 From: Hoyoung027 Date: Fri, 7 Aug 2026 14:52:43 +0900 Subject: [PATCH 2/6] =?UTF-8?q?fix=20:=20reissue=20api=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ceos/backend/domain/admin/AdminController.java | 14 ++++---------- .../backend/domain/admin/helper/AdminHelper.java | 2 +- .../backend/domain/admin/service/AdminService.java | 13 ++++++++----- 3 files changed, 13 insertions(+), 16 deletions(-) diff --git a/src/main/java/ceos/backend/domain/admin/AdminController.java b/src/main/java/ceos/backend/domain/admin/AdminController.java index 9bd8c51e..682e3cf0 100644 --- a/src/main/java/ceos/backend/domain/admin/AdminController.java +++ b/src/main/java/ceos/backend/domain/admin/AdminController.java @@ -22,8 +22,6 @@ public class AdminController { private final AdminService adminService; - private static final String MOBILE = "mobile"; - private static final String WEB = "web"; @Operation(summary = "닉네임 확인") @PostMapping("/username") @@ -41,11 +39,9 @@ public void signUp(@RequestBody @Valid SignUpRequest signUpRequest) { @Operation(summary = "로그인") @PostMapping("/signin") - public TokenResponse signIn( - HttpServletRequest request, @RequestBody @Valid SignInRequest signInRequest) { + public TokenResponse signIn(@RequestBody @Valid SignInRequest signInRequest) { log.info("로그인"); - String device = request.getHeader("User-Agent").contains("mobile") ? MOBILE : WEB; - return adminService.signIn(device, signInRequest); + return adminService.signIn(signInRequest); } @Operation(summary = "아이디 찾기") @@ -73,11 +69,9 @@ public void resetPwd( @Operation(summary = "로그아웃") @PostMapping("/logout") - public void logout( - HttpServletRequest request, @AuthenticationPrincipal AdminDetails adminUser) { + public void logout(@AuthenticationPrincipal AdminDetails adminUser) { log.info("로그아웃"); - String device = request.getHeader("User-Agent").contains("mobile") ? MOBILE : WEB; - adminService.logout(device, adminUser); + adminService.logout(adminUser); } @Operation(summary = "토큰 재발급") diff --git a/src/main/java/ceos/backend/domain/admin/helper/AdminHelper.java b/src/main/java/ceos/backend/domain/admin/helper/AdminHelper.java index 08a86a59..31217226 100644 --- a/src/main/java/ceos/backend/domain/admin/helper/AdminHelper.java +++ b/src/main/java/ceos/backend/domain/admin/helper/AdminHelper.java @@ -148,7 +148,7 @@ public void resetPwd(ResetPwdRequest resetPwdRequest, Admin admin) { } public void matchesRefreshToken(String refreshToken, Admin admin) { - String savedToken = redisTemplate.opsForValue().get(admin.getId().toString()); + String savedToken = redisTemplate.opsForValue().get("refresh:" + admin.getId().toString()); if (savedToken == null || !savedToken.equals(refreshToken)) { throw RefreshTokenNotFound.EXCEPTION; } diff --git a/src/main/java/ceos/backend/domain/admin/service/AdminService.java b/src/main/java/ceos/backend/domain/admin/service/AdminService.java index 9474bb36..2371dff3 100644 --- a/src/main/java/ceos/backend/domain/admin/service/AdminService.java +++ b/src/main/java/ceos/backend/domain/admin/service/AdminService.java @@ -51,14 +51,14 @@ public void signUp(SignUpRequest signUpRequest) { } @Transactional - public TokenResponse signIn(String device, SignInRequest signInRequest) { + public TokenResponse signIn(SignInRequest signInRequest) { final Admin admin = adminHelper.findForSignIn(signInRequest); final Authentication authentication = adminHelper.adminAuthorizationInput(admin); adminHelper.checkRole(admin); - String redisKey = admin.getId().toString() + ":" + device; + String redisKey = "refresh:" + admin.getId().toString(); // 토큰 발급 final String accessToken = tokenProvider.createAccessToken(admin.getId(), authentication); @@ -100,10 +100,10 @@ public void resetPwd(ResetPwdRequest resetPwdRequest, AdminDetails adminUser) { } @Transactional - public void logout(String device, AdminDetails adminUser) { + public void logout(AdminDetails adminUser) { final Admin admin = adminUser.getAdmin(); - String redisKey = admin.getId().toString() + ":" + device; + String redisKey = "refresh:" + admin.getId().toString(); // 레디스 삭제 tokenProvider.deleteRefreshToken(redisKey); @@ -121,10 +121,13 @@ public TokenResponse reissueToken(RefreshTokenRequest refreshTokenRequest) { adminHelper.matchesRefreshToken(refreshToken, admin); // 토큰 재발급 + String redisKey = "refresh:" + admin.getId(); final String newAccessToken = tokenProvider.createAccessToken(admin.getId(), authentication); + final String newRefreshToken = + tokenProvider.createRefreshToken(admin.getId(), authentication, redisKey); - return adminMapper.toTokenResponse(newAccessToken, refreshToken); + return adminMapper.toTokenResponse(newAccessToken, newRefreshToken); } @Transactional(readOnly = true) From 7bfba2e73d50edb0377ad4ecdec2e8a6775825b1 Mon Sep 17 00:00:00 2001 From: Hoyoung027 Date: Fri, 7 Aug 2026 14:57:20 +0900 Subject: [PATCH 3/6] =?UTF-8?q?docs=20:=20issue=20=ED=85=9C=ED=94=8C?= =?UTF-8?q?=EB=A6=BF=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/ISSUE_TEMPLATE/---feature-template.md | 2 -- .github/ISSUE_TEMPLATE/---refactor-template.md | 2 -- .github/ISSUE_TEMPLATE/-bug-report-template.md | 2 -- 3 files changed, 6 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/---feature-template.md b/.github/ISSUE_TEMPLATE/---feature-template.md index 113fe286..12690c33 100755 --- a/.github/ISSUE_TEMPLATE/---feature-template.md +++ b/.github/ISSUE_TEMPLATE/---feature-template.md @@ -7,8 +7,6 @@ assignees: '' --- -# 🚀 Feature - - ### 📝 Description --- diff --git a/.github/ISSUE_TEMPLATE/---refactor-template.md b/.github/ISSUE_TEMPLATE/---refactor-template.md index de6b8576..e7175252 100755 --- a/.github/ISSUE_TEMPLATE/---refactor-template.md +++ b/.github/ISSUE_TEMPLATE/---refactor-template.md @@ -7,8 +7,6 @@ assignees: '' --- -# 🔨 Refactor - - ### 📝 Description --- diff --git a/.github/ISSUE_TEMPLATE/-bug-report-template.md b/.github/ISSUE_TEMPLATE/-bug-report-template.md index 01f6075e..4dadb84f 100755 --- a/.github/ISSUE_TEMPLATE/-bug-report-template.md +++ b/.github/ISSUE_TEMPLATE/-bug-report-template.md @@ -7,8 +7,6 @@ assignees: '' --- -# 🐞 Bug - - ### 🕵️‍♀️ Condition --- From 3a535bcd024445a972838972e80d6f1192280572 Mon Sep 17 00:00:00 2001 From: Hoyoung027 Date: Fri, 7 Aug 2026 15:23:40 +0900 Subject: [PATCH 4/6] =?UTF-8?q?fix=20:=20=EB=A1=9C=EA=B7=B8=20=EC=84=A4?= =?UTF-8?q?=EC=A0=95=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose.dev.yml | 11 ++++++++++- docker-compose.yml | 11 ++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index 4bda5db0..2791c373 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -1,10 +1,17 @@ version: "3" +x-logging: &default-logging + driver: json-file + options: + max-size: "20m" + max-file: "3" + services: backend: image: ceos17/ceos-backend-dev container_name: backend hostname: backend + logging: *default-logging env_file: - .env expose: @@ -14,6 +21,7 @@ services: nginx: image: ceos17/ceos-nginx-dev + logging: *default-logging depends_on: - backend restart: always @@ -24,6 +32,7 @@ services: image: mysql:latest container_name: mysql restart: always + logging: *default-logging environment: MYSQL_DATABASE: ceos-dev MYSQL_USER: ${DB_USERNAME} @@ -46,6 +55,6 @@ services: image: redis:latest container_name: redis hostname: redis + logging: *default-logging ports: - "6379:6379" - diff --git a/docker-compose.yml b/docker-compose.yml index 959a158a..99716241 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,10 +1,17 @@ version: "3" +x-logging: &default-logging + driver: json-file + options: + max-size: "20m" + max-file: "3" + services: backend: image: ceos17/ceos-backend container_name: backend hostname: backend + logging: *default-logging env_file: - .env expose: @@ -12,6 +19,7 @@ services: nginx: image: ceos17/ceos-nginx + logging: *default-logging depends_on: - backend restart: always @@ -22,5 +30,6 @@ services: image: redis:latest container_name: redis hostname: redis + logging: *default-logging ports: - - "6379:6379" \ No newline at end of file + - "6379:6379" From af7548ea506aa9845caeea584c8287ea3fc9977b Mon Sep 17 00:00:00 2001 From: Hoyoung027 Date: Mon, 10 Aug 2026 21:12:39 +0900 Subject: [PATCH 5/6] chore: redeploy dev From 84ff9211dfa9707765c688a3e47436f7f7717f1f Mon Sep 17 00:00:00 2001 From: Hoyoung Byun Date: Thu, 13 Aug 2026 00:36:36 +0900 Subject: [PATCH 6/6] =?UTF-8?q?refactor=20:=20=EC=9D=B4=EB=A9=94=EC=9D=BC?= =?UTF-8?q?=20=EC=96=91=EC=8B=9D=20=EC=88=98=EC=A0=95=20(#258)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../backend/infra/ses/AwsSESMailGenerator.java | 4 ++-- .../templates/component/ceosQuestionInfo.html | 6 +++--- .../resources/templates/component/copyright.html | 2 +- .../resources/templates/component/greeting.html | 4 ++-- .../resources/templates/component/recruit.html | 16 ++++++++-------- .../templates/component/recruitGreeting.html | 4 ++-- .../resources/templates/component/title.html | 2 +- 7 files changed, 19 insertions(+), 19 deletions(-) diff --git a/src/main/java/ceos/backend/infra/ses/AwsSESMailGenerator.java b/src/main/java/ceos/backend/infra/ses/AwsSESMailGenerator.java index 19f5033e..6645f354 100644 --- a/src/main/java/ceos/backend/infra/ses/AwsSESMailGenerator.java +++ b/src/main/java/ceos/backend/infra/ses/AwsSESMailGenerator.java @@ -285,12 +285,12 @@ private void addRecruitDateToContext(Context context, Recruitment recruitment) { context.setVariable("startDateDoc", recruitment.getStartDateDoc().format(dateFormatter)); context.setVariable("endDateDoc", recruitment.getEndDateDoc().format(dateTimeFormatter)); - context.setVariable("resultDateDoc", recruitment.getResultDateDoc().format(dateFormatter)); + context.setVariable("resultDateDoc", recruitment.getResultDateDoc().format(dateTimeFormatter)); context.setVariable( "startDateInterview", recruitment.getStartDateInterview().format(dateFormatter)); context.setVariable( "endDateInterview", recruitment.getEndDateInterview().format(dateFormatter)); context.setVariable( - "resultDateFinal", recruitment.getResultDateFinal().format(dateFormatter)); + "resultDateFinal", recruitment.getResultDateFinal().format(dateTimeFormatter)); } } diff --git a/src/main/resources/templates/component/ceosQuestionInfo.html b/src/main/resources/templates/component/ceosQuestionInfo.html index e2481ede..f3c47b7e 100644 --- a/src/main/resources/templates/component/ceosQuestionInfo.html +++ b/src/main/resources/templates/component/ceosQuestionInfo.html @@ -29,7 +29,7 @@ line-height: 170%; color: #232527;" th:text="${ceosQuestionInfo.otDate}"> - 오티 날짜 + 하이(from. 23기 백엔드 파트장) @@ -55,7 +55,7 @@ line-height: 170%; color: #232527;" th:text="${ceosQuestionInfo.demodayDate}"> - 데모 + 몰라(from. 23기 프론트파트장) @@ -81,7 +81,7 @@ line-height: 170%; color: #232527;" th:text="${ceosQuestionInfo.otherActivities}"> - 백수 + 백수(from. 23기 회장) diff --git a/src/main/resources/templates/component/copyright.html b/src/main/resources/templates/component/copyright.html index d3f3b669..96e4ca97 100644 --- a/src/main/resources/templates/component/copyright.html +++ b/src/main/resources/templates/component/copyright.html @@ -21,7 +21,7 @@ font-size: 20px; line-height: 150%; color: #D6DADF;"> - © 2016-2026 Ceos ALL RIGHTS RESERVED. + © 2016-2026 CEOS ALL RIGHTS RESERVED. diff --git a/src/main/resources/templates/component/greeting.html b/src/main/resources/templates/component/greeting.html index bddd7fd8..c7f052a3 100644 --- a/src/main/resources/templates/component/greeting.html +++ b/src/main/resources/templates/component/greeting.html @@ -38,7 +38,7 @@ color: #3E4CF7;" th:text="${greetInfo.generation}" > - 22 + 24 - 22 + 24 [접수기간] - 8월 20일 (수) ~ - 8월 27일 (수) 24:00
+ 8월 13일 (목) ~ + 8월 23일 (일) 22:00
[서류발표] - 8월 29일 (금)
+ 8월 26일 (수) 14:00
[개별면접] - 8월 30일 (토) ~ - 8월 31일 (일)
+ 8월 28일 (금) ~ + 8월 31일 (월)
[최종발표] - 9월 1일 (월)
+ 8월 31일 (월) 20:00


@@ -90,11 +90,11 @@ 수요일 오후 7시 (약 2시간 진행)
- https://maddening-bottle-962.notion.site/CEOS-23-2ef11100f5bc8142bc7beef39c257872
+ https://app.notion.com/p/CEOS-24-615ac01f4e5c835c9337018ff67f083d?source=copy_link
[스터디] 파트별 요일/시간 상이
- https://maddening-bottle-962.notion.site/CEOS-23-2fb11100f5bc80b99025f388207fcfe2
+ https://app.notion.com/p/CEOS-24-516ac01f4e5c829ab4a7811a48298755?source=copy_link


CEOS - 23 + 24 기 리크루팅을 시작합니다! @@ -43,7 +43,7 @@ 안녕하세요. 신촌 연합 IT 창업동아리 CEOS입니다.
- CEOS 23기 서류 지원이 시작되었습니다!

+ CEOS 24기 서류 지원이 시작되었습니다!

세오스는 기획, 디자인, 개발 역량을 겸비한 열정 있는 대학생들이 모여 창업을 경험하고 꿈을 실현할 수 있는 공간입니다.
diff --git a/src/main/resources/templates/component/title.html b/src/main/resources/templates/component/title.html index 9c769d19..82861150 100644 --- a/src/main/resources/templates/component/title.html +++ b/src/main/resources/templates/component/title.html @@ -9,7 +9,7 @@