Linux 실행과 배포 리허설
설정·비밀값을 분리하고 Linux 실습 환경에서 동일 산출물을 실행합니다.
진도 0%
레슨
- 셸과 환경 설정
경로·인용·권한·출력·오류·종료 상태를 구분합니다.
- 빌드와 실행 산출물
Maven 캐시·버전 고정·외부 설정으로 실행을 재현합니다.
- Linux 컨테이너 리허설
이미지·볼륨·실행 계정과 설정 주입을 구분합니다.
- 배포 점검과 변경 기록
권한·CRUD·롤백 점검과 리뷰 자료를 정리합니다.
Linux 실행과 배포 리허설 미션
앞 모듈의 결과를 이어서 동아리 API를 Linux 테스트 환경에 재현 가능하게 배포합니다.
요구사항
- 앞 모듈 미션 solution의 인증·권한·CSRF·대여·멱등성 코드와 156개 검사를 보존하고 Boot 3.1.5 실행 jar로 패키징합니다.
- CATALOG_JDBC_URL과 APP_CONFIG를 외부에서 전달하고 UID/GID 10001, 읽기 전용 설정, 전용 H2 named volume으로 Linux에서 실행합니다.
- 해시 검증 후 릴리스를 선택하고 이전 실행 종료·old 선택·같은 볼륨 재기동·조회/키 재생 확인의 순서로 복구를 리허설합니다.
- README-M09.md에 준비·실행·점검·복구를 읽고 REVIEW.md에 변경 이유·검증 결과·제한·리뷰 요청을 작성합니다.
완료 기준
- 외부 Docker 환경에서 bash check.sh가 준비 확인, 셸 5개, 릴리스 선택 6개, 기준 Java 157개·candidate 누적 161개와 실행 jar 구조, 컨테이너 UID를 검사하여 종료 0을 반환합니다. 준비 부족은 PREP_REQUIRED/종료 3입니다.
- 전용 새 볼륨에서 익명 조회·로그인·대여 201/Location·같은 키 재생·다른 본문 409·다른 회원 404·권한/CSRF 403 계약이 유지됩니다.
- 누락 설정은 이름만 stderr에 알리고 종료 2로 끝납니다. 손상된 릴리스는 선택 파일을 유지하며 재기동/old 선택 뒤 같은 도서 목록과 대여 이력·요청 키 결과를 확인합니다.
- 앞 모듈 소스 기준 jar와 이번 candidate jar를 별도 빌드해 두 해시가 다름을 확인합니다. 스키마 변경을 포함하지 않은 두 파일의 계약 검사이며 임의 과거 버전 호환성·무중단 배포·백업 복원을 증명했다고 쓰지 않습니다.
- Docker 실행은 작성 환경에서 불가하므로 verify=external의 PENDING을 실패로 세지 않되, 실제 실행 통과로도 기록하지 않습니다.
bash check.sh미션 시작 코드
모범 답안
모범 답안 내려받기검토 기준
- 앞 모듈 계약 보존, 산출물 해시와 외부 설정의 실제 소비 경로를 설명합니다.
- 실제 두 버전 DB 호환성 검증의 한계, 중단 기준과 복구 후 확인을 구분합니다.
- 비밀값 없이 재실행 가능한 REVIEW.md와 외부 HTTP 검증 근거를 제출합니다.