Skip to content

Conversation

@wibaek
Copy link
Member

@wibaek wibaek commented Feb 12, 2025

No description provided.

nayonsoso and others added 24 commits January 8, 2025 04:43
* chore: testcontainers 의존성 추가

* test: MySQL, Redis 테스트 컨테이너 추가

* test: 커스텀 어노테이션 생성

- 어노테이션으로 테스트 컨테이너를 사용할 수 있도록

* test: TestContainer 어노테이션 적용

* test: DatabaseCleaner에 MySQL 문법 적용

* test: 깨지는 테스트 수정

* test: 불필요한 테스트 disabled

* chore: redis test container 의존성 제거
* feat: 대학교 상세조회 관련 통합테스트 코드 추가

* feat: 대학 통합테스트를 위한 데이터 셋업 추가

* refactor: 셋업된 데이터로 대학 조회 테스트하도록 변경

* feat: 대학교 검색 관련 통합테스트 코드 추가

* feat: 대학교 좋아요하기 관련 통합테스트 코드 추가

* refactor: 존재하지 않는 대학 상세정보 조회 시 id 변수명 수정

* refactor: *에서 구체적인 import 문으로 변경

* feat: 대학교 추천 관련 통합테스트 코드 추가

* refactor: 대학교 추천 서비스에 DisplayName 추가

* chore: 개행 컨벤션에 맞게 수정

* test: univseritySerivice에서 존재하지 않는 사용자에 대한 예외 검증 삭제

* refactor: UniversityService를 조회/좋아요 관련된 기능으로 분리

* test: 조회 및 좋아요 기능 테스트 코드 분리

* test: 대학교 조회 캐시 적용 테스트 개선

- CacheManager를 직접 검증하는 방식에서 SpyBean을 사용한 레포지토리 호출 횟수 검증으로 변경

* test: 예외처리 검증 테스트 한줄로 검증

* refactor: 좋아요 관련 응답 import *에서 구체적인 import 문으로 변경

* refactor: 대학 관련 서비스 dto *에서 구체적인 import 문으로 변경

* refactor: BDD Mockito 형식으로 변경
* refactor: 토큰 기능 제공 클래스 이름 변경

- TokenService > TokenProvider
- 비지니스 로직이 아니라 기능만 제공하는 것이라 Provider가 더 적절하다고 판단함

* refactor: 토큰 접두사 추가 함수 이름 변경, static import 적용

* feat: subject 추출 함수 추가

* test: TokenProvider 테스트 작성

- 기존에 작성되지 않았던 것들도 작성함

* refactor: 예외 응답 함수 추출

* feat: 로그아웃 체크 필터 생성

- AS-IS: 액세스 토큰을 검증하면서 로그아웃했는지를 검증하고 있다. 이는 액세스 토큰의 검증부에 들어갈 것이 아니라, 더 이전 단계에서 처리되어야 한다.
- TO-BE: 로그아웃 토큰을 필터에서 처리한다. 이전보다 더 빠르게 예외를 응답할 수 있다.

* test: 로그아웃 체크 필터 테스트 작성

* refactor: 중복 코드 함수로 추출

* refactor: JWT 인증 필터 수정

- 가독성 개선
- 다른 객체들에 책임 분산
- permitAllEndpoint에 대한 설정 제거

* refactor: 사용하지 않는 코드,클래스 제거

* test: JWT 인증 필터 테스트 작성

* refactor: 스프링 시큐리티 설정 클래스 수정

- 가독성 향상
- 필터 추가
- 시큐리티 단에서 관리하는 인증 필요없는 uri 제거

* refactor: 중복 선언된 cors 설정 제거

* refactor: cors 관련 설정 ConfigurationProperties로 변경

* refactor: TokenType 패키지 이동

* refactor: TokenProvider, TokenValidator 패키지 이동

* refactor: JwtProperties 분리

* refactor: JwtUtils 분리

* refactor: ConfigurationPropertiesScan 적용

* refactor: 인스턴스화 방지

* test: 테스트 메서드 이름에 컨벤션 적용
* refactor: 통합 테스트 구조 개선

- BaseIntegrationTest 추가로 테스트 설정 공통화
- TestDataSetUpHelper 도입으로 테스트 데이터 관리 개선

* refactor: 대학교 통합 테스트 BaseIntegrationTest를 사용하는 것으로 변경

* test: 마이페이지 조회 관련 통합테스트 코드 추가

* test: 정보 수정을 위한 마이페이지 조회 관련 통합테스트 코드 추가

* test: 관심 대학교 목록 조회 관련 통합테스트 코드 추가

* test: 프로필 이미지를 수정 관련 통합테스트 코드 추가

* test: 닉네임 수정 관련 통합테스트 코드 추가

* chore: 예외 응답 테스트명 "~면_예외_응답을_반환한다"로 통일

* refactor: TestDataSetUpHelper 생성자 주입에서 필드 주입으로 변경

* style: 카멜케이스에 맞게 수정

* refactor: @nested를 사용하여 프로필 이미지, 닉네임 수정 테스트 그룹화

* refactor: TestDataSetUpHelper를 BaseIntegrationTest로 통합
* refactor: 기본 추천 대학 후보 추가

* chore: 기능 설명 주석 보충
* refactor: 사용자가 다양한 인증 유형을 가지도록 수정

* refactor: 함수 이름 변경

- 더 의미를 전달하도록

* test: 테스트 코드 패키지 이동

* refactor: EntryPoint 말고 필터로 필터에서 발생하는 모든 예외 처리

* feat: 토큰 만료 검사 함수 추가

* test: 깨지는 테스트 해결

* refactor: 로그아웃 로직 수정

* test: 로그아웃 필터 테스트 수정
* test: GPA 등록 관련 통합테스트 코드 추가

* test: 어학 시험 점수 등록 관련 통합테스트 코드 추가

* test: GPA 조회 관련 통합테스트 코드 추가

* test: 어학시험 조회 관련 통합테스트 코드 추가

* test: GPA 점수 등록 테스트 시 VerifyStatus 검증 추가

* refactor: GPA 테스트 시 Long 타입 long으로 변경

* test: GpaScore 전체 url이 아닌 resource까지의 path로 변경
* test: 게시글 생성 관련 통합테스트 코드 추가

* test: 게시글 수정 관련 통합테스트 코드 추가

* refactor: PostService Query, Command, Like Service로 분리

* test: 게시글 삭제 관련 통합테스트 코드 추가

* test: 게시글 조회 관련 통합테스트 코드 추가

* test: 게시글 좋아요 관련 통합테스트 코드 추가

* refactor: 유효하지 않은 코드 조회 시 에러 발생 테스트코드 삭제

* chore: 예외 응답 테스트명 "~면_예외_응답을_반환한다"로 통일

* style: 사용하지 않는 import문 제거

* refactor: 유저와 게시판 BaseIntegrationTest에서 미리 생성하도록 변경

* refactor: BaseIntegrationTest에서 생성한 유저와 게시판 사용하는 것으로 변경

- 기존 유저와 게시판 생성하는 private 함수 제거

* test: when 절 코드를 then 절로 이동
* test: 댓글 조회 관련 통합테스트 코드 추가

* test: 댓글 생성 관련 통합테스트 코드 추가

* test: 댓글 수정 관련 통합테스트 코드 추가

* test: 댓글 삭제 관련 통합테스트 코드 추가

* test: 기존 단위테스트 코드 삭제
* refactor: 공통 추천 대학 로직 변경

- 해당 학기에 열리는 대학들을 랜덤으로 가져오도록

* refactor: 불필요한 셔플 제거

- 랜덤으로 가져오는 것을 다시 셔플할 필요는 없으므로

* refactor: 클래스 이름 변경

* style: 필드 선언 순서 변경

- final 이 위로 가도록

* refactor: native query 를 사용하도록
* test: 지원서 제출 관련 통합테스트 코드 추가

* test: 지원자 목록 조회 관련 통합테스트 코드 추가

* test: 경쟁자 목록 조회 관련 통합테스트 코드 추가

* test: 이번학기 지원자 대학국문 필터링 조회 시 secondChoice 검증 추가

* style: 불필요한 개행 삭제

* refactor: 테스트 메서드 이름에 컨벤션 적용

* test: UniversityChoiceRequest 생성 시 불필요한 인자 제거

* test: firstChoice 중복 검증 제외

* test: cntainsAll로 검증하는 것으로 변경

* test: 테스트유저2로 검증하는 것으로 변경
* refactor: manager, provider, userDetails 적용

- 클래스 자체는 많아졌지만, 이 코드를 처음 보는 개발자도 쉽게 이해할 수 있도록, 스프링 시큐리티의 표준 스펙에 맞게 개발하였음

* refactor: 패키지 이동

- 설정(configuration)인 것들과 아닌 것들 분리

* test: Authentication 테스트 작성

* test: userDetailsService 테스트 작성

* test: AuthenticationProvider 테스트 작성

* feat: 인증 정보를 객체로 바꾸는 resolver 구현

- 서비스 코드가 더이상 어떤 정보가 token 의 subject인지 몰라도 되도록 결합도를 낮춤

* test: resolver 테스트 작성

* refactor: 탈퇴한 사용자인지 검증 추가, 함수 분리

* test: 탈퇴한 사용자 검증 테스트 작성

* style: 불필요한 개행 삭제

* refactor: 리졸버 이름 변경

* feat: 리졸버 활성화

* refactor: 지원서 관련 코드에 리졸버 적용

* refactor: 인증 관련 코드에 리졸버 적용

* refactor: 댓글 관련 코드에 리졸버 적용

* refactor: 사용자 관련 코드에 리졸버 적용

* refactor: 게시글 관련 코드에 리졸버 적용

* refactor: 대학 관련 코드에 리졸버 적용

* refactor: 성적 관련 코드에 리졸버 적용

* refactor: S3 관련 코드에 리졸버 적용

* test: 사용자와 성적이 양방향 관계가 되도록 수정

- 이전에는 siteUser.email로 조회를 해와서 DB에 있는 내용이 바로 반영된 SiteUser를 대상으로 했기 때문에 siteUser.getGpaScoreList 나 siteUser.getLanguageTestScoreList를 했을 때 조회가 되었었다.
- 하지만 SiteUser 객체 자체를 넘기도록 테스트가 바뀌었고, 테스트 코드에서 Transactional 사용하는 것을 지양하기 위해서 양방향을 명시적으로 걸어주도록 코드를 수정했다.
* refactor: TokenProvider 에서 각 토큰에 대한 로직을 캡슐화

* refactor: SignUpTokenProvider 생성, TokenProvider 추상화

* refactor: 함수 이름 변경

- 범용적으로 사용되는 지금 상황에 적합하도록

* chore: 달성한 todo 제거

* refactor: 변수명 변경, 불필요한 변수 할당 제가
* refactor: kakao oauth 관련 값을 ConfigurationProperties 로 변경

* refactor: Oauth -> OAuth 용어 통일

* refactor: SignInService 가 로그인만 담당하도록

* refactor: 사용자 정보를 가져오는 의미가 드러나도록 함수명 변경

* refactor: 다양한 OAuth 종류를 포괄하도록 이름 변경

* refactor: OAuthService 추상화

* refactor: oauth 관련 서비스 패키지 이동

* feat: 애플 OAuth 설정 관리 클래스 생성

* feat: 애플 client secret 생성 클래스 생성

* feat: 애플 OAuthClient 구현

* feat: 애플 OAuthService 구현

* chore: 주석 내용 수정

* refactor: 회원가입 토큰에 가입 방법이 포함되도록 SignUpTokenProvider 수정

* refactor: 다양한 회원 가입이 가능하도록 회원 가입 로직 수정

* feat: 애플 인증 엔드포인트 추가

* feat: 애플 공개키를 가져와서 id_token 을 하도록

* refactor: 공개키를 캐싱하도록

* refactor: 잘못된 만료 시간 수정

* refactor: 응답 필드 명 변경

* refactor: code 요청 유효성 검사 추가

* chore: 주석 수정
* refactor: issueDate 컬럼 제거

* chore: issueDate 컬럼 제거 마이그레이션 파일 추가

* test: 모든 테스트 코드 정상 작동하도록 수정

* style: 사용하지 않는 import문 제거
* refactor: board, comment, post 패키지를 community 패키지로 이동 및 통합

* refactor: 게시글 목록 조회 API PostController로 이동

* test: 변경된 패키지 구조에 맞게 테스트 구조 변경

* refactor: 레이어별 패키지 구조를 도메인 중심으로 변경
* refactor: 사용자에 password 컬럼 추가

* feat: 비밀번호 암호화 빈 추가

* refactor: Oauth 가입용 토큰 제공자 이름 변경

* feat: 이메일 가입용 토큰 제공자 구현

* feat: 이메일 회원가입 구현, 회원가입 서비스 추상화

* feat: 이메일 로그인 구현

* feat: 이메일 로그인, 회원가입 엔트포인트 추가

* refactor: 잘못 이해해서 다르게 구현한 api 수정

* test: 이메일 로그인 테스트 작성

* refactor: 이메일 형식으로 검증하노록 dto 어노테이션 수정

* refactor: 이메일 중복 검증이 앞에 위치하도록
* refactor: 서비스의 대학 선택 검증을 DTO에서 수행하도록 변경

* refactor: 대학 지망 검증 에러 메시지를 상수로 분리

* test: 기존 서비스 통합테스트에서 대학 선택 유효성 검사 테스트로 변경

* feat: 기본 응답메시지 수정

* feat: 대학 선택 검증 메시지를 ErrorCode enum으로 통합

* style: 불필요한 개행 제거

* feat: 대학 선택 필수값 검증 로직 통합

* refactor: 검증 로직 리팩토링 및 가독성 개선
* test: 깨지는 테스트 해결

- 같은 email, 닉네임으로 회원가입하는 유저에 대한 테스트케이스가 '같은 닉네임이면 예외를 반환한다' 였는데, 검증 순서 상 email 중복 검증이 더 중요한 검증이므로 앞에 있어서 '같은 이메일로 로그인한 회원이 있다'는 메세지가 발생했다. 테스트 데이터에스 email 을 각각 다르게 주어 이를 해결한다.

* chore: submodule 업데이트
* feat: Role에 ADMIN 추가 및 Spring Security 권한 처리 추가

* feat: 사용자 권한 처리 및 ADMIN 경로 보호 추가

* refactor: Security 필터 체인 실행 순서 조정

* feat: 인증 안된 사용자 및 권한 없는 사용자 예외 처리 추가

* test: ExceptionHandlerFilter 관련 테스트 코드 추가

* chore: ADMIN Role 추가 마이그레이션 파일 추가

* fix: JWT 인증 시 권한 정보 누락 문제 해결

- JwtAuthentication 생성자에서 권한 정보를 상위 클래스에 전달하도록 수정

* fix: 만료된 토큰에 대한 인증 처리 시 예외 발생 문제 해결

- JwtAuthentication 생성자에서 권한 정보 처리 로직 수정

* refactor: customException를 활용하여 코드 간결화

* refactor: 불필요한 중복 코드 제거

* refactor: 삼항 연산자로 예외 처리 코드 간결화

* style: 형 변환 시 공백 추가

* refactor: Role enum을 순수 도메인 객체로 변경

* test: 테스트 코드 추가

* refactor: 매퍼 security.userdetails 패키지로 이동

* test: SiteUserDetailsTest 추가 및 권한 테스트 이동
@wibaek wibaek added the 릴리즈 Marks pull request for release label Feb 12, 2025
@wibaek wibaek changed the title [RELEASE] 250212 릴리즈 [RELEASE] 250214 릴리즈 Feb 13, 2025
@wibaek wibaek merged commit 4dda1da into release Feb 13, 2025
@nayonsoso nayonsoso deleted the chore/release-sync branch February 15, 2025 19:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

릴리즈 Marks pull request for release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants