Skip to content

feat: Parameter Store 기반 설정 관리 전환 및 loadtest 프로필 추가#670

Merged
lsy1307 merged 12 commits intosolid-connection:developfrom
lsy1307:644-feat-parameter-store
Mar 3, 2026
Merged

feat: Parameter Store 기반 설정 관리 전환 및 loadtest 프로필 추가#670
lsy1307 merged 12 commits intosolid-connection:developfrom
lsy1307:644-feat-parameter-store

Conversation

@lsy1307
Copy link
Contributor

@lsy1307 lsy1307 commented Feb 16, 2026

관련 이슈

작업 내용

  • secret 서브모듈 제거 및 설정 로딩 구조를 config/*.yml + AWS Parameter Store import 방식으로 전환
  • loadtest 프로필 추가 (application-loadtest.yml)
  • Spring Cloud AWS Parameter Store 의존성 추가
  • 배포 파이프라인 정리
    • dev/prod workflow에서 submodule checkout 제거
    • docker compose(dev/prod)에 AWS_REGION=ap-northeast-2 추가
  • S3 인증 방식 전환
    • 정적 access key/secret key 제거
    • DefaultCredentialsProvider 기반(IAM Role 체인)으로 변경

특이 사항

  • EC2 3대(prod/stage/monitoring)에 SolidConnectionParameterStoreReadProfile 연결 완료
  • Parameter Store 경로는 /solid-connection/{common|local|dev|prod|loadtest} 사용
  • 기존 secret 서브모듈 기반 설정은 제거됨

리뷰 요구사항 (선택)

  • profile별 Parameter Store key naming(spring.datasource.*, spring.flyway.*, jwt.secret)이 현재 운영 정책과 맞는지
  • loadtest 운영 시 flyway 적용 정책(활성/비활성) 확정 필요

- secret 서브모듈 제거 및 설정 파일 분리

- 프로필별 Parameter Store import와 loadtest 프로필 추가
- Spring Cloud AWS Parameter Store 의존성 추가

- config 분리와 profile별 import/loadtest 프로필 설정
- dev/prod workflow에서 submodule checkout 제거

- compose 환경변수에 AWS_REGION 주입
- 정적 access key/secret key 주입 제거

- DefaultCredentialsProvider 기반 S3Client 구성
@coderabbitai
Copy link

coderabbitai bot commented Feb 16, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Walkthrough

1. \t.gitmodules에서 src/main/resources/secret 서브모듈 항목과 해당 서브모듈 커밋 레퍼런스가 삭제되었습니다.
2. \t.github/workflows/dev-cd.yml.github/workflows/prod-cd.yml의 Checkout 단계에서 submodules: true 및 서브모듈 액세스 토큰 관련 with: 블록이 제거되어 자동 서브모듈 페치가 중단됩니다.
3. \tsrc/main/java/com/example/solidconnection/s3/config/AmazonS3Config.java에서 AwsBasicCredentialsStaticCredentialsProvider 사용을 제거하고 DefaultCredentialsProvider로 전환했습니다.
4. \tbuild.gradleio.awspring.cloud:spring-cloud-aws-starter-parameter-store:3.0.4 의존성이 추가되었습니다.
5. \tsrc/main/resources/application.yml에 optional aws-parameterstore import가 추가되고 application-cloud.yml, application-db.yml, application-variable.yml, application-loadtest.yml 등 프로파일별 설정 파일이 추가되어 설정이 분리되었습니다.
6. \tdocker-compose.dev.ymldocker-compose.prod.ymlAWS_REGION=ap-northeast-2 환경 변수가 추가되었고, src/main/resources/secret 파일에서 서브모듈 커밋 레퍼런스 라인이 제거되었습니다.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Suggested reviewers

  • wibaek
  • whqtker
  • JAEHEE25
  • sukangpunch
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed PR 제목이 주요 변경사항인 AWS Parameter Store 기반 설정 관리 전환과 loadtest 프로필 추가를 명확하게 요약하고 있습니다.
Description check ✅ Passed PR 설명이 템플릿의 주요 섹션(관련 이슈, 작업 내용, 특이 사항, 리뷰 요구사항)을 모두 포함하고 있으며 충분히 상세합니다.
Linked Issues check ✅ Passed PR의 모든 주요 변경사항들이 이슈 #644의 목표인 AWS Parameter Store 연동, loadtest 프로필 추가, EC2 전환을 충분히 구현하고 있습니다.
Out of Scope Changes check ✅ Passed PR의 모든 변경사항이 이슈 #644 범위 내에 있으며, secret 서브모듈 제거부터 S3 인증 방식 전환까지 모두 목표 달성에 필요한 변경입니다.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Tip

Try Coding Plans. Let us write the prompt for your AI agent so you can ship faster (with fewer bugs).
Share your feedback on Discord.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Fix all issues with AI agents
In `@src/main/resources/application-loadtest.yml`:
- Around line 17-25: The outbound websocket thread-pool block is missing a
queue-capacity setting which defaults to an unbounded queue; update the
websocket.thread-pool.outbound configuration to include queue-capacity (e.g.,
match inbound's 4000) so outbound uses a bounded queue like inbound:
core-pool-size, max-pool-size, and queue-capacity should all be specified for
websocket.thread-pool.outbound to avoid unbounded memory growth during load
tests.

In `@src/main/resources/config/application-variable.yml`:
- Around line 189-191: 로컬 프로필의 token.refresh.cookie-domain이
".stage.solid-connection.com"으로 잘못 설정되어 있어 로컬에서 쿠키가 동작하지 않습니다;
token.refresh.cookie-domain 값을 로컬 전용 설정에서 "localhost" (또는 빈값/생략하여 기본 호스트 사용)로
변경하거나 로컬 프로파일(application-local.yml 등)에 별도 항목을 추가해 ".stage.solid-connection.com"
대신 localhost를 사용하도록 수정하세요.
🧹 Nitpick comments (3)
src/main/resources/config/application-variable.yml (1)

30-30: 카카오 OAuth 프로퍼티의 네이밍 일관성을 맞춰주세요.

현재 user-info_url은 언더스코어와 하이픈이 혼용되어 있는데, 같은 oauth 섹션의 모든 다른 프로퍼티들(token-url, redirect-url, client-id, client-secret-audience-url 등)은 케밥 케이스(hyphen)를 사용하고 있습니다. Spring Boot의 relaxed binding 때문에 현재도 정상 작동하지만, 일관성을 위해 user-info-url로 통일하면 좋겠습니다.

변경 사항:

  1. user-info_urluser-info-url로 변경
    • src/main/resources/config/application-variable.yml (line 30)
    • src/test/resources/application.yml
♻️ 변경 예시
-    user-info_url: "https://kapi.kakao.com/v2/user/me"
+    user-info-url: "https://kapi.kakao.com/v2/user/me"
src/main/resources/config/application-cloud.yml (1)

6-11: Spring Cloud AWS 3.x에 맞춰 프로퍼티 네임스페이스를 정렬하세요.

현재 설정에서 cloud.aws.* 네임스페이스는 Spring Cloud AWS 2.x 관례입니다. 3.0.4 버전에서는 공식 네임스페이스가 spring.cloud.aws.*로 변경되었습니다.

다음 개선사항을 고려해 주세요:

  1. cloud.aws.region.staticspring.cloud.aws.region.static로 변경

    • AmazonS3Config에서 @Value("${spring.cloud.aws.region.static}")로 읽도록 수정
    • Spring Cloud AWS 자동 설정의 중앙 리전 제공자와 일관성 유지
  2. cloud.aws.stack.auto 및 기타 cloud.aws.* 속성도 spring.cloud.aws.*로 통일

    • Spring Cloud AWS 3.x의 공식 설정 구조와 맞춤
    • 향후 유지보수 시 혼동 방지

현재는 Parameter Store 클라이언트가 Docker Compose의 AWS_REGION 환경 변수를 통해 리전을 올바르게 해석하므로 기능상 문제가 없습니다. 다만 네임스페이스 정렬은 코드 일관성과 명확성을 크게 개선합니다.

src/main/resources/application-loadtest.yml (1)

12-15: HikariCP 풀 사이즈 설정 관련 참고 사항

  1. 풀 사이즈
    • maximum-pool-size: 50, minimum-idle: 20은 부하테스트 용도로 합리적인 수치입니다.
  2. 타임아웃 설정 부재
    • connection-timeout, idle-timeout 등이 명시되어 있지 않아 HikariCP 기본값(각각 30초, 600초)이 적용됩니다.
    • K6 부하테스트 시 커넥션 풀 소진 상황에서 기본 connection-timeout(30초)이 적절한지 확인해 보시면 좋겠습니다. 필요하다면 부하테스트 특성에 맞게 조정을 고려해 주세요.

- local 프로필 refresh cookie-domain을 localhost로 수정

- loadtest outbound thread pool에 queue-capacity 추가
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Fix all issues with AI agents
In `@src/main/resources/config/application-variable.yml`:
- Around line 134-142: The dev CORS list under cors.allowed-origins contains the
prod admin domain; update the entry "https://admin.solid-connection.com" in the
dev profile to the staging admin domain
"https://admin.stage.solid-connection.com" (or remove/replace it) so dev uses
the stage admin host; if the admin service intentionally uses a single global
domain, leave it as-is but add a comment explaining that choice.
- Around line 12-14: Add an explicit queue-capacity entry for the outbound
thread pool in the default and prod profiles: update the outbound block (keys:
outbound, core-pool-size, max-pool-size) to include queue-capacity (e.g., 1000
or another bounded value) so Spring's ThreadPoolTaskExecutor does not use
Integer.MAX_VALUE; ensure the same queue-capacity is added under both the
default outbound section and the prod outbound section to mirror inbound's
configuration.
🧹 Nitpick comments (2)
src/main/resources/config/application-variable.yml (2)

176-177: dev/local 프로필에서 JWT_SECRET의 기본값이 비어 있습니다.

${JWT_SECRET:}는 환경 변수가 설정되지 않으면 빈 문자열로 바인딩됩니다. 로컬 개발 시 Parameter Store 없이 실행하면 JWT 서명이 빈 키로 수행될 수 있어, 토큰 검증이 의미 없어지거나 예기치 않은 오류가 발생할 수 있습니다. 로컬용으로는 안전한 기본 개발용 시크릿을 넣어두는 것을 권장합니다.

🛡️ 로컬 프로필에 개발용 기본 시크릿 추가 제안
 jwt:
-  secret: ${JWT_SECRET:}
+  secret: ${JWT_SECRET:local-dev-only-secret-do-not-use-in-production}

30-30: user-info_url 키의 네이밍 불일치를 수정하세요.

파일 전체에서 kebab-case를 일관되게 사용하고 있는데(token-url, client-secret-audience-url, public-key-url 등), 이 키만 user-info_url로 언더스코어가 섞여 있습니다. Spring Boot의 relaxed binding이 자동으로 처리하므로 동작에는 문제가 없지만, 코드 스타일 통일을 위해 다음을 진행해 주세요:

  1. 키 이름 수정: user-info_urluser-info-url로 변경
    • Java의 KakaoOAuthClientProperties.userInfoUrl 바인딩은 Spring의 relaxed binding을 통해 자동으로 매핑되므로 추가 수정이 필요 없습니다.
✏️ 제안된 변경
-    user-info_url: "https://kapi.kakao.com/v2/user/me"
+    user-info-url: "https://kapi.kakao.com/v2/user/me"

- websocket outbound queue-capacity 누락 보완

- prod/dev/local OAuth redirect-url fallback 제거

- yml placeholder 빈 기본값(:) 제거

- dev CORS admin 도메인 변경 반영
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🧹 Nitpick comments (1)
src/main/resources/config/application-db.yml (1)

67-76: local 프로필의 ddl-auto: create — 앱 재시작 시 모든 로컬 데이터 초기화

의도된 설정이라면 문제없지만, 앱 재시작마다 모든 테이블이 삭제·재생성되어 로컬 테스트 데이터가 사라집니다. 로컬 개발 중 데이터 유지가 필요할 경우 update(스키마 변경만 적용) 전환을 고려할 수 있습니다.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/main/resources/config/application-db.yml` around lines 67 - 76, The
jpa.hibernate.ddl-auto is set to create which drops and recreates tables on each
restart; change the value for the local profile to update (or remove override)
so schema changes are applied without wiping data — update the
jpa.hibernate.ddl-auto property in application-db.yml from create to update (or
make it profile-specific for local/dev) to preserve local data across restarts.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@src/main/resources/config/application-db.yml`:
- Around line 27-32: The Flyway setting flyway.baseline-on-migrate is currently
true in application-db.yml which can silently apply a baseline (skipping
migrations) if the flyway_schema_history table is missing or the app connects to
the wrong DB; change flyway.baseline-on-migrate to false for prod/dev and
document that any required baseline must be performed manually as a one-time
operation (keep credentials via FLYWAY_DB_USERNAME/FLYWAY_DB_PASSWORD), and
ensure you update the duplicate block referenced later (the other flyway
section) so both occurrences use baseline-on-migrate: false.

In `@src/main/resources/config/application-variable.yml`:
- Around line 33-37: 현재 application-variable.yml의 전역 Sentry 설정에
sentry.send-default-pii: true와 sentry.traces-sample-rate: 1.0이 있어 모든 프로파일(포함하여
prod)에 적용됩니다; sentry.send-default-pii 기본값을 false로 변경하고 prod에서만 필요할 경우 prod 전용
설정(예: application-prod.yml)에서 true로 오버라이드하거나, 반대로 전역을 false로 두고 prod에서 명시적으로
true로 설정하도록 수정하며, traces 관련하여 전역 traces-sample-rate를 안전한 낮은 값(예: 0.1)으로 변경하거나
전역은 낮게(또는 제거)두고 application-prod.yml에서 prod용 샘플 비율(예: 0.1~0.2)으로 오버라이드하도록 구성
변경(참조 키: sentry.send-default-pii, sentry.traces-sample-rate,
application-prod/profile 오버라이드).
- Around line 29-32: Change the inconsistent YAML key under the kakao block from
user-info_url to user-info-url so it follows Spring Boot kebab-case and matches
the Java property userInfoUrl; update the YAML property (alongside token-url
which is correct) to kakao.user-info-url to ensure proper and clear binding with
the Java configuration class.

---

Duplicate comments:
In `@src/main/resources/config/application-variable.yml`:
- Around line 12-15: The same setting outbound.queue-capacity is duplicated in
the default and prod profile; confirm whether both should use the same value
(1000) or prod needs a different capacity, and then either remove the redundant
entry or align the prod value accordingly in application-variable.yml so there
is a single authoritative outbound.queue-capacity; check the keys under outbound
(core-pool-size, max-pool-size, queue-capacity) to ensure consistency across
profiles.
- Around line 137-145: The dev CORS entry under cors.allowed-origins contains
"https://stage.admins.solid-connection.com" which likely is a typo (plural
"admins") and mismatches the prod entry; verify the intended domain (e.g.,
"admin.stage.solid-connection.com" or "admin.solid-connection.com") and update
the cors.allowed-origins list to the correct domain string so it matches the
intended/production configuration, ensuring the entry in the
application-variable.yml (cors.allowed-origins) is corrected accordingly.

---

Nitpick comments:
In `@src/main/resources/config/application-db.yml`:
- Around line 67-76: The jpa.hibernate.ddl-auto is set to create which drops and
recreates tables on each restart; change the value for the local profile to
update (or remove override) so schema changes are applied without wiping data —
update the jpa.hibernate.ddl-auto property in application-db.yml from create to
update (or make it profile-specific for local/dev) to preserve local data across
restarts.

- common/local/dev/prod/loadtest aws-parameterstore import에서 optional 제거
- env placeholder(CLOUD_AWS_*) 제거

- cloud.aws.* 값은 /solid-connection/common 경로에서 주입
- datasource/flyway env placeholder 제거

- prod/dev baseline-on-migrate를 false로 변경

- local 빈 redis 블록 제거
- OAuth/JWT/Sentry/News/Loki placeholder 제거

- kakao user-info-url 키를 kebab-case로 통일

- sentry 기본 PII 비활성화 및 prod traces 샘플링 0.1 설정

- dev admin CORS origin 문자열 변경 반영
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
src/main/resources/config/application-db.yml (1)

18-22: 2. prod Flyway: validate-on-migrate 명시적 설정 (선택 권장)

현재 Flyway 기본값이 validate-on-migrate: true이므로 동작에는 문제 없습니다.

  • 다만, prod 환경에서 마이그레이션 검증 의도를 명확히 표현하고 향후 기본값 변경에 대비하기 위해 명시적으로 선언하는 것을 권장합니다.
✨ prod Flyway 명시적 설정 제안
  flyway:
    enabled: true
    locations: classpath:db/migration
    baseline-on-migrate: false
+   validate-on-migrate: true
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/main/resources/config/application-db.yml` around lines 18 - 22, The
Flyway config in application-db.yml omits an explicit validate-on-migrate
setting; add the property under the existing flyway block (flyway: ->
validate-on-migrate: true) so production intent is explicit and future default
changes won't alter behavior; locate the flyway block in application-db.yml and
insert validate-on-migrate: true (keeping baseline-on-migrate as-is).
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@src/main/resources/config/application-variable.yml`:
- Around line 106-113: Update the dev CORS origin entry under
cors.allowed-origins that currently reads
"https://www.stage.admins.solid-connection.com/" by correcting the typo and
removing the trailing slash: replace with the singular admin host (e.g.,
"https://admin.stage.solid-connection.com") so the YAML key cors.allowed-origins
contains the exact origin string the browser will send (no trailing slash and
correct hostname); adjust the specific entry value in the
application-variable.yml for the dev profile.

---

Duplicate comments:
In `@src/main/resources/config/application-db.yml`:
- Around line 18-22: The config key baseline-on-migrate is correctly changed to
false here to address the previous risk, but the same key must be updated
wherever duplicated (the other occurrence referenced in the review); locate
other occurrences of baseline-on-migrate (e.g., the second YAML block at lines
corresponding to the duplicate) and set them to false as well so all config
sources consistently disable automatic baseline-on-migrate handling.

In `@src/main/resources/config/application-variable.yml`:
- Around line 1-51: The default sentry.traces-sample-rate is set to 1.0 which
will apply to dev/local unless explicitly overridden; confirm intent and either
lower the default value (change sentry.traces-sample-rate from 1.0 to a safer
default like 0.1) or add explicit profile overrides for dev/local (create/modify
the dev/local profile blocks to set sentry.traces-sample-rate appropriately),
referencing the sentry.traces-sample-rate key and the existing prod override.

---

Nitpick comments:
In `@src/main/resources/config/application-db.yml`:
- Around line 18-22: The Flyway config in application-db.yml omits an explicit
validate-on-migrate setting; add the property under the existing flyway block
(flyway: -> validate-on-migrate: true) so production intent is explicit and
future default changes won't alter behavior; locate the flyway block in
application-db.yml and insert validate-on-migrate: true (keeping
baseline-on-migrate as-is).

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Duplicate comments:
In `@src/main/resources/config/application-variable.yml`:
- Around line 106-114: In the cors.allowed-origins list replace the incorrect
entry "https://www.stage.admins.solid-connection.com" by the correct admin
staging domain: remove the "www." prefix and fix "admins"→"admin" (use
"https://stage.admin.solid-connection.com" to match the admin service pattern
like production's "https://admin.solid-connection.com"); update the value
wherever it appears under cors.allowed-origins.

Copy link
Member

@whqtker whqtker left a comment

Choose a reason for hiding this comment

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

고생하셨습니다 ~! 파리미터 스토어에 필요한 값들이 있는지 한 번 확인해주세요 ! 권한이 없어서 못 보네요 ㅜㅜ

network_mode: "host"
environment:
- SPRING_PROFILES_ACTIVE=dev
- AWS_REGION=ap-northeast-2
Copy link
Member

Choose a reason for hiding this comment

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

docker compose에 리전을 추가하셨는데, EC2의 리전을 추론하도록 하면 어떤 차이가 있을까요 ?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

명시 안했을 때 이점이 인프라 리전 변경했을 때 자동추론 밖에 없는데 그냥 명시하는 게 안정적일 것 같아 명시했습니다!

public-key-url: "https://appleid.apple.com/auth/keys"
kakao:
token-url: "https://kauth.kakao.com/oauth/token"
user-info-url: "https://kapi.kakao.com/v2/user/me"
Copy link
Member

Choose a reason for hiding this comment

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

사소하긴 한데요, test 설정 파일에는 user-info_url 로 되어 있습니다. 이 부분도 통일 가능할까요 ?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

통일하겠습니당

datasource:
hikari:
maximum-pool-size: 50
minimum-idle: 20
Copy link
Member

Choose a reason for hiding this comment

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

부하 테스트시에는 flyway 사용 안 하니까 명시적으로 false 를 설정해주는게 좋을 거 같습니다 ! true 여도 어차피 stage에서 마이그레이션된 후여서 상관없을 거 같은데, 혹시 모르니까요 ..

Copy link
Contributor Author

Choose a reason for hiding this comment

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

확인했습니당


sentry:
environment: "production"
traces-sample-rate: 0.1
Copy link
Member

Choose a reason for hiding this comment

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

이전에는 prod에도 sentry trace rate가 1.0이었는데, 0.1로 변경하신 이유가 있나요 ?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

1.0은 오버헤드가 크다고해서 줄여봤습니다...! 실무에서는 보통 0.05~0.2를 사용한다고 하네요 문제 있으면 수정하겠습니다!

Copy link
Member

Choose a reason for hiding this comment

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

그대로 가도 좋을 거 같아요 !

flyway:
enabled: true
locations: classpath:db/migration
baseline-on-migrate: false
Copy link
Member

Choose a reason for hiding this comment

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

기존에는 baseline-on-migratetrue 인데 false로 설정하신 이유가 있나요 ?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

baseline을 true로 할 이유가 없다고 판단했습니다! 지금 어차피 flyway적용 중인 상태라 DB를 옮기는 게 아니면 baseline이 거의 필요 없는 상황이라서요! DB를 옮기는 등 특수한 상황이면 수동으로 실행하는 게 안전하다고 생각했습니당

user-info-url: "https://kapi.kakao.com/v2/user/me"

sentry:
send-default-pii: false
Copy link
Member

Choose a reason for hiding this comment

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

기존에는 true 였는데 false 로 설정하신 이유가 있나요 ?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

이거 보안이랑 개인정보 관련해서 좀 민감한 부분이라 일단 false로 돌렸습니당... 실무에서도 필요한 필드만 따로 설정해서 수동 전송한다고 하더라구요

- loadtest 프로필에 spring.flyway.enabled=false 명시

- test 설정의 kakao user-info 키를 user-info-url로 통일
Copy link
Member

@whqtker whqtker left a comment

Choose a reason for hiding this comment

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

확인했습니다 ~!

@lsy1307 lsy1307 merged commit 61aba25 into solid-connection:develop Mar 3, 2026
2 checks passed
whqtker added a commit that referenced this pull request Mar 8, 2026
* feat: 파견 대학 테이블명 변경 및 협정 대학 테이블 추가하는 DDL 작성 (#620)

* feat: 파견 대학 테이블명 변경 및 협정 대학 테이블 추가하는 DDL 작성

* refactor: 테이블명 변경 및 추가에 따른 엔티티 생성

- 또한 목데이터 생성 로직 수정

* test: 테스트 코드에서 University -> HostUniversity로 변경

* chore: 중복 인덱스 생성 방지를 위해 인덱스 생성 제거

- FK 제약조건을 추가할 때 인덱스가 없다면 알아서 추가하기 때문

* chore: home_university 테이블에 created/updated_at 추가

* refactor: 잘못 설정되었던 테이블 간 연관 관계 재설정 (#622)

* refactor: home_university와 university_info_for_apply가 FK 관계를 가지도록

* chore: FK 변경에 따른 목데이터 수정

* test: 테스트 픽스터 수정

* refactor: 대학 검색 응답 수정 (#624)

* refactor: home_university와 university_info_for_apply가 FK 관계를 가지도록

* chore: FK 변경에 따른 목데이터 수정

* refactor: 필터 검색 엔드포인트 삭제

* refactor: 필터 검색 관련 서비스 로직 삭제

* refactor: 필터 검색 관련 레포지토리 메서드 삭제

* refactor: 필터 검색 관련 DTO 삭제

* test: 필터 검색 관련 테스트 코드 삭제

* refactor: 지원 대학 관련 응답에 협정 대학 이름 추가

* test: 지원 대학 응답 수정에 따른 테스트 수정

* refactor: 간접 참조 대신 연관관계 추가

- N+1 방지를 위해 fetch join도 추가

* test: 간접 참조 방식에서 연관 관계 설정으로 따른 테스트 코드 수정

* chore: 목데이터에서 지원 대학 테이블에 협정 대학 ID를 설정하도록

* test: home university fixture 추가

* refactor: home university에 대한 fetch join 추가

* refactor: s3 버전 업그레이드 및 로직 수정 (#608)

* refactor: s3 sdk 버전 업그레이드
- 의존성 수정
- 버전 업그레이드에 따른 코드 수정

* refactor: 이미지 이외의 파일 관리를 위해 ImgType 의미 명확하도록 수정
- ImgType에서 UploadType으로 변경
- 해당되는 파일 모두 수정

* refactor: s3 테스트 코드 추가

* fix: s3 access-key, secret-key 최신화, 버킷 명칭 올바르게 수정

* fix: ChatService Test 변경점 반영, S3ServiceTest 단위 테스트로 변경
- images->files로 디렉토리 경로 수정

* fix: 이중 비동기 실행문제 해결
- @async에 전적으로 위임

* refactor: S3Service error 메시지 NPE 가능성 제거

* refactor: 수정사항 반영
- UploadType -> UploadPath로 명칭변경
- 컨벤션 수정(미사용 변수 삭제, 들여쓰기, 명칭변경)

* fix: 테스트 코드 오류 수정
- 내부 로직에서 사용하는 fileUploadService 정의

* refactor: 수정사항 반영
- 파일 확장자 상수화
- 확장자 확인로직, 채팅이면 모든 파일 허용, 이미지 확인까지 모두 enum에서 관리
- MultipartFile이 비동기 과정에서 유실되지 않도록 byte로 변환해서 전달
- UrlPrefixResponse PascalCase로 변경

* refactor: 컨벤션 수정
- 사용하지 않는 import문 삭제

* refactor: 리프레시 토큰 만료시 쿠키 삭제 (#628)

* refactor: 리프레시 토큰 만료시 쿠키 삭제

* refactor: 인증 전용 예외 생성

* refactor: 멘토링 조회 응답에 mentoringId 필드 추가 (#638)

* feat: WebSocket 로깅 인터셉터 작성 (#635)

* feat: WebSocket 로깅 인터셉터 작성

* refactor: Principal 명시적 형 변환 대신 null 체크하여 형 변환

* feat: 어드민에서 파견 대학을 관리하도록 (#633)

* feat: 파견 대학 CRUD 관련 ErrorCode 추가

- HOST_UNIVERSITY_HAS_REFERENCES : 파견 대학 삭제 시 해당 대학을 참조하는 UnivApplyInfo가 존재하는 경우

* feat: 파견 대학 관련 정보를 업데이트하는 도메인 메서드 작성

* feat: 조회 관련 Repository 메서드 구현

* feat: 파견 대학 검색 관련 QueryDSL로 구현

* feat: 어드민 파견 대학 CRUD 관련 DTO 작성

* feat: country 조회 관련 로직 추가 및 ErrorCode 추가

* feat: 어드민 파견 대학 CRUD 관련 서비스 로직 작성

* feat: 어드민 파견 대학 관련 컨트롤러 작성

* test: 어드민 파견 대학 관리 관련 테스트 작성

* refactor: 엔드포인트의 path variable 이름 변경

- id -> host-university-id

* refactor: PageResponse 응답 객체를 사용하도록

* test: 응답 변경에 따른 테스트 코드 수정

* fix: host_university 테이블의 korean_name 필드에 unique key 추가 (#645)

* fix: host_university 테이블의 korean_name 필드에 unique key 쿠가

* test: test용 hostUniversityRepository 생성

* test: 고유한 korean_name을 가진 host university 객체를 사용하도록

* fix: 멘토 지원서 승인 시 유저 Role 을 Mentor로 승격 (#639)

* fix: 멘토 지원서 승인 시 유저 Role 을 Mentor로 승격

* fix: 멘토 지원서 승인 시 멘토 생성

* fix: 멘토의 introduction, passTip null 허용하도록 수정

- not null 인 필드에 빈문자열로 값을 채우는 것 보다, null 허용이 더 의미
  있다 판단하여 null 을 허용하도록 하였습니다.

* fix: 사용하지 않는  멘토 생성 api 제거

- 멘토 생성의 주체가 어드민으로 변경되어 Mentor 도메인의 Mentor 생성 api 를 제거

* feat: 멘토 지원서 승인 예외처리 추가

- 중복 멘토 생성 예외 처리 및 테스트 추가

* refactor: Mentor 생성 시 null 전달 제거

* refactor: 멘토 지원서 승낙 시, 검증 후 승격 및 멘토 생성

* chore: 스크립트 버전 수정 (#651)

* chore: 스크립트 버전 수정

* test: korean_name 컬럼 UK 관련 테스트 코드 수정

* feat: test skill 추가 (#647)

* feat: serena MCP 추가

* feat: test skill 추가

* feat: hook 추가

- 응답 대기시 알람발송
- 컨벤션 어겼을 때 훅 작동

* feat: 안쓰는 파일 제거

* fix: 게시글 중복 생성 방지 (#649)

* fix: 게시글 중복 생성 방지

- Redis 패키지 및 로직 정리

* fix: 게시글 중복 생성 방지

- 게시글 중복 요청 방지 Redis 로직 추가

* refactor: 게시글 중복 생성 방지

* chore: testcontainer 버전 업 (#659)

* chore: windows에서도 hook이 동작하도록 (#655)

* refactor: 오래된 이미지 삭제 후 이미지 pull하도록 변경 (#653)

refactor: 오래된 이미지 삭제 후 이미지 pull하도록 변경 (#653)

- 추가로 이미지는 5개 -> 2개 보관하도록 변경

* refactor: 멘토 도메인 응답의 사용자 id를 siteUserId로 통일 (#665)

* refactor: 멘토 관련 id응답은 모두 site-user-id가 되도록 수정

* test: 멘토 관련 테스트 코드 수정

* refactor: 채팅 도메인 응답의 사용자 관련 id를 siteUserId로 통일 (#666)

* refactor: 채팅 관련 응답에서 사용자 관련 Id를 siteUserId로 통일

* refactor: siteUserId를 포함하도록 서비스 코드 수정

* test: 사용자 id로 응답 통일 관련 테스트 수정

* feat: 전체 뉴스를 조회하는 API 구현 (#674)

* feat: 전체 news 조회 API 구현

- 기존 API에 author-id를 선택적으로 받도록

* test: 전체 news 조회 관련 테스트 코드 작성

* refactor: 날짜 오름차순으로 news 조회하는 JPA 메서드 추가

* refactor: 뉴스 조회 API를 하나로 통합

- 서비스 계층에서 siteUserId == null을 기준으로 분기하도록

* refactor: 컨트롤러 계층에서 분기문 제거

- 분기를 서비스 계층에게 위임했음

* test: 뉴스 조회 관련 테스트 코드 수정

* chore: 누락된 제약 조건을 추가하는 스크립트 작성 (#676)

* chore: pr을 리뷰하는 SKILL.md 작성 (#669)

* chore: pr을 리뷰하는 SKILL.md 작성

* chore: vscode extension으로 claude를 사용하는 경우에도 알림이 뜨도록

* feat: Parameter Store 기반 설정 관리 전환 및 loadtest 프로필 추가 (#670)

* feat: Parameter Store 설정 전환

- secret 서브모듈 제거 및 설정 파일 분리

- 프로필별 Parameter Store import와 loadtest 프로필 추가

* feat: Parameter Store 연동 설정 추가

- Spring Cloud AWS Parameter Store 의존성 추가

- config 분리와 profile별 import/loadtest 프로필 설정

* feat: 배포 파이프라인 Parameter Store 대응

- dev/prod workflow에서 submodule checkout 제거

- compose 환경변수에 AWS_REGION 주입

* feat: S3 인증을 IAM Role 체인으로 전환

- 정적 access key/secret key 주입 제거

- DefaultCredentialsProvider 기반 S3Client 구성

* feat: 리뷰 반영 설정 보완

- local 프로필 refresh cookie-domain을 localhost로 수정

- loadtest outbound thread pool에 queue-capacity 추가

* refactor: 환경별 설정 fail-fast 정리

- websocket outbound queue-capacity 누락 보완

- prod/dev/local OAuth redirect-url fallback 제거

- yml placeholder 빈 기본값(:) 제거

- dev CORS admin 도메인 변경 반영

* chore: Parameter Store import를 fail-fast로 전환

- common/local/dev/prod/loadtest aws-parameterstore import에서 optional 제거

* refactor: cloud 설정을 SSM 단일 소스로 정리

- env placeholder(CLOUD_AWS_*) 제거

- cloud.aws.* 값은 /solid-connection/common 경로에서 주입

* refactor: DB/Flyway 설정을 프로퍼티 키 기반으로 정리

- datasource/flyway env placeholder 제거

- prod/dev baseline-on-migrate를 false로 변경

- local 빈 redis 블록 제거

* chore: 공통 변수 설정 보안/컨벤션 정리

- OAuth/JWT/Sentry/News/Loki placeholder 제거

- kakao user-info-url 키를 kebab-case로 통일

- sentry 기본 PII 비활성화 및 prod traces 샘플링 0.1 설정

- dev admin CORS origin 문자열 변경 반영

* fix: dev admin CORS origin trailing slash 제거

* feat: review comments 반영

- loadtest 프로필에 spring.flyway.enabled=false 명시

- test 설정의 kakao user-info 키를 user-info-url로 통일

* refactor: docker-compose.dev.yml에 mysql 컨테이너 추가 (#690)

* refactor: docker-compose.dev.yml에 mysql 컨테이너 추가

* fix: 코드래빗 반영(MYSQL_ALLOW_EMPTY_PASSWORD: 'yes' 추가)

* fix: term 테이블의 is_current 필드에 UK 설정 (#650)

* fix: is_current 필드에 UK 설정

* test: UK 설정에 따른 테스트 코드 불일치성 해결

* chore: 스크립트 버전 수정

* refactor: 미사용 코드 제거

* feat: 어드민 유저 관리 기능 추가 (#686)

* feat: 어드민 유저 관리 기능

- 차단 기능 rebase 및 충돌 해결

* test: 어드민 유저 관리 기능

* feat: 어드민 유저 관리 기능

* feat: 어드민 유저 관리 기능

- University -> HostUniversity 변경

* refactor: 어드민 유저 관리 기능

* chore: 스크립트 버전 수정 (#691)

* chore: stage admin 도메인 추가 (#692)

* refactor: 응답에서 refresh token은 제외하여 전달하도록 (#646)

* refactor: 응답에서 refresh token은 제외하여 전달하도록

* refactor: 미사용 응답 필드 제거

* refactor: 쿠키 설정용, HTTP 응답용 DTO 변경

* test: result 객체 추가에 따른 테스트 코드 수정

* feat: 어드민 국가 crud 추가 (#656)

* feat: 국가 관련 어드민 crud 추가

* test: 국가 관련 어드민 crud 테스트 추가

* refactor: 대학 캐시 무효화 정책 추가 (#660)

* refactor: 대학 캐시 무효화 정책 추가

* test: 대학 캐시 무효화 정책 테스트 추가

* chore: master hotfix를 develop에 sync (#694)

* fix: /applications 중복 활성 지원서 조회 시 500 오류 방지

- 활성 지원서 조회를 최신 1건 기준 메서드로 변경

- 지원서 제출 로직과 테스트 코드를 변경된 조회 메서드명에 맞춰 동기화

* fix: 활성 지원서 중복 문제의 근본 해결 TODO 명시

- 최신 1건 선택 로직이 임시 회피임을 주석으로 명확화

- DB 유일성 제약 도입 후 우회 조회 제거 필요사항을 기록

* hotfix: 대학 조회 캐싱 임시 제거

* hotfix: 대학 조회 캐싱 임시 제거

---------

Co-authored-by: Wibaek Park <34394229+devMuromi@users.noreply.github.com>
Co-authored-by: 이세원 <107756067+leesewon00@users.noreply.github.com>
Co-authored-by: Wibaek Park <34394229+wibaek@users.noreply.github.com>
Co-authored-by: Yeongseo Na <panda0329@naver.com>
Co-authored-by: Wibaek Park <devmuromi@gmail.com>
Co-authored-by: 황규혁 <126947828+Gyuhyeok99@users.noreply.github.com>
Co-authored-by: Gyuhyeok99 <ghkdrbgur13@naver.com>
Co-authored-by: Yeon <84384499+lsy1307@users.noreply.github.com>
Co-authored-by: hyungjun <115551339+sukangpunch@users.noreply.github.com>
Co-authored-by: 정재희 <y2hjjh@naver.com>
Co-authored-by: Yeonri <lsy1307@inha.edu>

---------

Co-authored-by: Yeon <84384499+lsy1307@users.noreply.github.com>
Co-authored-by: 황규혁 <126947828+Gyuhyeok99@users.noreply.github.com>
Co-authored-by: hyungjun <115551339+sukangpunch@users.noreply.github.com>
Co-authored-by: 정재희 <y2hjjh@naver.com>
Co-authored-by: in seong Park <74069492+Hexeong@users.noreply.github.com>
Co-authored-by: Wibaek Park <34394229+devMuromi@users.noreply.github.com>
Co-authored-by: 이세원 <107756067+leesewon00@users.noreply.github.com>
Co-authored-by: Wibaek Park <34394229+wibaek@users.noreply.github.com>
Co-authored-by: Yeongseo Na <panda0329@naver.com>
Co-authored-by: Wibaek Park <devmuromi@gmail.com>
Co-authored-by: Gyuhyeok99 <ghkdrbgur13@naver.com>
Co-authored-by: Yeonri <lsy1307@inha.edu>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

refactor: stage 서버 RDS -> EC2로 전환 및 K6 부하테스트용 프로필 전환을 위한 AWS Parameter Store 연동

2 participants