Skip to content

Commit

Permalink
[BE] release: 백엔드 운영 서버 배포 v1.0.0 (#482)
Browse files Browse the repository at this point in the history
* [BE] Fix/#366 테스트 수행 시 로그 패턴 깨지는 오류 해결 (#367)

* fix: 테스트 로그 패턴 설정 오류 수정

- 잘못된 로그 패턴 설정으로 인한 'LOG_PATTERN IS_UNDEFINED' 메시지 출력 오류 수정

* chore: 프론트엔드, 백엔드 develop 분리에 따른 워크플로우 수정

* fix: 테스트 로그 설정 파일명 변경
- springProperty 지원을 위해 파일명 변경

* feat: 로그 내용 및 설정 보완(색상 적용)

- 로그에서 로거, 레벨, PID 확인 가능하도록 내용 보완
- 테스트 로그의 경우 프로젝트 패키지에 해당하는 로그만 DEBUG 레벨로 설정
- 콘솔 로그 색상 적용

* feat: 로그 내용 보완 - 스레드 출력하도록 수정

* refactor: DataBaseCleanup JdbcTemplate 적용 (#371)

* [BE] Refactor/#376 로깅 환경 개선을 위한 설정 파일 리팩터링 (#377)

* refactor: 로깅 전략 보완에 따른 설정 파일 수정

- 운영 환경 별 로그 종류(콘솔, 파일), 레벨 변경 (PR 첨부 설명 참조)
- logback-spring.xml 에서 Appender 분리
- application-*.xml 에서 로그 패턴 값 삭제

* chore: 에러 로그 슬랙 알림을 위한 의존성 추가, 관련 주석 작성

* remove: 테스트 설정 파일에 불필요한 로그 설정 삭제

* style: 불필요한 빈 줄 삭제

* chore: 콘솔 파일 로그 설정 삭제로 인한 불필요한 설정 삭제

* chore: 로그 파일 롤링 용량 설정 모든 레벨 통일

* [BE] Chore/#372 submodule 적용 (#375)

* chore: submodule 적용

Co-authored-by: jaeyeon kim <[email protected]>

* chore: workflow access token 적용

Co-authored-by: jaeyeon kim <[email protected]>

---------

Co-authored-by: jaeyeon kim <[email protected]>
Co-authored-by: yoondgu <[email protected]>

* feat: 운영 서버 500 에러 슬랙 알림 적용, 로컬 환경변수 서브모듈에 저장 (#379)

* hotfix: yml 문법으로 인한 오류 수정 (#381)

* fix: 워크플로우 서브모듈 문제 해결 (#384)

* chore: 워크플로우 서브모듈 문제 해결 확인을 위한 push (#385)

* Feat/#386 image (#391)

* chore : S3 의존성 추가

* feat : Amazon S3 Component 추가

* feat : S3 에 업로드 될 Image 의 이름을 설정해주는 ImageName 과 UploadFile 추가

* feat : S3 에 업로드 될 Image 의 이름을 설정해주는 ImageNae 과 UploadFile 추가

* feat : 파일을 업로드하고 해당하는 URL 을 반환하는 Service 구현

* chore : s3 환경 설정 추가

* feat : String image -> MultipartFile image 로 변경

* feat : @RequestPart 적용 및 S3 upload 로직 추가

* chore : Test 시 Profile 설정

* test : 테스트 시 S3 에 접근하지 않도록 하기 위해 Profile 별로 S3Service Bean 구분

* test : 추가된 Image 저장 기능에 맞춰 일부 Test 수정

* chore : S3, CloudFront 환경설정 적용

* test : RestDocs 수정중

* refactor : S3 Bean 추가 (#396)

* [BE] Refactor/#390 지도 및 핀 상세 조회 API에 수정 권한 여부 필드 추가 (#392)

* feat: 토픽 상세 조회 내용에 수정 권한 추가

* refactor: 토픽 상세 조회 DTO 정적 팩터리 메서드명 수정

* feat: 핀 상세 조회 내용에 수정 권한 추가

* fix: 토픽 RestDocs 깨지는 문제 수정, API 목차 순서 조정

- 목록 조회 API 기준으로 순서 조정, API 네이밍 보완

* refactor: 토픽, 핀 수정 권한 여부 필드명 직관적으로 수정

- hasUpdatePermission -> canUpdate

* refactor: Guest 전용 토픽 상세조회 DTO 정적 팩터리 메서드 정의

* refactor: 메서드 순서 정리, Guest 전용 토픽 조회 DTO 정적 팩터리 메서드 정의

* refactor: Guest 전용 토픽 List 조회 DTO 정적 팩터리 메서드 정의

* refactor: Info, Debug 레벨 커스텀 로그만 출력하도록 변경 (#397)

* feat : pin 생성시 image upload 기능 추가 (#401)

* [BE] Feat/#378 Admin API 구현 (#405)

* feat: 전체 회원 조회 기능 구현

* feat: 회원 삭제(탈퇴) 기능 구현

* feat: 회원 삭제(탈퇴)시 Pin/Topic Soft-deleting 구현

* refactor: Admin DTO 분리

* feat: Member 상세 정보 조회 기능 구현

* feat: Topic 삭제 및 이미지 삭제 기능 구현

* feat: Pin 삭제 및 이미지 삭제 기능 구현

* feat: Admin API 구현

* refactor: Member 상태(차단, 탈퇴 등) 필드에 따른 로그인 로직 수정

* refactor: @SqlDelete 삭제 및 JPQL 대체

* feat: AdminInterceptor 구현

* test: Repository soft-deleting 테스트 구현

* test: AdminQueryService 테스트 구현

* test: AdminCommandService 테스트 구현

* test: AdminController Restdocs 테스트 구현

* test: AdminInterceptor Mocking

* test: 통합 테스트 구현

* refactor: 오탈자 수정

* refactor: Auth 관련 예외 클래스 추가

* refactor: 불필요한 메서드 제거

* refactor: findMemberById 예외 수정

* test: GithubActions 실패 테스트 수정

* refactor: isAdmin() 메서드 추가

* refactor: 회원 삭제(탈퇴)시, 추가 정보(즐겨찾기 등) 삭제

* Revert "[BE] Feat/#378 Admin API 구현 (#405)" (#414)

This reverts commit 4722faa.

* [BE] Feat/#378 Admin API 구현 (#415)

* feat: 전체 회원 조회 기능 구현

* feat: 회원 삭제(탈퇴) 기능 구현

* feat: 회원 삭제(탈퇴)시 Pin/Topic Soft-deleting 구현

* refactor: Admin DTO 분리

* feat: Member 상세 정보 조회 기능 구현

* feat: Topic 삭제 및 이미지 삭제 기능 구현

* feat: Pin 삭제 및 이미지 삭제 기능 구현

* feat: Admin API 구현

* refactor: Member 상태(차단, 탈퇴 등) 필드에 따른 로그인 로직 수정

* refactor: @SqlDelete 삭제 및 JPQL 대체

* feat: AdminInterceptor 구현

* test: Repository soft-deleting 테스트 구현

* test: AdminQueryService 테스트 구현

* test: AdminCommandService 테스트 구현

* test: AdminController Restdocs 테스트 구현

* test: AdminInterceptor Mocking

* test: 통합 테스트 구현

* refactor: 오탈자 수정

* refactor: Auth 관련 예외 클래스 추가

* refactor: 불필요한 메서드 제거

* refactor: findMemberById 예외 수정

* test: GithubActions 실패 테스트 수정

* refactor: isAdmin() 메서드 추가

* refactor: 회원 삭제(탈퇴)시, 추가 정보(즐겨찾기 등) 삭제

* refactor: Member status 기본값 설정

* remove: Member status 기본값 설정 삭제

* [BE] Feature/#399 내 정보(회원 닉네임) 수정 API 구현 (#408)

* refactor: 사용하지 않는 MemberRepository 메서드 삭제

* refactor: 회원 업데이트 부분 변경으로 시그니처 변경

- 현재 회원 update에서 변경되는 부분만 인자로 남겨둠
- update 시, Member 에서 MemberInfo.getXX을 하는 대신 MemberInfo에서 부분 변경된 객체를 새로 반환하도록 수정

* feat: 회원 정보 수정 API 구현 및 테스트 작성

* test: JwtTokenProviderTest 작성

- 로컬에서 Postman 테스트 시 이 테스트를 사용하면 쉽게 토큰 발급 후 활용 가능

* chore: 로컬 환경용 더미데이터 sql 작성

* chore: 로컬 환경 data.sql을 위한 서브모듈 변경

* docs: 기능 명세서 및 테스트 코드 용어 정리 (유저, 멤버 -> 회원)

* chore: 로그 환경설정 파일 디렉터리 분리

* feat: 닉네임 중복 검증 구현

* refactor: 회원의 이메일 Unique 제약조건 삭제

- 닉네임, OauthId로 회원을 식별할 수 있다.
- 같은 이메일로 네이버, 카카오에 가입한 사람이 소셜 로그인으로 두 계정을 만들 경우, 동일한 이메일이 저장될 수도 있다.

* refactor: 모호한 메서드명 수정

* refactor: Email이 Unique하지 않음에 따라 테스트에서 사용하는 조회 쿼리 변경

- findByEmail 대신 findById
- 기본키가 아닌 유일키로 조회하는 건 테이블 구조 변경 여지가 있으므로 findById 사용

* refactor: 내 정보 수정 API URI 변경

* fix: 디렉터리 분리에 따른 로그 설정 파일 appender 경로 수정

* [BE] Refactor/#406 토픽 권한을 가진 회원 목록 조회 시 공개 여부를 함께 반환하도록 변경  (#412)

* refactor: 사용하지 않는 MemberRepository 메서드 삭제

* refactor: 회원 업데이트 부분 변경으로 시그니처 변경

- 현재 회원 update에서 변경되는 부분만 인자로 남겨둠
- update 시, Member 에서 MemberInfo.getXX을 하는 대신 MemberInfo에서 부분 변경된 객체를 새로 반환하도록 수정

* feat: 회원 정보 수정 API 구현 및 테스트 작성

* test: JwtTokenProviderTest 작성

- 로컬에서 Postman 테스트 시 이 테스트를 사용하면 쉽게 토큰 발급 후 활용 가능

* chore: 로컬 환경용 더미데이터 sql 작성

* chore: 로컬 환경 data.sql을 위한 서브모듈 변경

* docs: 기능 명세서 및 테스트 코드 용어 정리 (유저, 멤버 -> 회원)

* chore: 로그 환경설정 파일 디렉터리 분리

* feat: 닉네임 중복 검증 구현

* refactor: 회원의 이메일 Unique 제약조건 삭제

- 닉네임, OauthId로 회원을 식별할 수 있다.
- 같은 이메일로 네이버, 카카오에 가입한 사람이 소셜 로그인으로 두 계정을 만들 경우, 동일한 이메일이 저장될 수도 있다.

* refactor: 모호한 메서드명 수정

* refactor: Email이 Unique하지 않음에 따라 테스트에서 사용하는 조회 쿼리 변경

- findByEmail 대신 findById
- 기본키가 아닌 유일키로 조회하는 건 테이블 구조 변경 여지가 있으므로 findById 사용

* refactor: 내 정보 수정 API URI 변경

* refactor: 토픽 권한 회원 목록 조회 API를 접근 정보(권한 회원 목록 및 공개 여부) 조회로 명세 변경

- 관련 검토가 필요한 API 설계 및 구현 내용에 대한 TODO 주석 작성

* fix: 디렉터리 분리에 따른 로그 설정 파일 appender 경로 수정

* fix: 디렉터리 분리에 따른 로그 설정 파일 appender 경로 수정

* refactor: 실수로 바꾼 기존 메서드명 원복

* refactor: 불필요한 import문 제거

* refactor: 불필요한 접근제어자, 중복 코드 제거

* docs: Restdocs API 네이밍 반영

* fix: 내 정보 수정 RestDocs 스니펫 누락 추가

* [BE] Feature/#388 refresh token 및 로그아웃 기능 구현 (#411)

* chore: redis 의존성 추가

* refactor: OauthService 필드에 final 추가

* feat: refreshToken 엔티티 및 레포지토리 구현

* feat: JwtTokenProvider RefreshToken 발급 구현

* feat: 로그인 시 RefreshToken 발급 기능 구현

* feat: Auth 패키지 커스텀 예외 추가

* refactor: validate 메서드 리팩터링

* chore: refreshToken 만료 시간 추가

* test: Test를 위한 설정 변경

* feat: 액세스 토큰 재발급 및 로그아웃 기능 구현

* chore: Redis 의존성 제거

* test: TestTokenProvider 객체 구현

* refactor: /logout HttpMethod 변경, cookie 관련 cors설정 및 maxAge 설정,

* test: DisplayName 추가

* feat: RTR 적용 및 OauthConntroller 제거, OauthService 및 TokenService 역할과 책임 재분배

* refactor : 피드백 반영

* refactor : 매직넘버 상수화

* refactor : 네이밍 수정

* feat: 쿠키 설정 추가

* [BE] Fix/#424 refresh token duplicated (#425)

* fix: RefreshToken Payload 추가 및 CORS 완화

* fix: Refresh Token Header 허용

* [BE] Fix/#426 Token CORS 재설정 (#427)

* fix: RefreshToken Payload 추가 및 CORS 완화

* fix: Refresh Token Header 허용

* fix: CORS 재설정 및 sameSite None

* [BE] HotFix/#426 Refresh Token 중복 저장 방지 로직 수정 (#431)

* fix: RefreshToken Payload 추가 및 CORS 완화

* fix: Refresh Token Header 허용

* fix: CORS 재설정 및 sameSite None

* fix: refreshToken 존재 시 삭제 로직 변경

* [BE] HotFix/#426 delete 메서드에 clearAutomatically 속성 적용 (#432)

* fix: RefreshToken Payload 추가 및 CORS 완화

* fix: Refresh Token Header 허용

* fix: CORS 재설정 및 sameSite None

* fix: refreshToken 존재 시 삭제 로직 변경

* fix: delete 메서드에 clearAutomatically 속성 적용

* [BE] HotFix/#426 tokenService flush 추가 (#433)

* fix: RefreshToken Payload 추가 및 CORS 완화

* fix: Refresh Token Header 허용

* fix: CORS 재설정 및 sameSite None

* fix: refreshToken 존재 시 삭제 로직 변경

* fix: delete 메서드에 clearAutomatically 속성 적용

* fix: delete 메서드에 clearAutomatically 속성 제거 및 flush 추가

* [BE] Refactor/#400 토픽 조회 시 업데이트 일시를 최근에 핀이 추가/변경된 일시로 변경 (#429)

* refactor: BaseEntity의 createdAt update 방지

* feat: Topic에 lastPinUpdatedAt 컬럼 추가, EntityListner 적용

- 기존 BaseEntity의 값들은 객체가 영속화될 때 저장된다.
- 이에 대해 일관성을 유지해야 한다. (핀 생성 일시, 핀 변경 일시 = 토픽의 최근 핀 변경 일시가 서로 같아야 하므로)
- 따라서 lastPinUpdatedAt 컬럼의 업데이트 또한 EntityListener 로 적용한다.

* feat: 토픽 조회 DTO의 updatedAt 값 lastPinUpdatedAt 으로 변경

* feat: 토픽 최신순 조회 로직 수정

- Topic에 lastPinUpdatedAt 추가로 인해 로직 수정 가능

* test: 토픽 조회 시 updatedAt 검증 테스트 추가

* chore: 로컬 테스트용 SQL에 테이블 컬럼 추가 변경 반영

* refactor: 토픽 Response Dto에 lastPinUpdatedAt 반영

* fix : 토큰 만료시간 및 redirect uri 수정

---------

Co-authored-by: jaeyeon kim <[email protected]>

* [BE] Feature/#422 성능 측정을 위한 로깅 구현 (#434)

* feat: QueryCounter 객체 구현

* feat: QueryInspector 객체 구현

* feat: LatencyRecorder 객체 구현

* feat: LatencyLoggingFilter 객체 구현

* feat: LatencyRecorder Thread-safe 테스트 구현

* feat: HibernateConfig 구현

* test: 테스트 수정

* style: 개행 추가

* refactor: 수식 표현 방식 수정

* [BE] HotFix/#424 refresh token duplicated (#441)

* fix: RefreshToken Payload 추가 및 CORS 완화

* fix: Refresh Token Header 허용

* fix: CORS 재설정 및 sameSite None

* fix: 디버깅을 위한 에러코드 추가

* [BE] HOTFix/#424 validateTokensForReissue 디버깅을 위한 에러코드 추가 (#443)

* fix: RefreshToken Payload 추가 및 CORS 완화

* fix: Refresh Token Header 허용

* fix: CORS 재설정 및 sameSite None

* fix: 디버깅을 위한 에러코드 추가

* fix: validateTokensForReissue 디버깅을 위한 에러코드 추가

* fix: isExpired 임시 log 처리 (#444)

* Revert "fix: isExpired 임시 log 처리 (#444)"

This reverts commit 445f0dd.

* fix: cors Credentials 추가 (#458)

* [BE] Hotfix/cors allowHeaders 와일드카드 적용 (#462)

* fix: cors Credentials 추가

* fix: allowedHeaders 와일드카드 적용

* [BE] 부하테스트를 위한 Tomcat Log 추가 (#464)

* chore: yml 변수 적용 확인을 위한 debug 로그 추가

* chore: 톰캣 설정 기본값 추가

* chore: 톰캣 설정 기본값 추가

---------

Co-authored-by: yoondgu <[email protected]>

* [BE] S3 를 통한 Image Upload 기능 구현 (#428)

* refactor : s3 패키지 추가로 인한 에러 Code 수정

* feat : s3 exception 추가

* refactor : image extension 추출 방식 수정

* refactor : S3Client 가 IOException 을 throw 할 수 있도록 작성

* style : 프린트, 주석 제거

* test : imageExtension Test 작성

* refactor : image 가 요청으로 들어오지 않는 경우를 고려해 로직 수정

* test : 이미지가 null 로 들어오는 경우 test 작성

* feat : 병합시에도 S3 Image Upload 가 가능하도록 구현

* refactor : 기본 이미지 URL 변경

* refactor : 기본 이미지의 처리를 TopicInfo -> Image 에서 할 수 있도록 수정

* refactor : 주석 앞에 TODO 추가

* refactor : fromImageFileName -> from 으로 메서드 명 변경

* refactor : getExtension -> findExtension 으로 변경

* refactor : S3 관련 Service 네이밍 수정

* [BE] Fix/#426 Token CORS 재설정 (#427)

* fix: RefreshToken Payload 추가 및 CORS 완화

* fix: Refresh Token Header 허용

* fix: CORS 재설정 및 sameSite None

* refactor : S3 관련 Service 네이밍 수정

* [BE] HotFix/#426 Refresh Token 중복 저장 방지 로직 수정 (#431)

* fix: RefreshToken Payload 추가 및 CORS 완화

* fix: Refresh Token Header 허용

* fix: CORS 재설정 및 sameSite None

* fix: refreshToken 존재 시 삭제 로직 변경

* [BE] HotFix/#426 delete 메서드에 clearAutomatically 속성 적용 (#432)

* fix: RefreshToken Payload 추가 및 CORS 완화

* fix: Refresh Token Header 허용

* fix: CORS 재설정 및 sameSite None

* fix: refreshToken 존재 시 삭제 로직 변경

* fix: delete 메서드에 clearAutomatically 속성 적용

* [BE] HotFix/#426 tokenService flush 추가 (#433)

* fix: RefreshToken Payload 추가 및 CORS 완화

* fix: Refresh Token Header 허용

* fix: CORS 재설정 및 sameSite None

* fix: refreshToken 존재 시 삭제 로직 변경

* fix: delete 메서드에 clearAutomatically 속성 적용

* fix: delete 메서드에 clearAutomatically 속성 제거 및 flush 추가

* [BE] Refactor/#400 토픽 조회 시 업데이트 일시를 최근에 핀이 추가/변경된 일시로 변경 (#429)

* refactor: BaseEntity의 createdAt update 방지

* feat: Topic에 lastPinUpdatedAt 컬럼 추가, EntityListner 적용

- 기존 BaseEntity의 값들은 객체가 영속화될 때 저장된다.
- 이에 대해 일관성을 유지해야 한다. (핀 생성 일시, 핀 변경 일시 = 토픽의 최근 핀 변경 일시가 서로 같아야 하므로)
- 따라서 lastPinUpdatedAt 컬럼의 업데이트 또한 EntityListener 로 적용한다.

* feat: 토픽 조회 DTO의 updatedAt 값 lastPinUpdatedAt 으로 변경

* feat: 토픽 최신순 조회 로직 수정

- Topic에 lastPinUpdatedAt 추가로 인해 로직 수정 가능

* test: 토픽 조회 시 updatedAt 검증 테스트 추가

* chore: 로컬 테스트용 SQL에 테이블 컬럼 추가 변경 반영

* refactor: 토픽 Response Dto에 lastPinUpdatedAt 반영

* fix : 토큰 만료시간 및 redirect uri 수정

---------

Co-authored-by: jaeyeon kim <[email protected]>

* [BE] Feature/#422 성능 측정을 위한 로깅 구현 (#434)

* feat: QueryCounter 객체 구현

* feat: QueryInspector 객체 구현

* feat: LatencyRecorder 객체 구현

* feat: LatencyLoggingFilter 객체 구현

* feat: LatencyRecorder Thread-safe 테스트 구현

* feat: HibernateConfig 구현

* test: 테스트 수정

* style: 개행 추가

* refactor: 수식 표현 방식 수정

* [BE] HotFix/#424 refresh token duplicated (#441)

* fix: RefreshToken Payload 추가 및 CORS 완화

* fix: Refresh Token Header 허용

* fix: CORS 재설정 및 sameSite None

* fix: 디버깅을 위한 에러코드 추가

* [BE] HOTFix/#424 validateTokensForReissue 디버깅을 위한 에러코드 추가 (#443)

* fix: RefreshToken Payload 추가 및 CORS 완화

* fix: Refresh Token Header 허용

* fix: CORS 재설정 및 sameSite None

* fix: 디버깅을 위한 에러코드 추가

* fix: validateTokensForReissue 디버깅을 위한 에러코드 추가

* fix: isExpired 임시 log 처리 (#444)

* Revert "fix: isExpired 임시 log 처리 (#444)"

This reverts commit 445f0dd.

* fix: cors Credentials 추가 (#458)

* [BE] Hotfix/cors allowHeaders 와일드카드 적용 (#462)

* fix: cors Credentials 추가

* fix: allowedHeaders 와일드카드 적용

* [BE] 부하테스트를 위한 Tomcat Log 추가 (#464)

* chore: yml 변수 적용 확인을 위한 debug 로그 추가

* chore: 톰캣 설정 기본값 추가

* chore: 톰캣 설정 기본값 추가

---------

Co-authored-by: yoondgu <[email protected]>

* refactor : s3 패키지 추가로 인한 에러 Code 수정

* feat : s3 exception 추가

* refactor : image extension 추출 방식 수정

* refactor : S3Client 가 IOException 을 throw 할 수 있도록 작성

* style : 프린트, 주석 제거

* test : imageExtension Test 작성

* refactor : image 가 요청으로 들어오지 않는 경우를 고려해 로직 수정

* test : 이미지가 null 로 들어오는 경우 test 작성

* feat : 병합시에도 S3 Image Upload 가 가능하도록 구현

* refactor : 기본 이미지 URL 변경

* refactor : 기본 이미지의 처리를 TopicInfo -> Image 에서 할 수 있도록 수정

* refactor : 주석 앞에 TODO 추가

* refactor : fromImageFileName -> from 으로 메서드 명 변경

* refactor : getExtension -> findExtension 으로 변경

* refactor : S3 관련 Service 네이밍 수정

* refactor : S3 관련 Service 네이밍 수정

* refactor : topic, image errorCode 수정

* refactor : Exception 부분 네이밍 S3 -> Image 로 변경

* refactor : findExtension -> extractExtensio 으로 메서드 네이밍 변경

* refactor : 부정 조건문 제거

* refactor : Illegal Image File Extension 에러 메세지 수정

* refactor : action method consume type 순서 조정

---------

Co-authored-by: 준팍(junpak) <[email protected]>
Co-authored-by: Doy <[email protected]>
Co-authored-by: zun <[email protected]>

---------

Co-authored-by: Doy <[email protected]>
Co-authored-by: 준팍(junpak) <[email protected]>
Co-authored-by: jaeyeon kim <[email protected]>
Co-authored-by: yoondgu <[email protected]>
Co-authored-by: kpeel5839 <[email protected]>
  • Loading branch information
6 people authored Sep 21, 2023
1 parent 388386c commit a6579de
Show file tree
Hide file tree
Showing 173 changed files with 4,415 additions and 965 deletions.
7 changes: 5 additions & 2 deletions .github/workflows/be-merge-dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
workflow_dispatch:

pull_request:
branches: [ develop ]
branches: [ develop-BE ]
types: [ closed ]
paths: backend/**

Expand All @@ -19,12 +19,15 @@ jobs:

steps:
- uses: actions/checkout@v3
with:
submodules: recursive
token: ${{ secrets.SUBMODULE_ACCESS_TOKEN }}
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'

- name: 테스트 환경변수 설정
run: |
echo "TEST_JWT_SECRET_KEY=${{ secrets.TEST_JWT_SECRET_KEY }}" >> $GITHUB_ENV
Expand Down
47 changes: 25 additions & 22 deletions .github/workflows/be-merge-prod.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,31 +18,34 @@ jobs:
runs-on: ubuntu-22.04

steps:
- uses: actions/checkout@v3
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'
- uses: actions/checkout@v3
with:
submodules: recursive
token: ${{ secrets.SUBMODULE_ACCESS_TOKEN }}
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'

- name: 테스트 환경변수 설정
run: |
echo "TEST_JWT_SECRET_KEY=${{ secrets.TEST_JWT_SECRET_KEY }}" >> $GITHUB_ENV
echo "TEST_JWT_EXPIRE_LENGTH=${{ secrets.TEST_JWT_EXPIRE_LENGTH }}" >> $GITHUB_ENV
- name: 테스트 환경변수 설정
run: |
echo "TEST_JWT_SECRET_KEY=${{ secrets.TEST_JWT_SECRET_KEY }}" >> $GITHUB_ENV
echo "TEST_JWT_EXPIRE_LENGTH=${{ secrets.TEST_JWT_EXPIRE_LENGTH }}" >> $GITHUB_ENV
- name: gradlew 실행 권한 부여
run: chmod +x gradlew
working-directory: backend

- name: gradlew 실행 권한 부여
run: chmod +x gradlew
working-directory: backend
- name: Gradle build 시작
run: ./gradlew clean build
working-directory: backend

- name: Gradle build 시작
run: ./gradlew clean build
working-directory: backend

- name: jar 파일 artifact에 업로드
uses: actions/upload-artifact@v3
with:
name: BackendApplication
path: backend/build/libs/mapbefine.jar
- name: jar 파일 artifact에 업로드
uses: actions/upload-artifact@v3
with:
name: BackendApplication
path: backend/build/libs/mapbefine.jar

deploy:
runs-on: [ self-hosted, prod ]
Expand Down
69 changes: 36 additions & 33 deletions .github/workflows/be-pull-request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
workflow_dispatch:

pull_request:
branches: [ main, develop ]
branches: [ main, develop-BE ]
paths: backend/**

permissions:
Expand All @@ -18,35 +18,38 @@ jobs:
runs-on: ubuntu-22.04

steps:
- uses: actions/checkout@v3
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'

- name: 테스트 환경변수 설정
run: |
echo "TEST_JWT_SECRET_KEY=${{ secrets.TEST_JWT_SECRET_KEY }}" >> $GITHUB_ENV
echo "TEST_JWT_EXPIRE_LENGTH=${{ secrets.TEST_JWT_EXPIRE_LENGTH }}" >> $GITHUB_ENV
- name: gradlew 실행 권한 부여
run: chmod +x gradlew
working-directory: backend

- name: Gradle build 시작
run: ./gradlew clean build
working-directory: backend

- name: 테스트 결과를 PR에 코멘트로 등록합니다
uses: EnricoMi/publish-unit-test-result-action@v1
if: always()
with:
files: 'backend/build/test-results/test/TEST-*.xml'

- name: 테스트 실패 시, 실패한 코드 라인에 Check 코멘트를 등록합니다
uses: mikepenz/action-junit-report@v3
if: always()
with:
report_paths: '**/build/test-results/test/TEST-*.xml'
token: ${{ github.token }}
- uses: actions/checkout@v3
with:
submodules: recursive
token: ${{ secrets.SUBMODULE_ACCESS_TOKEN }}
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'

- name: 테스트 환경변수 설정
run: |
echo "TEST_JWT_SECRET_KEY=${{ secrets.TEST_JWT_SECRET_KEY }}" >> $GITHUB_ENV
echo "TEST_JWT_EXPIRE_LENGTH=${{ secrets.TEST_JWT_EXPIRE_LENGTH }}" >> $GITHUB_ENV
- name: gradlew 실행 권한 부여
run: chmod +x gradlew
working-directory: backend

- name: Gradle build 시작
run: ./gradlew clean build
working-directory: backend

- name: 테스트 결과를 PR에 코멘트로 등록합니다
uses: EnricoMi/publish-unit-test-result-action@v1
if: always()
with:
files: 'backend/build/test-results/test/TEST-*.xml'

- name: 테스트 실패 시, 실패한 코드 라인에 Check 코멘트를 등록합니다
uses: mikepenz/action-junit-report@v3
if: always()
with:
report_paths: '**/build/test-results/test/TEST-*.xml'
token: ${{ github.token }}
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "backend/src/main/resources/config"]
path = backend/src/main/resources/config
url = https://github.com/map-befine-official/map-befine-config.git
3 changes: 0 additions & 3 deletions backend/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,3 @@ out/

### VS Code ###
.vscode/

### Logging ###
.log
5 changes: 5 additions & 0 deletions backend/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'org.springframework.boot:spring-boot-starter-webflux'
implementation group: 'com.github.maricn', name: 'logback-slack-appender', version: '1.6.1'

implementation 'mysql:mysql-connector-java:8.0.32'

Expand All @@ -44,6 +45,10 @@ dependencies {
testImplementation 'io.rest-assured:spring-mock-mvc'
testImplementation 'org.assertj:assertj-core:3.19.0'

// S3
implementation platform('com.amazonaws:aws-java-sdk-bom:1.11.1000')
implementation 'com.amazonaws:aws-java-sdk-s3'

compileOnly 'org.projectlombok:lombok'
runtimeOnly 'com.h2database:h2'

Expand Down
10 changes: 5 additions & 5 deletions backend/docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,19 +39,19 @@

- 핀 상세 조회

#### 유저
#### 회원

- 유저 핀 생성
- 회원 핀 생성

- 유저 핀 정보 수정
- 회원 핀 정보 수정
- name, description 만 수정 가능하다.
- description 은 1000자 까지만 가능하다.

- 유저 핀 삭제
- 회원 핀 삭제
- Delete 는 Soft Delete

---

- 유저 핀 목록 조회
- 회원 핀 목록 조회
- 페이지 네이션 (무한 스크롤, 일단 15개)

29 changes: 29 additions & 0 deletions backend/src/docs/asciidoc/admin.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
== 관리자 기능

=== 전체 회원 조회

operation::admin-controller-test/find-all-member-details[snippets='http-request,http-response']

=== 회원 상세 조회

operation::admin-controller-test/find-member[snippets='http-request,http-response']

=== 회원 차단(삭제)

operation::admin-controller-test/delete-member[snippets='http-request,http-response']

=== 토픽 삭제

operation::admin-controller-test/delete-topic[snippets='http-request,http-response']

=== 토픽 이미지 삭제

operation::admin-controller-test/delete-topic-image[snippets='http-request,http-response']

=== 핀 삭제

operation::admin-controller-test/delete-pin[snippets='http-request,http-response']

=== 핀 이미지 삭제

operation::admin-controller-test/delete-pin-image[snippets='http-request,http-response']
13 changes: 13 additions & 0 deletions backend/src/docs/asciidoc/auth.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
== 소셜 로그인

=== KAKAO 로그인 URL 반환

operation::login-controller-test/redirection[snippets='http-request,http-response']

=== KAKAO 로그인

operation::login-controller-test/login[snippets='http-request,http-response']

=== 로그아웃

operation::login-controller-test/logout[snippets='http-request,http-response']
4 changes: 2 additions & 2 deletions backend/src/docs/asciidoc/bookmark.adoc
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
== 즐겨찾기

=== 토픽을 유저의 즐겨찾기에 추가
=== 토픽을 회원의 즐겨찾기에 추가

operation::bookmark-controller-test/add-topic-in-bookmark[snippets='http-request,http-response']


=== 유저의 토픽 즐겨찾기 삭제
=== 회원의 토픽 즐겨찾기 삭제

operation::bookmark-controller-test/delete-topic-in-bookmark[snippets='http-request,http-response']
3 changes: 2 additions & 1 deletion backend/src/docs/asciidoc/index.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,6 @@ include::pin.adoc[]
include::atlas.adoc[]
include::member.adoc[]
include::permission.adoc[]
include::oauth.adoc[]
include::auth.adoc[]
include::bookmark.adoc[]
include::admin.adoc[]
18 changes: 11 additions & 7 deletions backend/src/docs/asciidoc/member.adoc
Original file line number Diff line number Diff line change
@@ -1,25 +1,29 @@
== 유저
== 회원

=== 유저 목록 조회
=== 회원 목록 조회

operation::member-controller-test/find-all-member[snippets='http-request,http-response']

=== 유저 단일 조회
=== 회원 단일 조회

operation::member-controller-test/find-member-by-id[snippets='http-request,http-response']

=== 유저의 나의 지도 목록 조회
=== 회원의 나의 지도 목록 조회

operation::member-controller-test/find-my-all-topics[snippets='http-request,http-response']

=== 유저의 나의 핀 목록 조회
=== 회원의 나의 핀 목록 조회

operation::member-controller-test/find-my-all-pins[snippets='http-request,http-response']

=== 유저의 모아보기 조회
=== 회원의 모아보기 조회

operation::member-controller-test/find-all-topics-in-atlas[snippets='http-request,http-response']

=== 유저의 즐겨찾기 조회
=== 회원의 즐겨찾기 조회

operation::member-controller-test/find-all-topics-in-bookmark[snippets='http-request,http-response']

=== 회원의 내 정보 수정

operation::member-controller-test/update-my-info[snippets='http-request,http-response']
9 changes: 0 additions & 9 deletions backend/src/docs/asciidoc/oauth.adoc

This file was deleted.

6 changes: 3 additions & 3 deletions backend/src/docs/asciidoc/permission.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@ operation::permission-controller-test/add-permission[snippets='http-request,http

operation::permission-controller-test/delete-permission[snippets='http-request,http-response']

=== 토픽에 권한을 가진 유저 목록 조회
=== 토픽 접근 정보(권한 회원 목록 및 공개 여부) 조회

operation::permission-controller-test/find-all-topic-permissions[snippets='http-request,http-response']
operation::permission-controller-test/find-topic-access-detail-by-topic-id[snippets='http-request,http-response']

=== 토픽에 권한을 가진 유저 단일 조회
=== 토픽에 권한을 가진 회원 단일 조회

operation::permission-controller-test/find-permission-by-id[snippets='http-request,http-response']
2 changes: 1 addition & 1 deletion backend/src/docs/asciidoc/pin.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ operation::pin-controller-test/find-all[snippets='http-request,http-response']

operation::pin-controller-test/find-by-id[snippets='http-request,http-response']

=== 멤버별 핀 목록 조회
=== 회원별 핀 목록 조회

operation::pin-controller-test/find-all-pins-by-member-id[snippets='http-request,http-response']

Expand Down
Loading

0 comments on commit a6579de

Please sign in to comment.