Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FEAT] AWS S3 파일 저장 이슈 해결 #181

Merged
merged 2 commits into from
May 24, 2024
Merged

Conversation

kimdozzi
Copy link
Contributor

PR 타입(하나 이상의 PR 타입을 선택해주세요)

☑ 기능 추가

□ 기능 삭제

□ 버그 수정

□ 의존성, 환경 변수, 빌드 관련 코드 업데이트


반영 브랜치

feat/177-aws-s3-issue -> main


변경 사항

  • AWS S3 bucket CORS 설정을 추가하였습니다.
  • Request가 들어오는 challenge controller에 추가 코드를 작성하였습니다.

테스트 결과


연관된 이슈

#177


리뷰 요구사항(선택)

리뷰어가 특별히 봐주었으면 하는 부분이 있다면 작성해주세요
ex) 메서드 XXX의 이름을 더 잘 짓고 싶은데 혹시 좋은 명칭이 있을까요?

Copy link

Test Results

 47 files   47 suites   29s ⏱️
262 tests 262 ✅ 0 💤 0 ❌
275 runs  275 ✅ 0 💤 0 ❌

Results for commit 05f4e91.

@SSung023 SSung023 added ⛔️ bug 버그 관련 🧑🏻‍💻 BE 백엔드 관련 코드 🔧 !HOTFIX 핫픽스(긴급 버그 픽스) labels May 24, 2024
@kimdozzi kimdozzi merged commit 8e647f0 into main May 24, 2024
3 checks passed
@kimdozzi kimdozzi deleted the feat/177-aws-s3-issue branch May 24, 2024 07:03
@@ -2,7 +2,7 @@ name: Build and Deploy to EC2

on:
push:
branches: [ "production" ]
branches: [ "production", "feat/177-aws-s3-issue" ]
Copy link
Contributor

Choose a reason for hiding this comment

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

배포와 관련된 워크플로우 같네요! "feat/177-aws-s3-issue"는 제외해야 하지 않을까요?

@@ -23,6 +24,7 @@
@RestController
@RequestMapping("/api/challenges")
@RequiredArgsConstructor
@CrossOrigin
Copy link
Contributor

Choose a reason for hiding this comment

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

오... 이런 어노테이션도 있었군요....!!!

SSung023 added a commit that referenced this pull request Jun 8, 2024
* 무중단배포 테스트

* 무중단 배포 테스트

* [FEAT] AWS S3 파일 저장 이슈 해결 (#181)

* feat: aws s3 bucket access issue

- @crossorigin 어노테이션 추가

* feat: aws 적용 테스트

* chore: main yml 수정 (#182)

* [FEAT] nginx & docker-compose 무중단 배포  (#184)

* 무중단배포 테스트

* 무중단 배포 테스트

* feat: main.yml 수정

* feat: docker build and push script 작성

* feat: docker build and push script 작성

* feat: docker build and push script 작성

* feat: docker build and push script 작성

* feat: docker build and push script 작성

* feat: docker build and push script 작성

* feat: docker build and push script 작성

* feat: docker build and push script 작성

* feat: docker build and push script 작성

* feat: docker build and push script 작성

* feat: docker build and push script 작성

* git actions & docker TEST

* git actions & docker TEST

* git actions & docker TEST

* self-hosted runners & docker compose test

* self-hosted runners & docker compose test

* self-hosted runners & docker compose test

* self-hosted runners & docker compose test

* docker compose & nginx test

* 최종 테스트

* 최종 테스트

* 최종 테스트

* 최종 테스트

* 최종 테스트

* 테스트

* feat: 무중단 배포 적용 완료

* feat: 무중단 배포 적용 완료

* feat: 무중단 배포 적용 완료

* chore: yml conflict 해결

* [REFACTOR] 파일이 저장소에 존재하지 않을 때에 대한 응답 데이터 리팩토링 및 추가 예외 처리 (#183)

* refactor: 파일이 존재하지 않을 때 반환 값 변경

- 저장소에 파일이 존재하지 않을 때 반환 값을 빈 문자열("")로 변경
- 주석 추가

* refactor: 예외 코드 추가 및 변경

- 예외 상황에 맞도록 예외 코드 추가

* feat: 파일 복사 시 예외 상황 추가 처리

- 원본 파일을 이용하는 파일 복사 로직에서, 원본 파일이 존재하지 않으면 예외 발생하는 코드 추가

* test: 예외 코드 추가에 따른 테스트 코드 변경

* [FEAT] Slack Webhook 적용 (#186)

* feat: Slack Webhook 적용

* feat: yml 수정

* [FIX] 추천 챌린지가 제대로 전달되지 않는 버그 픽스 (#187)

* fix: 추천 인스턴스가 제대로 뜨지 않는 버그 픽스

- 인스턴스의 태그의 개수 >= 사용자의 태그의 개수일 때, 추천 인스턴스가 제대로 뜨지 않는 버그 픽스
- 쿼리문을 in에서 like문으로 수정

* test: 추천 인스턴스 반환과 관련된 테스트 코드 작성

- 인스턴스가 여러 개의 태그를 가지고 있을 때, 제대로 반환하는지 확인
- 반환하는 데이터의 개수가 pageSize보다 적을 때/많을 때 페이징이 제대로 작동하는지 확인하는 테스트 코드 추가

* [FIX] FE에서 Item을 식별하는 코드가 제대로 설정되지 않는 버그 픽스 (#189)

* refactor: Item 식별 전용 Column 생성

- Item 식별 시 사용할 전용 Column 생성
- 식별 전용으로 사용할 것이기 때문에 unique=true로 설정

* feat: data.sql의 insert문을 변경된 구조에 맞게 수정

* feat: 식별자를 통해 Item을 반환하는 코드 및 테스트 코드 추가

- ItemProvider, ItemService에 식별자(identifier)를 통해 Item 객체를 찾는 코드 추가
- ItemController에서 전달받은 값(식별자)를 통해 Item 객체를 받은 후 전달하는 코드 추가
- 관련 테스트 코드 추가

* refactor: topic과 관련된 파일 조작 코드 삭제 (#199)

- 어드민의 Topic 생성 페이지에서 이미지를 받지 않기로 비지니스 로직을 수정함에 따라, FilesController 및 FilesService에서 Topic과 관련된 코드 삭제

* [FIX] 당일에 시작하는 챌린지에 참여할 수 있는 버그 픽스 (#198)

* refactor: 챌린지 참여 취소 성공 응답 메세지 변경

- 챌린지 참여 취소 성공 시 응답 메세지가 "참여 성공"으로 설정되어 있던 것을 "참여 취소 성공"으로 변경

* fix: 인스턴스 시작일에도 참여할 수 있는 버그 픽스

- 현재의 날짜가 인스턴스의 시작일보다 이전일 때에만 인스턴스에 참여할 수 있도록 조건 추가
- 관련 테스트 코드 수정

* [FEAT] 프로필 프레임 아이템 추가 (#196)

* feat: data.sql의 insert문에 프로필 프레임 3개 추가

* test: 테스트 코드 수정

* [FEAT] 배포 자동화 적용 (#195)

* feat: 배포자동화 Github Actions 워크플로우 작성

* feat: appspec.yml 파일 추가

* fix: 감지 브랜치를 production으로 국한

* fix: 인스턴스 상세 조회 시 좋아요 개수 버그 픽스 (#200)

- 사용자가 해당 인스턴스에 좋아요를 하지 않았을 때, 좋아요 개수를 0으로 보내던 문제 해결

* chore: 사용하지 않는 파일 삭제

* fix: 누락된 Slack webhook 설정 코드 추가

* fix: slack webhook 위치 조정

---------

Co-authored-by: kimdozzi <[email protected]>
SSung023 added a commit that referenced this pull request Jul 11, 2024
* 무중단배포 테스트

* 무중단 배포 테스트

* [FEAT] AWS S3 파일 저장 이슈 해결 (#181)

* feat: aws s3 bucket access issue

- @crossorigin 어노테이션 추가

* feat: aws 적용 테스트

* chore: main yml 수정 (#182)

* [FEAT] nginx & docker-compose 무중단 배포  (#184)

* 무중단배포 테스트

* 무중단 배포 테스트

* feat: main.yml 수정

* feat: docker build and push script 작성

* feat: docker build and push script 작성

* feat: docker build and push script 작성

* feat: docker build and push script 작성

* feat: docker build and push script 작성

* feat: docker build and push script 작성

* feat: docker build and push script 작성

* feat: docker build and push script 작성

* feat: docker build and push script 작성

* feat: docker build and push script 작성

* feat: docker build and push script 작성

* git actions & docker TEST

* git actions & docker TEST

* git actions & docker TEST

* self-hosted runners & docker compose test

* self-hosted runners & docker compose test

* self-hosted runners & docker compose test

* self-hosted runners & docker compose test

* docker compose & nginx test

* 최종 테스트

* 최종 테스트

* 최종 테스트

* 최종 테스트

* 최종 테스트

* 테스트

* feat: 무중단 배포 적용 완료

* feat: 무중단 배포 적용 완료

* feat: 무중단 배포 적용 완료

* chore: yml conflict 해결

* [REFACTOR] 파일이 저장소에 존재하지 않을 때에 대한 응답 데이터 리팩토링 및 추가 예외 처리 (#183)

* refactor: 파일이 존재하지 않을 때 반환 값 변경

- 저장소에 파일이 존재하지 않을 때 반환 값을 빈 문자열("")로 변경
- 주석 추가

* refactor: 예외 코드 추가 및 변경

- 예외 상황에 맞도록 예외 코드 추가

* feat: 파일 복사 시 예외 상황 추가 처리

- 원본 파일을 이용하는 파일 복사 로직에서, 원본 파일이 존재하지 않으면 예외 발생하는 코드 추가

* test: 예외 코드 추가에 따른 테스트 코드 변경

* [FEAT] Slack Webhook 적용 (#186)

* feat: Slack Webhook 적용

* feat: yml 수정

* [FIX] 추천 챌린지가 제대로 전달되지 않는 버그 픽스 (#187)

* fix: 추천 인스턴스가 제대로 뜨지 않는 버그 픽스

- 인스턴스의 태그의 개수 >= 사용자의 태그의 개수일 때, 추천 인스턴스가 제대로 뜨지 않는 버그 픽스
- 쿼리문을 in에서 like문으로 수정

* test: 추천 인스턴스 반환과 관련된 테스트 코드 작성

- 인스턴스가 여러 개의 태그를 가지고 있을 때, 제대로 반환하는지 확인
- 반환하는 데이터의 개수가 pageSize보다 적을 때/많을 때 페이징이 제대로 작동하는지 확인하는 테스트 코드 추가

* [FIX] FE에서 Item을 식별하는 코드가 제대로 설정되지 않는 버그 픽스 (#189)

* refactor: Item 식별 전용 Column 생성

- Item 식별 시 사용할 전용 Column 생성
- 식별 전용으로 사용할 것이기 때문에 unique=true로 설정

* feat: data.sql의 insert문을 변경된 구조에 맞게 수정

* feat: 식별자를 통해 Item을 반환하는 코드 및 테스트 코드 추가

- ItemProvider, ItemService에 식별자(identifier)를 통해 Item 객체를 찾는 코드 추가
- ItemController에서 전달받은 값(식별자)를 통해 Item 객체를 받은 후 전달하는 코드 추가
- 관련 테스트 코드 추가

* refactor: topic과 관련된 파일 조작 코드 삭제 (#199)

- 어드민의 Topic 생성 페이지에서 이미지를 받지 않기로 비지니스 로직을 수정함에 따라, FilesController 및 FilesService에서 Topic과 관련된 코드 삭제

* [FIX] 당일에 시작하는 챌린지에 참여할 수 있는 버그 픽스 (#198)

* refactor: 챌린지 참여 취소 성공 응답 메세지 변경

- 챌린지 참여 취소 성공 시 응답 메세지가 "참여 성공"으로 설정되어 있던 것을 "참여 취소 성공"으로 변경

* fix: 인스턴스 시작일에도 참여할 수 있는 버그 픽스

- 현재의 날짜가 인스턴스의 시작일보다 이전일 때에만 인스턴스에 참여할 수 있도록 조건 추가
- 관련 테스트 코드 수정

* [FEAT] 프로필 프레임 아이템 추가 (#196)

* feat: data.sql의 insert문에 프로필 프레임 3개 추가

* test: 테스트 코드 수정

* [FEAT] 배포 자동화 적용 (#195)

* feat: 배포자동화 Github Actions 워크플로우 작성

* feat: appspec.yml 파일 추가

* fix: 감지 브랜치를 production으로 국한

* fix: 인스턴스 상세 조회 시 좋아요 개수 버그 픽스 (#200)

- 사용자가 해당 인스턴스에 좋아요를 하지 않았을 때, 좋아요 개수를 0으로 보내던 문제 해결

* chore: 사용하지 않는 파일 삭제

* fix: 누락된 Slack webhook 설정 코드 추가

* fix: slack webhook 위치 조정

* fix: 챌린지 시작 당일이 되었을 때 상태가 업데이트 되도록 버그 픽스 (#203)

- `ProgressService` - `updateToActivity()`의 조건문에서 챌린지 시작 당일일 때에도 상태 업데이트가 되도록 수정
- 챌린지 시작 당일에도 업데이트가 되는지 여부를 확인하는 테스트 코드 추가

* [FIX] 00시~오전 동안 PR 인식을 못하는 버그 픽스 (#206)

* refactor: Date -> KST 변환 메서드 이름 변경

- Date를 LocalDate(KST)로 변환하는 메서드의 이름을 더 직관적으로 변경

* fix: 요청 인증 일자를 페이로드에서 받아와서 사용하도록 수정

- LocalDate는 서버의 타임 존에 영향을 받기 때문에, LocalDate.now()가 아닌, 페이로드에서 요청 일자를 받아와서 사용하도록 코드 수정

* fix: 시스템의 타임존에 상관없이 KST로 변환하는 로직으로 변경

시스템의 타임존에 상관없이 KST 기준 시간으로 변환하는 로직 추가

* fix: 인증 컨트롤러에서 현재 일자를 받는 부분 수정

- 인증 컨트롤러에서 LocalDate.now()를 호출하던 부분을 DateUtil의 convertToKST를 통해 KST로 변환된 값을 입력하도록 수정
-

* fix: LocalDate.now()를 타임존에 영향받지 않는 코드로 변경

- LocalDate.now()를 DateUtil.convertToKST()로 변경하여 시스템 타임존에 영향받지 않도록 변경

* [FIX] 인스턴스 참가 취소 시 인스턴스 참여 인원, 상태 변화에 대한 버그 픽스 (#212)

* fix: 참여자 수 갱신 시 음수가 될 수 있는 버그 픽스

-  Instance 클래스 내에 참여자 수 갱신 메서드에서, 갱신된 값이 음수가 될 수 있는 경우에는 갱신시키지 않도록 처리

* fix: 인스턴스 참여 여부 확인 메서드 수정

- 인스턴스 참여 여부를 확인하는 로직에 오류가 있어 수정
- 참여 상태가 No일 때에도 참여로 간주하고 있어, No가 아닐 때에만 true를 반환하도록 수정

* fix: 진행 중인 챌린지 취소 시, 챌린지 현황의 시작 전 개수가 증가하는 버그 픽스

- JoinStatus가 NO(실패)일 때에, 챌린지 현황 조회에 포함되도록 로직 수정
- 챌린지 현황 조회에 사용하는 HashMap의 Key에 시작 전에 해당하는 READY 포함
- for문(반복문)을 Iterator로 변경 및 indent를 2에서 1로 감소

* [CHORE] GitGet Readme 업데이트  (#216)

* Create README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* [CHORE] README 업데이트

* chore: README 업데이트

* [FEAT] 예외 발생 시, Slack 채널에 메세지를 보내는 기능 추가 (#214)

* chore: slack 의존성 추가 및 불필요한 주석 제거

* chore: favicon error 해결을 위해 favicon.ico 추가

* feat: BusinessException 발생 시, Slack 채널에 메세지 보내는 기능 추가

- BusinessException 발생 시, Slack의 #exception-log 채널에 메세지를 보내는 기능 추가
- GlobalException에 대한 추가 처리도 필요
- .yml 파일에 slack 정보 추가  필요
- 스택 트레이스 가독성 개선 필요

* feat: Exception 발생 시 보내는 메세지 포멧 변경

- Exception 발생 시 전송하는 Slack 메세지에 예외 발생 시각 데이터 추가

* feat: 처리하지 않은 예외 외에 다른 예외 발생 시에도 Slack 메세지 보내도록 설정

* fix: prod 프로파일이 활성화되어 있을 때에만 메세지를 보내도록 설정

- Environment를 의존성 주입받아 prod(application-prod.yml) 프로파일이 활성화되어 있을 때에만 Slack 메세지를 보내도록 설정
- 각 ExceptionHandler가 MessageSender 인터페이스를 상속받고, sendSlackMessage() 메서드를 구현
- 테스트 및 개발 환경에서 Slack 메세지를 보내지 않는 점 확인

* chore: Deploy 조건 변경

- push, pull request에서 push로 변경

---------

Co-authored-by: kimdozzi <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🧑🏻‍💻 BE 백엔드 관련 코드 ⛔️ bug 버그 관련 🔧 !HOTFIX 핫픽스(긴급 버그 픽스)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[FEAT] 운영 환경에서 AWS S3 저장소에 이미지가 제대로 저장되지 않는 이슈
2 participants