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

CICD 구현 #34

Merged
merged 15 commits into from
Nov 4, 2023
Merged

CICD 구현 #34

merged 15 commits into from
Nov 4, 2023

Conversation

Junho-06
Copy link
Collaborator

개요

CICD를 구현하였습니다.

본문

github action과 codedeploy에 필요한 파일을 추가하여 CICD 를 구현하였습니다.

CI 파일 추가
CD 파일 추가
appspec.yml 파일 추가
appspec.yml 경로 수정
deploy.sh 파일 추가
.github/workflows/GSM-Networking-CD.yml Outdated Show resolved Hide resolved
.github/workflows/GSM-Networking-CD.yml Outdated Show resolved Hide resolved
CD 파일 오타 수정
CD 파일 이름오타 수정
CD yml 파일 만드는 작업 이름 대문자 수정
@YangSiJun528
Copy link
Collaborator

YangSiJun528 commented Oct 31, 2023

실제로 동작하는지 테스트 해보셨나요?
안했다면 CI/CD 동작하는 조건 브랜치를 해당 브랜치까지 포함시켜서 테스트 진행해주세요.

Hello,GSM 때는 문제 있을 때마다 develop 브랜치에 merge 해가면서 테스트 한 걸로 기억하는데,
develop 브랜치 커밋 내역에 "~ 경로 변경", "~ 명령어 수정" 같이 크게 중요하지 않은 게 많아서 좀 신경쓰였습니다.

물론 해당 브랜치에서 실행하는게 실제 develop 브랜치에서 배포하는 거랑 똑같은 수는 없지만,
CD 경로나 명령어가 잘못된 정도는 테스트 진행하면서 확인 가능하다고 생각합니다.

CD 트리거 branch 추가
@Junho-06
Copy link
Collaborator Author

실제로 동작하는지 테스트 해보셨나요? 안했다면 CI/CD 동작하는 조건 브랜치를 해당 브랜치까지 포함시켜서 테스트 진행해주세요.

Hello,GSM 때는 문제 있을 때마다 develop 브랜치에 merge 해가면서 테스트 한 걸로 기억하는데, develop 브랜치 커밋 내역에 "~ 경로 변경", "~ 명령어 수정" 같이 크게 중요하지 않은 게 많아서 좀 신경쓰였습니다.

물론 해당 브랜치에서 실행하는게 실제 develop 브랜치에서 배포하는 거랑 똑같은 수는 없지만, CD 경로나 명령어가 잘못된 정도는 테스트 진행하면서 확인 가능하다고 생각합니다.

b83a49e
아직 테스트 진행하지 않아서 추가하였습니다.

CD echo문 따옴표 추가
CD 트리거 Develop에 머지된 코드 CI완료될 경우 실행되도록 수정
CD 트리거 주석 수정
application 실행 명령어 변경
application nohup.out 파일 경로 수정
@Junho-06 Junho-06 merged commit 5ee7d07 into develop Nov 4, 2023
2 checks passed
hajeu added a commit that referenced this pull request Nov 6, 2023
This reverts commit 5ee7d07.
hajeu added a commit that referenced this pull request Nov 6, 2023
* Revert "모든 멘토 리스트에 필터링 기능을 추가 (#43)"

This reverts commit 6dfffec.

* Revert "prod yml에 actuator설정 안된 부분 수정 (#44)"

This reverts commit 1416f35.

* Revert "CompanyUrl 컬럼 nullable 로 수정 (#42)"

This reverts commit 0ded054.

* Revert "TempMentor 삭제하는 기능 구현 (#40)"

This reverts commit 45e70b7.

* Revert "CICD 구현 (#34)"

This reverts commit 5ee7d07.

* Revert "spring actuator 추가 (#38)"

This reverts commit c7d1e68.
Junho-06 added a commit that referenced this pull request Nov 6, 2023
* 👷 CI 파일 추가

CI 파일 추가

* 👷 CD 파일 추가

CD 파일 추가

* 👷 appspec.yml 파일 추가

appspec.yml 파일 추가

* 👷 appspec.yml 경로 수정

appspec.yml 경로 수정

* 👷 deploy.sh 파일 추가

deploy.sh 파일 추가

* 👷 CD 파일 오타 수정

CD 파일 오타 수정

* 👷 CD 파일 이름 오타 수정

CD 파일 이름오타 수정

* 👷 CD yml 파일 만드는 작업 이름 대문자 수정

CD yml 파일 만드는 작업 이름 대문자 수정

* 👷 CD 트리거 branch 추가

CD 트리거 branch 추가

* 👷 CD echo문 따옴표 추가

CD echo문 따옴표 추가

* 👷 CD 트리거 Develop에 머지된 코드 CI완료될 경우 실행되도록 수정

CD 트리거 Develop에 머지된 코드 CI완료될 경우 실행되도록 수정

* 👷 CD 트리거 주석 수정

CD 트리거 주석 수정

* 👷 application 실행 명령어 변경

application 실행 명령어 변경

* 👷 CD script 실행문 수정

CD script 변경

* 👷 application nohup.out 파일 경로 수정

application nohup.out 파일 경로 수정
@Junho-06 Junho-06 deleted the feature/CI-CD branch November 14, 2023 01:19
hajeu added a commit that referenced this pull request Dec 4, 2023
* Auth, User 서비스 모놀리식으로 통합 (#1)

* Auth 서비스 모놀리식으로 전환

* User 서비스 모놀리식으로 전환

* 의존성 통합

* User, Auth 서비스 통합

* 도메인에서 사용하는 exception 클래스들 common 패키지로 이전

* id 타입 수정 및 findByProviderId 삭제

* 역할을 나타내는 ROLE_ prefix 삭제

* email -> authenticationId로 인공적인 식별자로 수정

* 이미지 업로드 기능 추가 (#2)

* Auth 서비스 모놀리식으로 전환

* User 서비스 모놀리식으로 전환

* 의존성 통합

* User, Auth 서비스 통합

* 도메인에서 사용하는 exception 클래스들 common 패키지로 이전

* 이미지 업로드 구현

* 컨플릭 해결하면서 지워진 Id 어노테이션 복구

* WebSocket & STOMP 환경설정 및 Socket Exception Handling 기능 추가 (#3)

* spring-boot-starter-websocket 의존성 추가

* StompMessage 구현

* StompErrorResponse 구현

* StompException 구현

* StompSender 구현

* StompWebSocketConfig 구현

* StompErrorProcessor 구현

* CustomStompSubProtocolErrorHandler 구현

* GlobalSocketExceptionHandler 구현

* 이름 변경 `StompSender#sendError` -> `StompSender#sendErrorMessage`

* 이름 변경 `StompErrorProcessor#sendError` -> `StompErrorProcessor#sendErrors`

* application-prod에 빠진 환경변수 추가 (#5)

* prod 환경에 빠진 환경변수들 추가

* prod 환경에 빠진 환경변수들 추가

* 8080 포트 지정

* 권한에 따라 redirect 구분

* 멘티, 멘토 권한 수정 기능 추가 (#4)

* 중복되면 안되는 컬럼에 unique 옵션 추가

* saveMentorInfo -> mentorRegistration 메서드 명 변경

* authenticationId 필드 추가

* authenticationId 추가 및 권한 수정 로직 추가

* 임시 유저로 권한 수정

* 멘티 수정 컨트롤러 추가

* authentication name 가져오는 로직 추가 및 권한 수정 로직 추가

* 중복된 이메일인지 검증하는 메서드 추가

* 권한 수정 후 메세지 던지도록 구현

* 메세지 없애고 status만 반환하도록 수정

* Void -> Unit 객체를 사용하도록 변경

* Exception Handling 추가 및 토큰 필터 기능 추가 (#6)

* prod 환경에 빠진 환경변수들 추가

* token 검증 후 securityContext에 authentication 객체 넣도록 구현

* access token 파싱, UsernamePasswordAuthenticationToken 객체 생성 메서드 구현

* 권한 검증 및 exception 핸들링 추가

* 회원가입, 기본 리다이렉트 url로 수정

* Authorization 헤더 상수 추가

* 패키지 이동 및 jwt exception 핸들링 추가

* findByEmail 매개변수 값 providerId -> email로 해결

* 디폴트 리다이렉트 url로 이동

* 권한별 리다이렉트 추가

* AccessDeniedHandler 구현체 추가

* AccessDeniedHandler 구현

* role 추가

* userDetails 구현체 추가

* jwt에 식별자만 저장하고 DB에서 정보 가져오도록 구현

* 쿼리 안날리고 authentication 객체 사용하도록 리펙토링

* scope 함수 풀어쓰도록 수정, 메서드 명 orNull 반환 타입 지정

* 사용하지 않는 AUTHORITY 상수 삭제

* oauth success url 지정

* 쿠키로 토큰을 반환하는 기능 추가 (#7)

* prod 환경에 빠진 환경변수들 추가

* token 검증 후 securityContext에 authentication 객체 넣도록 구현

* access token 파싱, UsernamePasswordAuthenticationToken 객체 생성 메서드 구현

* 권한 검증 및 exception 핸들링 추가

* 회원가입, 기본 리다이렉트 url로 수정

* Authorization 헤더 상수 추가

* 패키지 이동 및 jwt exception 핸들링 추가

* findByEmail 매개변수 값 providerId -> email로 해결

* 디폴트 리다이렉트 url로 이동

* 권한별 리다이렉트 추가

* AccessDeniedHandler 구현체 추가

* AccessDeniedHandler 구현

* role 추가

* userDetails 구현체 추가

* jwt에 식별자만 저장하고 DB에서 정보 가져오도록 구현

* 쿼리 안날리고 authentication 객체 사용하도록 리펙토링

* scope 함수 풀어쓰도록 수정, 메서드 명 orNull 반환 타입 지정

* 사용하지 않는 AUTHORITY 상수 삭제

* oauth success url 지정

* 불필요한 스코프 함수 사용안하도록 수정

* response status 200 -> 205 로 수정

* 로그아웃 전 커스텀 토큰 필터 등록

* FE와 키 값 통일하게 변경

* kdoc 추가

* domain 추가

* prod와 비교하여 없는 환경변수 추가

* accessToken 파싱 메서드 삭제

* token response dto 삭제

* 로그아웃시 쿠키 삭제하도록 구현

* token dto 클래스 추가

* json 바디 -> 쿠키로 반환하도록 수정

* 쿠키 유틸리티 구현

* 쿠키로 값 가져오도록 구현

* 헤더 -> 쿠키를 요청 받도록 수정

* kdoc 추가

* cookie 설정 추가

* kdoc 수정

* return에 대한 kdoc 추가

* domain 환경변수 삭제

* 컨플릭 해결하다 실수로 잘못 덮어쓴 파일 수정

* 커스텀한 cookie 환경변수 사용하도록 수정

* 멘토 리스트 가져오는 기능 추가 (#8)

* queryDsl 의존성 추가

* 멘토 전체 쿼리 추가

* 멘토 정보 dto 추가

* 멘토 전체 리스트 반환 구현

* queryDsl config 추가

* join 안되는 이슈 해결

* profileUrl 추가

* 기존 json 필드 사용하도록 jsonProperty 추가

* mentorCustomRepository 인터페이스를 만들어 상속받도록 구현 (#9)

* MongoDB 의존성 추가 & Chat,Room 도메인 구현 (#10)

* mongodb 의존성 추가

* local, prod 프로필 mongodb 관련 환경변수 추가

* BaseChat 구현

* SystemChat 구현

* UserChat 구현

* ChatUserInfo 구현

* ChatRoom 구현

* UserChat, SystemChat 구현이 서로 바뀐 문제 수정

* ChatType 추가 및 Chat 도메인 객체에 적용

* ChatType 별 지원 클래스 추가

* BaseChat 구현체 생성자 id 기본값 설정

* BaseContent/TextContent 구현 & 적용

* Chat prefix 제거 ChatRoom -> Room

* `:` 들어쓰기 오타 수정

* `:` 들어쓰기 오타 수정

* 파일 맨 끝 개행 및 세미콜론 컨벤션 통일 (#11)

* 상수 이름 대문자로 변경

* 사용하지 않는 상수 제거

* 파일 개행 및 도메인 변경

* :앞에 공백 넣도록 컨벤션 통일, 파일 끝 개행 추가

* #10 pr 반영하지 않도록 되돌리기 (#12)

* 현재 채팅 설계에 문제가 있다고 판단하여, 채팅 관련 작업을 전부 되돌리기로 하였습니다.

* Room & Chat 엔티티, 레포지토리 구현 (#13)

* `@EnableJpaAuditing` 추가

* BaseChat 구현

* SystemChat 구현

* UserChat 구현

* ChatType 구현

* ChatQueryRepository 구현

* ChatQueryRepositoryImpl 구현

* ChatRepository 구현

* Room 구현

* RoomUser 구현

* RoomQueryRepository 구현

* RoomQueryRepositoryImpl 구현

* RoomRepository 구현

* ConnectedRoomUser 구현

* ConnectedRoomUserRepository 구현

* 오타 수정 `connectedUserId` -> `connectedUserIds`

* connectedUserIds 필드에 `@Indexed` 제거

* 사용하지 않을 것 같아 삭제

* RoomUserRepository 구현

* named argument 적용

* 불필요한 설명 주석 제거

* @EnableJpaAuditing 설정을 `EnableJpaAuditingConfig` 로 분리

* 사용하지 않는 import 문 제거

* roomName 필드 unique 속성 제거

* `ConnectedRoomUser` data class로 변경하기

* KDoc 추가

* KDoc 오타 수정

* TempMentor 구현 (#16)

* TempMentor 구현

* 이름변경 id -> firebaseId &  unique 설정 추가

* 이름변경 realId -> id

* Chat/Room 도메인 엔티티 수정 및 Repository 메서드 구현  (#17)

* Table, Entity 관련 설정 보완

* ChatQueryRepository 메서드 구현 및 구현에 필요한 DTO,Enum 등 객체 정의

* RoomQueryRepository 메서드 구현 및 구현에 필요한 DTO,Enum 등 객체 정의

* 필요없는 주석 제거

* `@Id` 다른 패키지 어노테이션 import하고 있던 문제 수정

* room 과의 관계가 `@ManyToOne`가 아닌 `@OneToOne` 으로 잘못 설정 된 문제 해결

* java-uuid-generator 의존성 추가

* UUIDv7을 위한 의존성 추가

* BaseChat 재구성

* SystemChat, UserChat 재구성

* UUIDUtils 구현

* 주석 추가

* EnableJpaAuditingConfig 비활성화

* RecentChatQueryDto 제거

* 지금 불필요한 init 문 주석처리

* RoomUserDto 재구성

* RoomUser 재구성

* BaseChatDto 재구성

* ChatQueryRepository 및 구현체 재구성

* RoomQueryRepository 및 구현체 재구성

* 주석 추가

* 주석 추가 및 구조 변경

* 주석 설명 보완

* 주석 오타 수정 시잔 -> 시간

* findCountUserRooms `fetchOne()` 사용하도록 변경

* RedisConfig 비밀번호 설정 추가 (#19)

* cookie에서 npe가 발생하던 부분을 해결하였습니다. (#20)

* cookie에서 npe가 발생하던 부분을 수정하였습니다.

* 불필요한 dump.rdb파일을 ignore처리

* 유효하지 않은 accessToken 예외처리 추가 (#21)

* TempMentor의 전체 리스트를 반환하는 로직 구현 (#18)

* firebase dependency 추가

* .gitignore 파일 추가

* FirebaseConfig 추가

* MentorController에 queryExistingMentorList 메서드 추가

* ExistingMentor에 대한 Dto 추가

* QueryExistingMentorListService 구현

* 클래스와 메서드 이름 수정

* dto SNS필드명 수정

* application-prod.yml 되돌리기

* 클래스 공통화 및 Dto 필드 순서 수정

* firestore에 대한 중간 매개체로 수정

* @repository 어노테이션 추가

* firebase key 파일 이름을 환경변수로 관리

* firebase key 파일 이름을 환경변수로 관리

* documnet.toObject를 사용하도록 로직 변경

* MutableList에서 List로 변경

* 리소스로부터 파일을 읽어오도록 수정

* ExistingMentorDto 필드 순서 변경

* FirebaseManager로 클래스 이름 변경

* mentorData를 반환하도록 수정

* 코드 간략화

* TempMentorController 생성 후 코드 이동

* 불필요한 파일 삭제

* TempMentor 전체 리스트를 반환하는 로직 구현

* FirebaseConfig 제거

* QueryTempMentorListService 자바독 작성

* 컨트롤러 메서드 명 수정

* firebase관련 yml 설정 삭제

* 파일 끝 개행

* gitignore에서 firebase key 이름 제거

* firebase의존성 제거

* 리뷰해주신 부분들 수정

* 사용하지 않는 import 제거

* 콜론 뒤에 한칸 띄어쓰기

* stomp 인증 구현 및 StompException 수정 (#23)

* ConnectedRoomUser 및 Repository 삭제

* ConnectInfo 및 Repository 구현

* ErrorCode 종류 추가

* StompAuthenticatationException 구현

* StompException path 필드 추가

* StompSender#sendErrorMessage StompException path 받아서 해당 주소로 응답하도록 구현

* StompErrorHandler 구현

* 기존의 CustomStompSubProtocolErrorHandler를 대체합니다.

* StompPathUtil 구현

* StompInterceptor 구현

* interceptor 등록 및 destinationPrefix 변경

* domain값이 공백이여서 생긴 쿠키 문제 해결 (#24)

* domain값이 가져와지지 않고 공백인 버그 수정

* KDoc 수정 및 추가 후 클래스 명 변 & 필요없는 import 제거

* 멘티 권한 전환 api에 대한 접근 권한 수정 (#25)

* 멘토 api에 대한 접근 권한 수정 (#27)

* 멘토 api에 대한 접근 권한 수정

* 리펙토링

* corsConfigurationSource 메소드를 추가하였습니다. (#26)

* allowdOrigins -> allowedOriginPatterns로 수정 (#28)

* STOMP 채팅 전송 기능 구현 및 관련 기능 수정 (#29)

* CustomStompSubProtocolErrorHandler 구현 삭제

* 주석 변경 및 StompSender#sendMessageToUser 메서드 추가

* path 형식에 관한 주석 추가

* StompMessage 에 MessageType 추가

* UserChatServiceRs 구현 추가

* ChatResponse 구현

* RoomUser#refresh 구현

* ChatStompSender 구현

* StompErrorProcessor init 문 제거

* UserChatRequest 구현

* RoomUserResponse 구현

* ChatStompException 구현

* RoomMapper 구현

* ChatMapper 구현

* ConnectedInfoRepository#findByUserId 반환타입 list로 변경

* ReceiveService 및 구현체 구현

* ChatMessageController 구현

* Request, Response 로깅 작업 추가 (#22)

* request, response 로깅 작업 추가

* suser-agent 추가

* FilterConfig 생성자에 loggingFilter추가 (#31)

* nullalbe field request.cookies가 non-nullable로 설정되어 있는 문제 수정 (#33)

* 이름을 받아서 TempMentor리스트를 반환하는 로직 구현 (#30)

* 이름을 받아서 TempMentor리스트를 반환하는 로직 구현

* 리뷰해주신 부분 리펙터링

* stomp 채팅 목록 가져오는 api 추가 (#32)

* sendMessageToSession 메서드 추가 구현

* chat 목록을 가져오는 서비스 객체 추가 및 관련 DTO 객체 구현

* `queryRecentChat`, `queryChat` 기능 구현 & api 엔드포인트 매핑

* - `queryRecentChat` : 특정 방의 최근 채팅 가져오기
   - `queryChat`: 특정 방의 채팅 특정 조건으로 가져오기

* STOMP 통신 SockJS 호환 설정 적용 (#35)

* STOMP 방 목록 API 구현 (#36)

* `RoomUserDto` -> `RoomUserResponse` 기능 구현

* createAt 필드 추가

* `QueryRoomService` 및 구현체 구현

* `RoomMessageController` 구현 및 Request Dto 구현

* `~Chat~` -> `~Room~` 으로 알맞게 수정

* 기존의 멘토 리스트 반환 로직에서 임시멘토 리스트와 같이 반환되도록 구현하였습니다. (#37)

* 기존의 멘토리스트 반환 로직에서 임시멘토와 같이 반환되도록 구현

* List타입을 Any에서 MentorInfoDto로 수정

* 짧고 간결하게 리펙터링

* spring actuator 추가 (#38)

* actuator 의존성 추가 및 yml 구성

* spring actuator 포트 설정

* 파일 끝 부분 개행

* actuator 인프라 구성 health check 추가

* redis health check 추가

* CICD 구현 (#34)

* CI 파일 추가

* CI 파일 추가

* CD 파일 추가

* CD 파일 추가

* appspec.yml 파일 추가

* appspec.yml 파일 추가

* appspec.yml 경로 수정

* appspec.yml 경로 수정

* deploy.sh 파일 추가

* deploy.sh 파일 추가

* CD 파일 오타 수정

* CD 파일 오타 수정

* CD 파일 이름 오타 수정

* CD 파일 이름오타 수정

* CD yml 파일 만드는 작업 이름 대문자 수정

* CD yml 파일 만드는 작업 이름 대문자 수정

* CD 트리거 branch 추가

* CD 트리거 branch 추가

* CD echo문 따옴표 추가

* CD echo문 따옴표 추가

* CD 트리거 Develop에 머지된 코드 CI완료될 경우 실행되도록 수정

* CD 트리거 Develop에 머지된 코드 CI완료될 경우 실행되도록 수정

* CD 트리거 주석 수정

* CD 트리거 주석 수정

* application 실행 명령어 변경

* application 실행 명령어 변경

* CD script 실행문 수정

* CD script 변경

* application nohup.out 파일 경로 수정

* application nohup.out 파일 경로 수정

* TempMentor 삭제하는 기능 구현 (#40)

* TempMentor를 SOFT DELETE하는 기능을 구현

* @SQLDelete 대신 비즈니스단에서 처리

* securityConfig api 접근 권한 수정

* 잘못된 firebaseId값에 대한 예외처리

* securityConfig 접근 권한 설정

* 예외처리 HttpStatus 수정 및 메세지에 firebaseId반환

* 메세지 수정

* CompanyUrl 컬럼 nullable 로 수정 (#42)

* prod yml에 actuator설정 안된 부분 수정 (#44)

* 모든 멘토 리스트에 필터링 기능을 추가 (#43)

* 같은 기수, 같은 이름인 요소를 제거하는 기능을 추가

* 리스트 요소 제거할 때 to -> Pair

* id 값 1씩증가할때 ++ -> .inc()

* 문제 파악을 위해 롤백 (#45)

* Revert "모든 멘토 리스트에 필터링 기능을 추가 (#43)"

This reverts commit 6dfffec.

* Revert "prod yml에 actuator설정 안된 부분 수정 (#44)"

This reverts commit 1416f35.

* Revert "CompanyUrl 컬럼 nullable 로 수정 (#42)"

This reverts commit 0ded054.

* Revert "TempMentor 삭제하는 기능 구현 (#40)"

This reverts commit 45e70b7.

* Revert "CICD 구현 (#34)"

This reverts commit 5ee7d07.

* Revert "spring actuator 추가 (#38)"

This reverts commit c7d1e68.

* CICD 구현 (#46)

* CI 파일 추가

* CI 파일 추가

* CD 파일 추가

* CD 파일 추가

* appspec.yml 파일 추가

* appspec.yml 파일 추가

* appspec.yml 경로 수정

* appspec.yml 경로 수정

* deploy.sh 파일 추가

* deploy.sh 파일 추가

* CD 파일 오타 수정

* CD 파일 오타 수정

* CD 파일 이름 오타 수정

* CD 파일 이름오타 수정

* CD yml 파일 만드는 작업 이름 대문자 수정

* CD yml 파일 만드는 작업 이름 대문자 수정

* CD 트리거 branch 추가

* CD 트리거 branch 추가

* CD echo문 따옴표 추가

* CD echo문 따옴표 추가

* CD 트리거 Develop에 머지된 코드 CI완료될 경우 실행되도록 수정

* CD 트리거 Develop에 머지된 코드 CI완료될 경우 실행되도록 수정

* CD 트리거 주석 수정

* CD 트리거 주석 수정

* application 실행 명령어 변경

* application 실행 명령어 변경

* CD script 실행문 수정

* CD script 변경

* application nohup.out 파일 경로 수정

* application nohup.out 파일 경로 수정

* revert 한 코드를 다시 되돌림 (#47)

* Revert "CICD 구현 (#46)"

This reverts commit 8aecd84.

* Revert "문제 파악을 위해 롤백 (#45)"

This reverts commit 5c9f5d2.

* 자신의 멘토 정보를 삭제하는 기능을 구현 (#41)

* 자신의 멘토 정보를 삭제하는 기능을 구현

* 메서드와 클래스명 수정

* uri 변경

* 멘토 삭제 외래 키 제약조건 에러 해결 (#50)

* 멘토 삭제시 외래 키 제약조건에 의한 에러 해결

* Update src/main/kotlin/team/themoment/gsmNetworking/domain/mentor/domain/Career.kt

---------

* Co-authored-by: 양시준 <80192911+YangSiJun528@users.noreply.github.com>

* 방 관련 HTTP API 구현 (#39)

* FetchRoomDto 구현

* findRoomByUserIds 메서드 구현 및 모든 쿼리 성 메서드에 readOnly 옵션 추가

* RoomQueryRepository#findRoomByUserIds 메서드 구현

* Room 생성하는 역할의 서비스 객체 구현

* RoomQueryRepository 및 API Request Dto 구현

* 메서드 이름 변경 findRoomById -> findRoomByUserIds 및 주석 추가

* 특정 임시멘토를 가져오는 로직 구현 (#49)

* 특정 임시멘토의 정보를 가져오는 로직 구현

* javadoc 작성 및 리펙터링

* searchTempMentorListByName메서드의 uri 수정

* 임시멘토 search 에서 찾아서 반환하는 query로 변경 (#54)

* 기존 검색에서 찾아서 반환하는 query로 변경

* 잘못된 의존성 주입 수정

* session을 stateless로 설정 (#53)

* 모든 맨토 조회 시 id가 non-unique 한 문제 해결 & 정렬된 상태로 반환하도록 변경 (#51)

* `kotlin("kapt")` 의존성 버전 1.4.10 -> 1.9.20 으로 업그레이드

* `QueryAllMentorsListService` -> `QueryAllMentorsService` 이름 변경 및 인터페이스 사용하게 변경

* QueryAllMentorsServiceTest 실패하는 테스트 작성

* 요구사항에 맞게 테스트코드 명세 변경 및 추가

* id가 2로 고정되는 문제 해결 & 요구사항에 맞게 정렬하여 반환하는 기능 추가

* 생성자 파라미터 일부 객체 뒤에 쉼표 `,`가 누락된 문제 수정

* 2가지 기능을 수행하는 테스트 메서드 분리

* given 절 문구를 명확하게 수정

* 정렬 기준이 잘못 설정되어 있던 버그 수정

* 코드 구현이 드러나는 테스트를 dummy를 사용하여 구현이 드러나지 않게 리팩토랑

* 테스트 메서드 역할에 따라 2개로 분리

* sortedMentorIds를 then 절에서 given 절로 이동

* dto에서 companyUrl을 nullable로 변경 (#52)

* 채팅 기능 삭제 (#56)

* Chat 관련 기능 삭제

* 도메인 단위부터 재구성해야 하기 때문에 코드를 삭제하였습니다.

* StompSender 구현체가 없으므로 require에 실패하지 않게 init문 주석 처리

* 모든 멘토 리스트에서 잘못된 값을 반환하는 코드 수정 (#58)

* 잘못된 값을 반환하고있던 코드 수정

* 수정한 서비스 로직에 맞게 테스트코드 수정

* STOMP 관련 객체 재구축 (#59)

* 패키지 이동 domain.connect -> global.socket.connect

* 패키지 이동 domain.connect -> global.socket.connect

* StompException 추상 클래스에서 기본 클래스로 변경

* 도메인 별로 구현하는 것 대신
  기본적으로 StompException를 사용하도록 변경.
  특정한 처리가 필요한 경우 상속해서 사용

* StompSender 재구현

* StompSenderImpl 구현

* 이것도 StompException과 마찬가지로
  하나의 기본 구현체만 사용함

* StompException에 path 필드 추가

* GlobalSocketExceptionHandler에서 StompErrorProcessor 대신 StompSender 사용

* 더 이상 사용하지 않게 된 StompErrorProcessor는 삭제

* 예외처리 되지 않은 예외를 처리 (#62)

* 예외 처리되지 않은 예외를 처리하도록 구현

* 설명 수정

* CICD 환경 분리 (#61)

* 파일이름 대문자 수정

* 파일이름 대문자 수정

* PROD, DEV 환경 CICD workflow 분리

* prod,dev 환경 CICD workflow 분리작업 진행

* 테스트를 위한 브랜치 추가

* prod cd 테스트를 위한 트리거 브랜치 추가

* DEV CD 테스트를 위한 브랜치 추가

* Dev CodeDeploy CD 테스트를 위한 트리거 브랜치 추가

* gradle job name 오타 수정

* gradle job name 오타 수정

* Prod Dev CD 테스트

* prod와 dev 두 환경 cd 테스트

* main 브랜치 테스트 제거

* prod 환경 테스트 확인 되어서 주석 처리 함

* dev yml 시크릿변수 이름 변경

* YML_FILE -> DEV_YML_FILE

* 채팅 기능 domain&repository 객체 구현 (#63)

* generateUUIDv7 기능 추가

* 주석 통일성 있는 문구로 수정

* StompPathUtil 재구축

* 채팅 관련 도메인 객체 구현

* Message : 메시지 저장
  Header : 사용자 사이의 채팅 관련 메타 정보 저장
  UserMessageInfo : 사용자 별 채팅 기록

* MessageRepository 구현

* UserMessageInfoRepository 구현

* HeaderRepository 구현

* Domain 레이어에서 쓰이는 DTO,Enum 정의

* Career의 endDate를 nullable로 변경 (#60)

* endDate를 nullable로 변경하고 null일경우 임의의값을 넣도록하였습니다.

* LocalDate null 대체 값을 util로 관리

* 패키지 이동

* 전역 상수 네이밍 변경

* 임시멘토를 firebaseId 대신 realId로 식별 (#65)

* firebaseId 대신 realId로 식별

* test 코드에서 firebaseId제거

* api 접근 권한 수정 (#68)

* api 접근 권한 수정 (#69)

* 이름 검색 api 빈 배열일 경우 예외처리 (#67)

* 빈 배열일 경우 예외처리

* presentation layer에서 예외처리

* 서비스단 예외 제거

* 자신의 멘토 정보를 가져오는 로직 구현 (#66)

* 자신의 멘토 정보를 가져오는 로직 구현

* 만약 조회 값이 여러개일 경우 Exception 발생

* spring 방식에 맞춰서 Exception 변경

* MyCareerInfoDto에서 필드를 nullable로 수정 (#70)

* 채팅 API 및 비즈니스 로직 구현 (#64)

* findByUserIdAndOpponentUserId 메서드 추가

* Message 저장 서비스 객체 구현

* Message 체크 기능 추가

* MessageRepository ID 타입을 UUID로 변경

* Long으로 잘못 지정되어 있었음

* Message 조회 기능 & 관련 DTO 구현

* Message API Mapping(Controller) 구현 & 관련 DTO 구현

* 가독성, 재사용성 위주 리팩토링

* TODO 주석 작성

* 이미 읽은 메시지를 다시 읽는 경우, DB 갱신 요청 없이 넘어가는 기능 추가

* MessageCode 인터페이스 정의

* StompMessage에 messageCode 필드 추가 & StompMessage를 사용하는 기존 코드 변경

* MessageCode에 매핑 DTO 정의 & StompMessage 에서 MessageCode와 DTO 사이의 매핑 여부 체크 기능 추가

* 필요없는 TODO 주석 삭제

* TODO 주석 추가

* `_변수이름` 형식을 제거하고, 메서드 이름을 확실한 표현으로 변경

* User 엔티티의 profileUrl 등록 로직 구현 (#73)

* 사용자의 profileUrl을 등록하는 로직 구현

* profileUrl등록 api 접근 제한 설정

* 메서드 명 수정

* 변수 명 수정

* pathVariable에서 해결하지 못하는 부분을 RequestBody로 수정 (#74)

* 이미지를 반환시 s3 bucket 도메인 변경 로직 구현 (#75)

* 이미지를 반환할때 s3 bucket domain을 변경

* 환경변수 네이밍 수정

* S3Properties 생성

* fileName을 매개변수로 받아서 처리

* 메서드 명 변경

* 채팅 check API 개선 (#72)

* StompErrorResponse.ERROR supportClass 잘못 정의된 문제 수정

* 채팅 확인 시, messageId를 참조하지 않고, 확인한 시간을 참조함

* 커밋 단위 나누기 애매해서 전부 함

* multipart 최대 파일 용량 설정 추가 (#76)

* 최대 파일 용량 설정 추가

* 파일 사이즈 최대치를 넘었을때 예외 핸들링

* 트레이스 로그 수정

* 삭제했던 로그 추가

* 핸들러 상태 코드 수정

* Gwangya와 GwangyaToken 기본 세팅 및 gwangyaToken 생성 로직 구현 (#80)

* Gwangya와 GwangyaToken 기본 세팅 및 gwangyaToken 생성 로직 구현

* JsonFormat으로 시간 패턴 지정

* 파일 끝부분 개행

* 서비스 명 수정

* Gwangya content필드 길이 제한

* yml time -> token

* 생성 시간도 저장

* 'T' 추가

* securityConfig 접근 권한 설정 추가

* 광야 토큰 갱신, 반환 로직 재구성 (#82)

* 광야 토큰 갱신, 반환 로직 재구성

* 스케줄러에서 서비스 객체로 변경

* 스케줄러랑 서비스 객체를 분리

* 광야토큰 인증 로직과 광야 게시물 등록 로직을 구현 (#83)

* 광야 게시물 반환시 cursor 기반 페이지네이션 구현 (#84)

* gwangya 게시물을 가져오는 cursor 기반 페이지네이션 구현

* FE에서 알기 쉽게 gwangyaId로 param명 수정

* 페이지 크기 20 초과시 예외처리

* gtCursorId메서드의 매개변수 cursorId를 nullable하지 않게 수정

* 광야 게시물 페이지네이션 메서드 명 수정

* gtCursorId 메서드에 single expression functions 사용

* Http Request에 body가 출력되지 않는 문제 해결 (#79)

* 광야 요구사항과 다른 부분 수정과 첫 리스트 요청 로직 추가 (#87)

* 요구사항과 다른 부분 수정과 첫 리스트 요청 로직 추가

* queryDsl 메소드를 두개로 분리 및 리펙터링

* 결과값을 reverse해서 반환 (#88)

* 광야 게시물 생성 후 게시물 반환 (#91)

* 공백을 허용하지 않도록 annotation 변경 (#90)

* MethodArgumentNotValidException 핸들러 구현 (#92)

---------

Co-authored-by: 김성길 <82089918+SungGil-5125@users.noreply.github.com>
Co-authored-by: 양시준 <80192911+YangSiJun528@users.noreply.github.com>
Co-authored-by: 박준호 <103944584+Junho-06@users.noreply.github.com>
Co-authored-by: 양시준 <yangsijun5528@gmail.com>
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.

4 participants