From 609642c7948a5a81e89e59cc264998d099c229ee Mon Sep 17 00:00:00 2001 From: sweetRainShin Date: Tue, 19 May 2026 01:11:28 +0900 Subject: [PATCH 1/5] =?UTF-8?q?fix:=20deploy=20auth=20=EC=84=A4=EC=A0=95?= =?UTF-8?q?=20=EC=88=98=EC=A0=95=20=EB=B0=8F=20Dockerfile=20=EB=82=B4=20au?= =?UTF-8?q?th=20=EC=98=A4=EB=A5=98=20=EC=A7=80=EC=A0=90=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 --- .github/workflows/deploy.yml | 39 +++++++++++++++++++++++------------- Dockerfile | 17 +++++++++------- 2 files changed, 35 insertions(+), 21 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 9e92da5..b5187e3 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -72,18 +72,20 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - - name: Build, tag, and push image to ECR - env: - REGISTRY: ${{ steps.ecr-login.outputs.registry }} - IMAGE_TAG: ${{ github.sha }} - run: | - docker buildx build --platform linux/amd64 \ - --build-arg GITHUB_USER=${{ secrets.GH_USER }} \ - --secret id=github_token,env=GITHUB_TOKEN \ - -t $REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG \ - -t $REGISTRY/$ECR_REPOSITORY:latest \ - --push \ - . + - name: Build, tag, and push image to ECR + env: + REGISTRY: ${{ steps.ecr-login.outputs.registry }} + IMAGE_TAG: ${{ github.sha }} + GH_USER: ${{ secrets.GH_USER }} + GH_TOKEN: ${{ secrets.GH_TOKEN }} + run: | + docker buildx build --platform linux/amd64 \ + --build-arg GITHUB_USER="$GH_USER" \ + --secret id=github_token,src=<(echo "$GH_TOKEN") \ + -t $REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG \ + -t $REGISTRY/$ECR_REPOSITORY:latest \ + --push \ + . - name: Show pushed image run: | @@ -95,10 +97,19 @@ jobs: aws ecs describe-task-definition --task-definition program-service \ --query taskDefinition > task-definition.json + - name: Fill in the new image ID in the Amazon ECS task definition + id: render-task-def + uses: aws-actions/amazon-ecs-render-task-definition@v1 + with: + task-definition: task-definition.json + container-name: venue-service + image: ${{ steps.ecr-login.outputs.registry }}/${{ env.ECR_REPOSITORY }}:${{ github.sha }} + + - name: Deploy to ECS uses: aws-actions/amazon-ecs-deploy-task-definition@v2 with: - task-definition: task-definition.json - service: program-service + task-definition: ${{ steps.render-task-def.outputs.task-definition }} + service: venue-service cluster: first-ticket-cluster wait-for-service-stability: false diff --git a/Dockerfile b/Dockerfile index 2227423..7a15110 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,19 +11,22 @@ COPY gradle gradle COPY build.gradle settings.gradle ./ RUN chmod +x gradlew -# 2. 의존성 미리 다운로드 +WORKDIR /app + +# 1. 빌드 캐시 최적화를 위해 설정 파일 먼저 복사 +COPY gradlew . +COPY gradle gradle +COPY build.gradle settings.gradle ./ +RUN chmod +x gradlew + ARG GITHUB_USER -RUN --mount=type=secret,id=github_token \ - GITHUB_TOKEN="$(cat /run/secrets/github_token)" \ - GITHUB_USER=$GITHUB_USER \ - ./gradlew dependencies --no-daemon -# 3. 소스 코드 복사 및 실행 가능한 JAR 빌드 COPY src src + RUN --mount=type=secret,id=github_token \ GITHUB_TOKEN="$(cat /run/secrets/github_token)" \ GITHUB_USER=$GITHUB_USER \ - ./gradlew clean bootJar --no-daemon -x test + ./gradlew clean bootJar --no-daemon -x test -x asciidoctor # 4. Spring Boot 3의 계층화 기능을 활용해 레이어 추출 RUN java -Djarmode=layertools -jar build/libs/*.jar extract From f20dbb307aaf14d7a938a8b7f30af850c4c38e84 Mon Sep 17 00:00:00 2001 From: sweetRainShin Date: Tue, 19 May 2026 01:43:41 +0900 Subject: [PATCH 2/5] =?UTF-8?q?fix:=20createSchedule=20=EC=8B=9C=20totalCa?= =?UTF-8?q?pacity=20=EC=9E=85=EB=A0=A5=20=EC=A0=9C=EA=B1=B0=20=EB=B0=8F=20?= =?UTF-8?q?remainingCount=20=EA=B0=92=EA=B3=BC=20=EC=9D=BC=EC=B9=98?= =?UTF-8?q?=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - CreateScheduleRequest: totalCapacity 필드 제거 - CreateScheduleCommand: totalCapacity 필드 제거 - ProgramCommandService.createSchedule(): venueValidation.totalCapacity()를 totalCapacity로 직접 사용 - UpdateScheduleRequest / UpdateScheduleCommand: totalCapacity 필드 제거 - ProgramCommandService.updateSchedule(): totalCapacity 관련 검증 제거 --- .../dto/command/CreateScheduleCommand.java | 3 +-- .../dto/command/UpdateScheduleCommand.java | 3 +-- .../service/ProgramCommandService.java | 26 +++++-------------- .../dto/request/CreateScheduleRequest.java | 9 ++----- .../dto/request/UpdateScheduleRequest.java | 8 ++---- 5 files changed, 13 insertions(+), 36 deletions(-) diff --git a/src/main/java/com/firstticket/programservice/application/dto/command/CreateScheduleCommand.java b/src/main/java/com/firstticket/programservice/application/dto/command/CreateScheduleCommand.java index 73983f1..f9a5ddd 100644 --- a/src/main/java/com/firstticket/programservice/application/dto/command/CreateScheduleCommand.java +++ b/src/main/java/com/firstticket/programservice/application/dto/command/CreateScheduleCommand.java @@ -13,7 +13,6 @@ public record CreateScheduleCommand( LocalDateTime eventStartAt, LocalDateTime eventEndAt, LocalDateTime saleStartAt, - LocalDateTime saleEndAt, - int totalCapacity + LocalDateTime saleEndAt ) { } diff --git a/src/main/java/com/firstticket/programservice/application/dto/command/UpdateScheduleCommand.java b/src/main/java/com/firstticket/programservice/application/dto/command/UpdateScheduleCommand.java index 9c3d7f1..e5742ac 100644 --- a/src/main/java/com/firstticket/programservice/application/dto/command/UpdateScheduleCommand.java +++ b/src/main/java/com/firstticket/programservice/application/dto/command/UpdateScheduleCommand.java @@ -16,7 +16,6 @@ public record UpdateScheduleCommand( LocalDateTime eventEndAt, LocalDateTime saleStartAt, LocalDateTime saleEndAt, - UUID venueId, - Integer totalCapacity + UUID venueId ) { } diff --git a/src/main/java/com/firstticket/programservice/application/service/ProgramCommandService.java b/src/main/java/com/firstticket/programservice/application/service/ProgramCommandService.java index d35e91c..4730dbf 100644 --- a/src/main/java/com/firstticket/programservice/application/service/ProgramCommandService.java +++ b/src/main/java/com/firstticket/programservice/application/service/ProgramCommandService.java @@ -257,13 +257,6 @@ public ProgramResult createSchedule(UUID requesterId, CreateScheduleCommand comm VenueValidationData venueValidation = venueProvider.validateVenue(command.venueId(), program.getType()); - // 스케줄 totalCapacity가 venue 내 해당 타입 구역 전체 수용량을 초과하는지 검증 - // ex) SEATED 프로그램인데 venue에 SEATED 구역 수용량 합계가 500석이면 - // totalCapacity는 500을 넘을 수 없다 - if (command.totalCapacity() > venueValidation.totalCapacity()) { - throw new ProgramException(ProgramErrorCode.TOTAL_CAPACITY_EXCEEDS_VENUE_LIMIT); - } - // 2. 공연장 시간 겹침 검증 // 비관적 락으로 동시 요청 간 TOCTOU 방지 (V-04) // DB 레벨 exclusion constraint(tsrange)와 이중 방어 @@ -275,7 +268,7 @@ public ProgramResult createSchedule(UUID requesterId, CreateScheduleCommand comm // 3. 스케줄 생성 program.addSchedule(command.venueId(), command.eventStartAt(), command.eventEndAt(), command.saleStartAt(), - command.saleEndAt(), command.totalCapacity(), LocalDateTime.now()); + command.saleEndAt(), venueValidation.totalCapacity(), LocalDateTime.now()); programRepository.save(program); return ProgramResult.from(program); @@ -294,14 +287,14 @@ public ProgramResult updateSchedule(UUID requesterId, UpdateScheduleCommand comm Schedule schedule = findScheduleInProgram(program, command.scheduleId()); + Integer newTotalCapacity = null; + // venueId가 변경되는 경우에만 존재 여부 확인 if (command.venueId() != null) { VenueValidationData venueValidation = venueProvider.validateVenue(command.venueId(), program.getType()); - if (command.totalCapacity() > venueValidation.totalCapacity()) { - throw new ProgramException(ProgramErrorCode.TOTAL_CAPACITY_EXCEEDS_VENUE_LIMIT); - } + newTotalCapacity = venueValidation.totalCapacity(); // 변경된 venueId 기준으로 시간 겹침 검증 // 자기 자신은 제외하고 검증 @@ -321,10 +314,12 @@ public ProgramResult updateSchedule(UUID requesterId, UpdateScheduleCommand comm } } + // schedule.update() 단일 호출 + // totalCapacity: venueId 변경 시 → venue 계산값, 미변경 시 → null (기존 값 유지) schedule.update( command.eventStartAt(), command.eventEndAt(), command.saleStartAt(), command.saleEndAt(), - command.venueId(), command.totalCapacity(), + command.venueId(), newTotalCapacity, LocalDateTime.now() ); @@ -566,9 +561,6 @@ private void validateCreateScheduleCommand(CreateScheduleCommand command) { if (command.saleStartAt() == null || command.saleEndAt() == null) { throw new ProgramException(ProgramErrorCode.INVALID_SALE_PERIOD); } - if (command.totalCapacity() <= 0) { - throw new ProgramException(ProgramErrorCode.INVALID_CAPACITY); - } } /** @@ -580,10 +572,6 @@ private void validateUpdateScheduleCommand(UpdateScheduleCommand command) { if (command.scheduleId() == null) { throw new ProgramException(ProgramErrorCode.SCHEDULE_NOT_FOUND); } - // 도메인의 Schedule.update()와 일관성 유지 — 0도 차단 - if (command.totalCapacity() != null && command.totalCapacity() <= 0) { - throw new ProgramException(ProgramErrorCode.INVALID_CAPACITY); - } } /** diff --git a/src/main/java/com/firstticket/programservice/presentation/dto/request/CreateScheduleRequest.java b/src/main/java/com/firstticket/programservice/presentation/dto/request/CreateScheduleRequest.java index 035f5fb..79a1cb7 100644 --- a/src/main/java/com/firstticket/programservice/presentation/dto/request/CreateScheduleRequest.java +++ b/src/main/java/com/firstticket/programservice/presentation/dto/request/CreateScheduleRequest.java @@ -7,7 +7,6 @@ import jakarta.validation.constraints.FutureOrPresent; import jakarta.validation.constraints.NotNull; -import jakarta.validation.constraints.Positive; /** * 스케줄 등록 요청 DTO. @@ -33,18 +32,14 @@ public record CreateScheduleRequest( @NotNull(message = "판매 종료 일시는 필수입니다") @FutureOrPresent(message = "판매 종료 일시는 현재 시각 이후여야 합니다") - LocalDateTime saleEndAt, - - @Positive(message = "수용 인원은 1명 이상이어야 합니다") - int totalCapacity + LocalDateTime saleEndAt ) { public CreateScheduleCommand toCommand(UUID programId) { return new CreateScheduleCommand( programId, venueId, eventStartAt, eventEndAt, - saleStartAt, saleEndAt, - totalCapacity + saleStartAt, saleEndAt ); } } diff --git a/src/main/java/com/firstticket/programservice/presentation/dto/request/UpdateScheduleRequest.java b/src/main/java/com/firstticket/programservice/presentation/dto/request/UpdateScheduleRequest.java index ae408bb..fc905d2 100644 --- a/src/main/java/com/firstticket/programservice/presentation/dto/request/UpdateScheduleRequest.java +++ b/src/main/java/com/firstticket/programservice/presentation/dto/request/UpdateScheduleRequest.java @@ -5,8 +5,6 @@ import com.firstticket.programservice.application.dto.command.UpdateScheduleCommand; -import jakarta.validation.constraints.Positive; - /** * 스케줄 수정 요청 DTO. * null이면 기존 값 유지 (부분 업데이트). @@ -17,16 +15,14 @@ public record UpdateScheduleRequest( LocalDateTime eventEndAt, LocalDateTime saleStartAt, LocalDateTime saleEndAt, - UUID venueId, - @Positive(message = "수용 인원은 1명 이상이어야 합니다") - Integer totalCapacity // ← primitive int → Integer + UUID venueId ) { public UpdateScheduleCommand toCommand(UUID programId, UUID scheduleId) { return new UpdateScheduleCommand( programId, scheduleId, eventStartAt, eventEndAt, saleStartAt, saleEndAt, - venueId, totalCapacity + venueId ); } } From 8cbd86a66bedfc6b7528d48f71fca72fe8a968b3 Mon Sep 17 00:00:00 2001 From: sweetRainShin Date: Tue, 19 May 2026 11:27:05 +0900 Subject: [PATCH 3/5] =?UTF-8?q?fix:=20deploy=20=EC=84=A4=EC=A0=95=20?= =?UTF-8?q?=EB=B0=8F=20Dockerfile=20=EB=B9=8C=EB=93=9C=20=EC=8B=A4?= =?UTF-8?q?=ED=8C=A8=20=EB=B6=80=EB=B6=84=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/deploy.yml | 110 +++++++++++++++++------------------ Dockerfile | 9 +-- 2 files changed, 54 insertions(+), 65 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index b5187e3..115964f 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -25,31 +25,31 @@ jobs: build-and-test: runs-on: ubuntu-latest steps: - - name: Checkout - uses: actions/checkout@v6 + - name: Checkout + uses: actions/checkout@v6 - - name: Set up JDK 21 - uses: actions/setup-java@v5 - with: - java-version: '21' - distribution: 'temurin' + - name: Set up JDK 21 + uses: actions/setup-java@v5 + with: + java-version: '21' + distribution: 'temurin' - - name: Set up Gradle - uses: gradle/actions/setup-gradle@v6 + - name: Set up Gradle + uses: gradle/actions/setup-gradle@v6 - - name: Grant execute permission to gradlew - run: chmod +x gradlew + - name: Grant execute permission to gradlew + run: chmod +x gradlew - - name: Build & Test - run: ./gradlew build --no-daemon + - name: Build & Test + run: ./gradlew build --no-daemon - - name: Upload test report (on failure) - if: failure() - uses: actions/upload-artifact@v5 - with: - name: test-report - path: build/reports/tests/ - retention-days: 7 + - name: Upload test report (on failure) + if: failure() + uses: actions/upload-artifact@v5 + with: + name: test-report + path: build/reports/tests/ + retention-days: 7 push-to-ecr: needs: build-and-test @@ -57,20 +57,20 @@ jobs: github.event_name == 'push' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/dev') runs-on: ubuntu-latest steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@v6 - - name: Configure AWS credentials (OIDC) - uses: aws-actions/configure-aws-credentials@v6 - with: - role-to-assume: ${{ secrets.AWS_ROLE_ARN }} - aws-region: ${{ env.AWS_REGION }} + - name: Configure AWS credentials (OIDC) + uses: aws-actions/configure-aws-credentials@v6 + with: + role-to-assume: ${{ secrets.AWS_ROLE_ARN }} + aws-region: ${{ env.AWS_REGION }} - - name: Login to Amazon ECR - id: ecr-login - uses: aws-actions/amazon-ecr-login@v2 + - name: Login to Amazon ECR + id: ecr-login + uses: aws-actions/amazon-ecr-login@v2 - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 - name: Build, tag, and push image to ECR env: @@ -87,29 +87,25 @@ jobs: --push \ . - - name: Show pushed image - run: | - echo "✅ Pushed: $ECR_REPOSITORY:${{ github.sha }}" - echo "✅ Pushed: $ECR_REPOSITORY:latest" - - - name: Download task definition - run: | - aws ecs describe-task-definition --task-definition program-service \ - --query taskDefinition > task-definition.json - - - name: Fill in the new image ID in the Amazon ECS task definition - id: render-task-def - uses: aws-actions/amazon-ecs-render-task-definition@v1 - with: - task-definition: task-definition.json - container-name: venue-service - image: ${{ steps.ecr-login.outputs.registry }}/${{ env.ECR_REPOSITORY }}:${{ github.sha }} - - - - name: Deploy to ECS - uses: aws-actions/amazon-ecs-deploy-task-definition@v2 - with: - task-definition: ${{ steps.render-task-def.outputs.task-definition }} - service: venue-service - cluster: first-ticket-cluster - wait-for-service-stability: false + - name: Show pushed image + run: | + echo "✅ Pushed: $ECR_REPOSITORY:${{ github.sha }}" + echo "✅ Pushed: $ECR_REPOSITORY:latest" + + - name: Download task definition + run: | + aws ecs describe-task-definition --task-definition program-service \ + --query taskDefinition > task-definition.json + + - name: Download task definition + run: | + aws ecs describe-task-definition --task-definition program-service \ + --query taskDefinition > task-definition.json + + - name: Deploy to ECS + uses: aws-actions/amazon-ecs-deploy-task-definition@v2 + with: + task-definition: task-definition.json + service: program-service + cluster: first-ticket-cluster + wait-for-service-stability: false diff --git a/Dockerfile b/Dockerfile index 7a15110..9af7e1b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,14 +11,6 @@ COPY gradle gradle COPY build.gradle settings.gradle ./ RUN chmod +x gradlew -WORKDIR /app - -# 1. 빌드 캐시 최적화를 위해 설정 파일 먼저 복사 -COPY gradlew . -COPY gradle gradle -COPY build.gradle settings.gradle ./ -RUN chmod +x gradlew - ARG GITHUB_USER COPY src src @@ -28,6 +20,7 @@ RUN --mount=type=secret,id=github_token \ GITHUB_USER=$GITHUB_USER \ ./gradlew clean bootJar --no-daemon -x test -x asciidoctor + # 4. Spring Boot 3의 계층화 기능을 활용해 레이어 추출 RUN java -Djarmode=layertools -jar build/libs/*.jar extract From 12118221d6392959a8ce64c98d3830abb733b16b Mon Sep 17 00:00:00 2001 From: sweetRainShin Date: Tue, 19 May 2026 11:42:38 +0900 Subject: [PATCH 4/5] =?UTF-8?q?fix:=20=EB=8F=84=EB=A9=94=EC=9D=B8=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=20=EC=82=AC=ED=95=AD=EC=97=90=20=EB=94=B0?= =?UTF-8?q?=EB=A5=B8=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EC=BD=94=EB=93=9C=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/ProgramServiceTest.java | 18 +----------------- .../presentation/ProgramControllerTest.java | 15 +++++---------- 2 files changed, 6 insertions(+), 27 deletions(-) diff --git a/src/test/java/com/firstticket/programservice/application/service/ProgramServiceTest.java b/src/test/java/com/firstticket/programservice/application/service/ProgramServiceTest.java index d521e9d..d9c8845 100644 --- a/src/test/java/com/firstticket/programservice/application/service/ProgramServiceTest.java +++ b/src/test/java/com/firstticket/programservice/application/service/ProgramServiceTest.java @@ -462,8 +462,7 @@ private CreateScheduleCommand validCommand() { return new CreateScheduleCommand( PROGRAM_ID, VENUE_ID, FUTURE, FUTURE.plusHours(2), - FUTURE.minusDays(30), FUTURE.minusDays(1), - 500 + FUTURE.minusDays(30), FUTURE.minusDays(1) ); } @@ -484,21 +483,6 @@ void success() { assertThat(result.schedules()).hasSize(1); } - @Test - @DisplayName("totalCapacity가 공연장 수용량 초과 시 TOTAL_CAPACITY_EXCEEDS_VENUE_LIMIT 예외 — 도메인 규칙 위반") - void fail_capacityExceedsVenueLimit() { - Program program = draftProgram(); - given(programRepository.findByIdWithSchedules(PROGRAM_ID)) - .willReturn(Optional.of(program)); - given(venueProvider.validateVenue(VENUE_ID, ProgramType.SEATED)) - .willReturn(venueValidation(499)); // command.totalCapacity=500 > 499 - - assertThatThrownBy(() -> programCommandService.createSchedule(OWNER_ID, validCommand())) - .isInstanceOf(ProgramException.class) - .extracting(e -> ((ProgramException)e).getErrorCode()) - .isEqualTo(ProgramErrorCode.TOTAL_CAPACITY_EXCEEDS_VENUE_LIMIT); - } - @Test @DisplayName("공연장 시간 겹침 시 VENUE_TIME_CONFLICT 예외 — 도메인 규칙 위반 (V-04)") void fail_venueTimeConflict() { diff --git a/src/test/java/com/firstticket/programservice/presentation/ProgramControllerTest.java b/src/test/java/com/firstticket/programservice/presentation/ProgramControllerTest.java index 7e4b9d5..2d5441d 100644 --- a/src/test/java/com/firstticket/programservice/presentation/ProgramControllerTest.java +++ b/src/test/java/com/firstticket/programservice/presentation/ProgramControllerTest.java @@ -707,8 +707,7 @@ void success() throws Exception { "eventStartAt": "2027-06-01T14:00:00", "eventEndAt": "2027-06-01T17:00:00", "saleStartAt": "2027-05-01T10:00:00", - "saleEndAt": "2027-05-31T23:59:59", - "totalCapacity": 500 + "saleEndAt": "2027-05-31T23:59:59" } """.formatted(VENUE_ID))) .andExpect(status().isCreated()) @@ -729,8 +728,7 @@ void success() throws Exception { fieldWithPath("eventStartAt").description("공연 시작 일시 (현재 이후)"), fieldWithPath("eventEndAt").description("공연 종료 일시 (현재 이후)"), fieldWithPath("saleStartAt").description("판매 시작 일시 (현재 이후)"), - fieldWithPath("saleEndAt").description("판매 종료 일시 (현재 이후)"), - fieldWithPath("totalCapacity").description("수용 인원 (1 이상)") + fieldWithPath("saleEndAt").description("판매 종료 일시 (현재 이후)") ) )); } @@ -748,8 +746,7 @@ void fail_missingVenueId() throws Exception { "eventStartAt": "2027-06-01T14:00:00", "eventEndAt": "2027-06-01T17:00:00", "saleStartAt": "2027-05-01T10:00:00", - "saleEndAt": "2027-05-31T23:59:59", - "totalCapacity": 500 + "saleEndAt": "2027-05-31T23:59:59" } """)) .andExpect(status().isBadRequest()) @@ -781,8 +778,7 @@ void fail_venueConflict() throws Exception { "eventStartAt": "2027-06-01T14:00:00", "eventEndAt": "2027-06-01T17:00:00", "saleStartAt": "2027-05-01T10:00:00", - "saleEndAt": "2027-05-31T23:59:59", - "totalCapacity": 500 + "saleEndAt": "2027-05-31T23:59:59" } """.formatted(VENUE_ID))) .andExpect(status().isConflict()) @@ -925,8 +921,7 @@ void success() throws Exception { fieldWithPath("eventEndAt").type(JsonFieldType.STRING).optional().description("공연 종료 일시"), fieldWithPath("saleStartAt").type(JsonFieldType.STRING).optional().description("판매 시작 일시"), fieldWithPath("saleEndAt").type(JsonFieldType.STRING).optional().description("판매 종료 일시"), - fieldWithPath("venueId").type(JsonFieldType.STRING).optional().description("공연장 UUID"), - fieldWithPath("totalCapacity").type(JsonFieldType.NUMBER).optional().description("수용 인원") + fieldWithPath("venueId").type(JsonFieldType.STRING).optional().description("공연장 UUID") ) )); } From ae367c6da219f1abd880e53853683ac15f9508d0 Mon Sep 17 00:00:00 2001 From: sweetRainShin Date: Tue, 19 May 2026 11:44:32 +0900 Subject: [PATCH 5/5] =?UTF-8?q?fix:=20deploy=20=EC=A4=91=EB=B3=B5=20?= =?UTF-8?q?=EC=82=AC=ED=95=AD=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/deploy.yml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 115964f..3a9600a 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -97,11 +97,6 @@ jobs: aws ecs describe-task-definition --task-definition program-service \ --query taskDefinition > task-definition.json - - name: Download task definition - run: | - aws ecs describe-task-definition --task-definition program-service \ - --query taskDefinition > task-definition.json - - name: Deploy to ECS uses: aws-actions/amazon-ecs-deploy-task-definition@v2 with: