Skip to content

fix(infra): 개발 서버 배포 Secret 파일 전송 방식 적용 - #227

Merged
1Seob merged 1 commit into
developfrom
fix/infra-dev-secret-transfer
Aug 20, 2026
Merged

fix(infra): 개발 서버 배포 Secret 파일 전송 방식 적용#227
1Seob merged 1 commit into
developfrom
fix/infra-dev-secret-transfer

Conversation

@1Seob

@1Seob 1Seob commented Aug 20, 2026

Copy link
Copy Markdown
Collaborator

📝 요약(Summary)

  • 개발 EC2 배포에서 대용량 Secret이 SSH INPUT_SCRIPT에 직접 포함되어 배포가 시작 전에 중단되는 문제를 수정했습니다.
  • 운영 배포에서 검증된 파일 기반 Secret 전달 방식을 개발 워크플로에도 적용했습니다.

주요 변경사항

  • Secret 전달 구조

    • 프롬프트와 실행 설정 55개를 개별 Base64 파일로 생성합니다.
    • 생성된 파일을 SCP로 EC2에 전달하고 원격에서 환경변수로 복원합니다.
  • 배포 안정성

    • 모든 Secret의 존재 여부와 디코딩을 확인한 후 기존 애플리케이션을 종료합니다.
    • 성공·실패 시 러너와 EC2의 임시 Secret 파일을 정리합니다.
  • 민감 정보 보호

    • 파일 생성 시 제한된 권한을 사용하고 전송·복원 단계별로 권한을 조정합니다.
    • set -x를 제거해 복원된 민감 정보가 명령 추적 로그에 노출될 위험을 줄였습니다.

검증

  • js-yaml 기반 GitHub Actions YAML 파싱 통과
  • Secret 선언·파일 생성·원격 복원 목록 55개 일치 확인
  • Secret 준비 및 원격 배포 Bash 스크립트 bash -n 검사 통과
  • git diff --check 통과
  • Java 애플리케이션 변경이 없어 Gradle 테스트는 실행하지 않음

참고 / 리스크

  • 실제 GitHub Actions와 EC2 배포 성공 여부는 변경사항을 푸시한 후 Dev 배포 재실행으로 최종 확인해야 합니다.

🔗 Related Issue

  • Closes:

💬 공유사항

✅ PR Checklist

PR이 다음 요구 사항을 충족하는지 확인하세요.

  • PR 제목을 커밋 메시지 컨벤션에 맞게 작성했습니다.

대용량 Secret을 개별 Base64 파일로 생성해 SCP로 전달하도록 변경함. 원격 복원·권한 제한·임시 파일 정리와 Secret 검증 후 기존 프로세스 종료 순서를 적용함
@1Seob 1Seob changed the title fix(infra): 개발 배포 Secret 파일 전송 방식 적용 fix(infra): 개발 서버 배포 Secret 파일 전송 방식 적용 Aug 20, 2026
@1Seob
1Seob merged commit 577bdd8 into develop Aug 20, 2026
1 check passed
@1Seob
1Seob deleted the fix/infra-dev-secret-transfer branch August 20, 2026 13:00
1Seob added a commit that referenced this pull request Aug 22, 2026
* feat(ai): Ask Chat 예시 질문 10분 로테이션 적용 (#225)

* feat: Ask Chat 예시 질문 결정적 로테이션 추가

사용자 ID와 10분 시간 슬롯을 기준으로 예시 질문을 순환 선택하고 동일 슬롯 안정성 및 경계 동작을 단위 테스트로 검증함

* feat: Ask Chat 홈에 질문 로테이션 적용

AskChatSessionService의 요청별 랜덤 선택을 사용자별 10분 결정적 로테이션으로 교체함

* feat(stats): 통계 기간 선택과 유형 리포트 차트 확장 (#226)

* feat(stats): 유형 리포트 관심사별 일간 집계 추가

soft delete된 COMPLETED 이력을 누적·일별 통계에 포함하고 최근 7일의 빈 날짜·관심사를 0으로 보정함

* feat(stats): 유형 리포트 관심사별 추이 차트 추가

* feat(stats): 통계 조회 기준 기간 선택 지원

date·week·month 쿼리 파라미터를 ISO 형식으로 해석하고 미래 기간을 차단함. 선택 기간을 끝점으로 일간 7일·주간 5주·월간 5개월 시계열과 요약값을 구성하고 실제
현재 기간을 기준으로 최고 기록 상태를 유지함

* feat(stats): 통계 기간 선택 UI와 요약 카드 추가

일·주·월 통계 페이지 하단에 기간 선택 폼과 현재 기간 복귀 링크를 추가함

* feat(stats): 유형 리포트 활성·누적 통계 분리

현재 활성 COMPLETED 리포트와 재생성 이력을 포함한 전체 누적 생성 수를 별도 집계·ViewModel·차트로 분리함

* fix(infra): 테스트 DB 커넥션 풀 연결 한도 초과 수정

* fix(infra): 개발 배포 Secret 파일 전송 방식 적용 (#227)

대용량 Secret을 개별 Base64 파일로 생성해 SCP로 전달하도록 변경함. 원격 복원·권한 제한·임시 파일 정리와 Secret 검증 후 기존 프로세스 종료 순서를 적용함

* fix(report): 유형 리포트 persona 마크업 노출 방지 (#228)

persona 문자열의 비지원 <marks> 태그를 생성·리라이트·저장 단계에서 검증하고, 기존 레거시 데이터는 조회 응답에서 일반 텍스트로 복원함

* feat(admin): 관리자 페이지에 로그 탭과 필터 화면 추가 (#229)

* feat(admin): 로그 조회 공통 기반과 사용자 필터 추가

관리자 로그 조회에 사용할 페이지 응답 DTO와 닉네임·이메일 검색 조건 정규화 및 최신순 정렬 규칙을 추가함. report_generation_logs, crystal_logs,
ask_chat_wallet_logs의 전체 최신순 조회를 지원하도록 created_at·id 복합 인덱스를 Flyway migration으로 추가함

* feat(admin): 리포트 생성 로그 조회 API 추가

report_generation_logs를 사용자 닉네임·이메일로 검색하고 최신순 페이지네이션으로 조회하는 관리자 API를 추가함

* feat(admin): 크리스탈 로그 조회 API 추가

crystal_logs를 사용자 닉네임·이메일로 검색하고 최신순 페이지네이션으로 조회하는 관리자 API를 추가함

* feat(admin): Ask Chat 대화권 로그 조회 API 추가

ask_chat_wallet_logs를 사용자 닉네임·이메일로 검색하고 최신순 페이지네이션으로 조회하는 관리자 API를 추가함

* feat(admin): 관리자 로그 탭과 필터 화면 추가

/admin/tabs/logs에 주요 로그 하위 탭과 닉네임·이메일 필터, 페이지네이션을 연결하고 Ask Chat Wallet 표는 sessionId만 표시하도록 단순화함
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant