Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* [FE] 프론트엔드 초기 세팅 (#5) * ci: webpack, react, typescript 설정 * ci: eslint, prettier, stylelint 설정 * [BE] feat: 초기 환경 설정 (#8) * feat: 초기 환경 설정 * refactor: 클래스 종료 전 개행 제거 * build: application.yml 설정 * [BE] feat: 초기 엔티티 작성 (#10) * feat: 초기 엔티티 작성 * refactor: 리뷰 내용과 리뷰를 다대일 연결 * refactor: 패키지 구조 고려하여 ProjectGroup으로 수정 * refactor: Project -> Reviewer로 변경 * refactor: 테이블명 일치 (reviewer_group) * [BE] feat: 리뷰 작성 (#15) * feat: 초기 엔티티 작성 * refactor: 리뷰 내용과 리뷰를 다대일 연결 * refactor: 패키지 구조 고려하여 ProjectGroup으로 수정 * refactor: Project -> Reviewer로 변경 * refactor: 테이블명 일치 (reviewer_group) * feat: 멤버 레포지토리 생성 * feat: 리뷰어그룹 레포지토리 생성 * feat: 리뷰 문항 레포지토리 생성 * feat: 키워드 레포지토리 생성 * feat: 리뷰 키워드 레포지토리 생성 * feat: 리뷰 레포지토리 생성 * feat: 리뷰 작성 기능 구현 * test: 리뷰 작성 기능 테스트 추가 --------- Co-authored-by: donghoony <[email protected]> Co-authored-by: nayonsoso <[email protected]> * [BE] feat: 테스트 메서드별 격리 (#19) * feat: 테스트 격리를 위한 DB Cleaner 및 Extension 구현 * feat: Service에서 공통적으로 사용할 수 있는 어노테이션 제공 * test: 서비스 테스트 어노테이션 사용하도록 수정 * fix: 누락된 리뷰 작성 매핑 URL 추가 (#17) * [BE] feat: 리뷰 조회 (#22) * feat: 리뷰 조회 기능 추가 * style: 개행 변경 * test: 리뷰 조회 기능 테스트 추가 * refactor: 리뷰 조회 메서드명 변경 * refactor: id 타입 변경 * style: 개행 수정 * fix: PostMapping 수정 --------- Co-authored-by: KIMGYUTAE <[email protected]> Co-authored-by: donghoony <[email protected]> * [BE] feat: 커스텀 예외 처리 (#20) * feat: 커스텀 예외 생성 * feat: 커스텀 예외 적용 * feat: 글로벌 예외 처리 * [BE] feat: 리뷰어 그룹 정보 및 키워드 조회 API (#24) * feat: 키워드 조회 API * feat: 리뷰 그룹 조회 API * refactor: PathVariable 변수명 변경 * [FE] 리뷰 작성화면과 상세 리뷰 보기 화면 결합 (#26) * fix : webpack dev sever 열 때 오류 수정 - package.json 에서 type :"module" 삭제 , stylelint 관련 설정 삭제 Co-Authored-By: ImxYJL <[email protected]> * ci : svg파일 관련 환경 셋팅 Co-Authored-By: ImxYJL <[email protected]> * design : reset 스타일, global style에서 폰트 적용 Co-Authored-By: ImxYJL <[email protected]> * feat: 리뷰 잠금 버튼 추가 Co-Authored-By: ImxYJL <[email protected]> * feat: 상세 리뷰 보기 화면의 질문,답 컴포넌트 추가 Co-Authored-By: ImxYJL <[email protected]> * feat: 상세 리뷰 보기 화면의 프로젝트 설명 컴포넌트 추가 Co-Authored-By: ImxYJL <[email protected]> * feat : 상세 리뷰 보기 화면 페이지 추가 및 상세 리뷰 데이터 타입 추가 Co-Authored-By: ImxYJL <[email protected]> * fix: webpack dev server 열 때 오류 수정 Co-authored-by: soosoo22 <[email protected]> * design: reset css 적용 Co-authored-by: soosoo22 <[email protected]> * feat: 리뷰 작성 페이지 구현 Co-authored-by: soosoo22 <[email protected]> * ci: svg 파일 관련 설정 * fix : 머지충돌 해결 및 오타 수정 * feat: react-router-dom, react-router 설치 및 설정 * refactor: 리뷰 작성 페이지와 상세 리뷰 보기 페이지 결합 및 리팩토링 * refactor: 리뷰 타입 파일 리팩토링 및 타입 추가 * feat: api 설정 추가 및 상세 리뷰 보기 페이지에 api 핸들러 추가 --------- Co-authored-by: ImxYJL <[email protected]> Co-authored-by: chysis <[email protected]> Co-authored-by: soosoo22 <[email protected]> * [BE] refactor: 패키지 구조 리팩터링 (#30) * refactor: 패키지 구조 구체화 * refactor: 패키지 구조 구체화(서비스, 컨트롤러, 레포지토리) * [BE] feat: 리뷰어 그룹 설명 작성, 마감 기한 및 검증 로직 추가 (#34) * feat: BadRequestException 추가 * feat: 리뷰어 그룹 이름, 설명 길이 검증 * [FE] design: theme ,전역 스타일을 설정 (#41) * chore: 불필요한 파일 삭제 Co-Authored-By: ImxYJL <[email protected]> Co-Authored-By: soosoo22 <[email protected]> Co-Authored-By: Fe <[email protected]> * design: theme 생성 - 색상, 폰트 사이즈, 폰트 wieght 설정 Co-Authored-By: ImxYJL <[email protected]> Co-Authored-By: soosoo22 <[email protected]> Co-Authored-By: Fe <[email protected]> * design: emotion ThemeProvider 적용 및 Theme 타입 확장 - emotion에서 제공하는 Theme 타입이 빈 객체여서 코드에서 사용하는 theme에 맞게 타입을 확장함 Co-Authored-By: ImxYJL <[email protected]> Co-Authored-By: soosoo22 <[email protected]> Co-Authored-By: Fe <[email protected]> * design : rem 셋팅 및 reset.css를 globalStyle에 적용 Co-Authored-By: ImxYJL <[email protected]> Co-Authored-By: soosoo22 <[email protected]> Co-Authored-By: Fe <[email protected]> * chore: App에서 불필요한 코드 삭제 Co-Authored-By: ImxYJL <[email protected]> Co-Authored-By: soosoo22 <[email protected]> Co-Authored-By: Fe <[email protected]> --------- Co-authored-by: ImxYJL <[email protected]> Co-authored-by: soosoo22 <[email protected]> Co-authored-by: Fe <[email protected]> * [FE] ci: 리액트 쿼리 및 msw 설치, eslint import rule 추가 및 적용 (#44) * ci: eslint 오류 수정 및 import rule 추가 및 관련 플러그인 설치 - eslint-config-prettier - eslint-plugin-import Co-Authored-By: badahertz52 <[email protected]> Co-Authored-By: ImxYJL <[email protected]> Co-Authored-By: Fe <[email protected]> * style: eslint 적용으로 인한 코드 포맷팅 변경 import 순서 적용 Co-Authored-By: badahertz52 <[email protected]> Co-Authored-By: ImxYJL <[email protected]> Co-Authored-By: Fe <[email protected]> * ci: msw 설치 Co-Authored-By: badahertz52 <[email protected]> Co-Authored-By: ImxYJL <[email protected]> Co-Authored-By: Fe <[email protected]> --------- Co-authored-by: badahertz52 <[email protected]> Co-authored-by: ImxYJL <[email protected]> Co-authored-by: Fe <[email protected]> * [BE] docs: Swagger를 활용한 API 문서 자동화 (#31) * chore: swagger-ui 설정 추가 * feat: swaggerConfig 추가 * docs: 컨트롤러에 swagger 어노테이션 추가 * docs: dto에 swagger 어노테이션 추가 * chore: api 문서 설정 파일 추가 * refactor: SwaggerConfig info 설정 파일 변수 참조하도록 변경 * docs: api 문서에 상태코드 올바르게 노출되도록 변경 * chore: api 문서 파일명 변경 * chore: api-docs 프로퍼티명 변경 * refactor: 프로퍼티 정보와 설정 클래스 분리 * refactor: 컨트롤러 내 swagger 어노테이션 분리 --------- Co-authored-by: KIMGYUTAE <[email protected]> * [BE] feat: 리뷰 도메인 구체화, 정책 구현 (#43) * feat: dto 검증을 위한 의존성 추가 * feat: dto에 jakarta validation 어노테이션 추가 * feat: 컨트롤러에서 요청을 검증할 수 있도록 설정 * feat: FieldError 내용을 보여줄 응답 객체 생성 * feat: FieldError 핸들러 추가 * refactor: 문자열 공백 검증을 위해 NotBlank 사용 * style: todo 주석 추가 * feat: 데드라인이 지나면 리뷰를 작성할 수 없도록 하는 기능 추가 * refactor: 사이즈 검증문 제거 * style: 개행 변경 * refactor: 예외 이름을 과거형으로 변경 * refactor: RFC 9457 형식을 지키면서 필드 에러 정보를 반환하도록 수정 * chore: 오타 수정 * fix: conflict 해결 * feat: dto에 jakarta validation 어노테이션 추가 * refactor: 문자열 공백 검증을 위해 NotBlank 사용 * refactor: 사이즈 검증문 제거 * [BE] feat: 키워드 도메인 구체화, 정책 구현 (#40) * feat: 키워드 일급 컬렉션 및 제약사항 구현 * build: 테스트 환경에서 Lombok 의존성 추가 * feat: 리뷰에 추가된 키워드 삭제 * feat: 리뷰에 키워드 추가 * feat: 일급 컬렉션의 이름을 SelectedKeywords로 변경 * refactor: 키워드 개수 정책 5개 반영 * refactor: 중복 키워드 멘트 수정 * refactor: `deleteAll`로 메서드명 수정 * refactor: `duplicated` -> `duplicate`로 수정 * refactor: 키워드 동등성 비교 * test: 키워드 등록 시 기존 키워드 삭제 테스트 작성 * refactor: 사용하지 않는 필드 삭제 * style: add newlines between comments * refactor: 키워드 ID 기반 비교 * refactor: id가 없는 경우 detail 비교 * refactor: 키워드 테스트 도메인 기반으로 수정 * [BE] feat: 리뷰어 그룹 도메인 구체화, 정책 구현 (#45) * feat: Member 엔티티에 GitHub ID 속성 추가 * feat: 작성한 리뷰어가 리뷰어 그룹에 속하는지 검증 * feat: 리뷰 작성 시, 이미 작성한 리뷰가 있지 않은지 검증 * refactor: Review 엔티티의 reviewer와의 연관관계 ManyToOne으로 변경 * refactor: 컬럼명 오류 수정 * refactor: gitHub 표기 -> github으로 변경 * refactor: GithubReviewGroup -> GithubReviewGroup 클래스명 변경 * refactor: 누락된 @Column 추가 * test: 리뷰 작성 테스트 시, 깃헙 사용자 그룹 데이터 저장 부분 추가 * refactor: 리뷰 작성 시, 중복 리뷰 검증 로직 수정 * refactor: GithubReviewerGroupNotFoundException을 UnAuthorizedException 구현하도록 수정 * refactor: ReviewContentExistException -> ReviewAlreadySubmittedException 클래스명 변경 * feat: UnAuthorizedException 추가 * refactor: 메서드 순서 변경 * test: 불필요한 given절 삭제 * test: 테스트를 위한 데이터 삽입 repository를 활용하도록 변경 --------- Co-authored-by: Donghoon Lee <[email protected]> * [FE] 리뷰 쓰기 페이지에 확정된 디자인을 반영하고, 리팩터링한다. (#53) * fix: eslint에서 절대 경로를 읽지 못하는 오류 수정 절대 경로 지정 Co-Authored-By: ImxYJL <[email protected]> * design: 시스템 기본 폰트 크기 지정 Co-Authored-By: ImxYJL <[email protected]> * chore: 사용하지 않는 import 제거 emotion.ts에서 theme 제거 Co-Authored-By: ImxYJL <[email protected]> * feat: 공통 버튼 컴포넌트 구현 Co-Authored-By: ImxYJL <[email protected]> * feat: 키워드 버튼 컴포넌트 구현 Co-Authored-By: ImxYJL <[email protected]> * feat: 리뷰 작성 페이지 퍼블리싱 및 컴포넌트 분리 Co-Authored-By: ImxYJL <[email protected]> * feat: 리뷰이 코멘트 컴포넌트 구현 Co-Authored-By: ImxYJL <[email protected]> * refactor: 리뷰 작성 페이지에서 리뷰 아이템 컴포넌트 분리 Co-Authored-By: ImxYJL <[email protected]> * refactor: 리뷰 작성 페이지 리팩터링 - 리뷰이 코멘트 추가 - 리뷰 아이템 컴포넌트 분리 - 부가적인 스타일링 Co-Authored-By: ImxYJL <[email protected]> --------- Co-authored-by: ImxYJL <[email protected]> * [FE] feat: sidebar 리팩토링 및 기능 추가 , topbar 추가, 반응형 페이지 레이아웃 적용 (#55) * style: globalStyles.ts에서 경로 공백 추가 * docs: 불필요한 import 삭제 Co-Authored-By: soosoo22 <[email protected]> * design : theme 추가 - 추가된 theme : breakpoints, sidebarWidth Co-Authored-By: soosoo22 <[email protected]> * chore: Header 컴포넌트 삭제 Co-Authored-By: soosoo22 <[email protected]> * feat : Topbar 생성, logo 이미지 변경 및 SearchInput 생성 - logo 이미지 변경 - Topbar에 들어가는 컴포넌트들 (SidebarOpenButtion, Logo )생성 - userProfile 이미지 생성 - 공통 컴포넌트 : SearchInput ui 생성 Co-Authored-By: soosoo22 <[email protected]> * feat : 페이지 레이아웃 생성 - 레이아웃 관련 컴포넌트들 생성 Co-Authored-By: soosoo22 <[email protected]> * refactor : App에 페이지 레이아웃 적용 Co-Authored-By: soosoo22 <[email protected]> * refactor: Sidebar 리팩토링 - 메뉴명 상수처리 - 피그마 디자인 변경에 따른 수정 Co-Authored-By: soosoo22 <[email protected]> * feat: sidebar 열고 닫는 기능 추가 Co-Authored-By: soosoo22 <[email protected]> --------- Co-authored-by: soosoo22 <[email protected]> * fix: 컴파일 에러 해결 (#60) Co-authored-by: nayonsoso <[email protected]> * [FE] fix : stylelint 적용 오류 수정 (#66) * fix: stylelint를 통한 css 속성 정렬 기능 오류 수정 - stylelint 버전16과 충돌되는 플러그인 삭제 : stylelint-config-prettier, stylelint-prettier - css 정렬에 필요하지 않은 플러그인 삭제 : stylelint-config-standard, stylelint-config-styled-componented, stylelint-webpack-plugin - 추가로 설치한 플러그인: postcss-syntax, @stylelint/postcss-css-in-js - stylelint 적용 script 추가 - .stylelintrc.json 수정 : css 관련 rule 설정 * refactor: stylelint 적용에 따른 css 속성 정렬 * ci: CI 스크립트 작성 (#70) * [BE] test: 깃헙 리뷰어 그룹의 테스트 추가 및 fixture 미적용 부분 보완 (#68) * test: GithubReviewerGroupRepository 테스트 추가 * test: ReviewServiceTest에 테스트 fixture 적용 * test: given, when, then절 추가 * test: given 데이터 오류 수정 * [BE] chore: workflow 디렉터리 이동 (#74) * chore: workflow 디렉터리 이동 * fix: 백엔드 디렉터리로 이동 * fix: 백엔드 디렉토리로 이동 * fix: checkout actions의 디렉토리 설정 * fix: 디렉토리 설정... * infra: CD 파이프라인 작성 (#76) * fix: cd gradle 디렉토리 이동 (#77) * [BE] refactor: 단건 리뷰 조회 시 리뷰어 정보 삭제, 리뷰 작성 시점 추가 (#65) * refactor: 리뷰 조회 시 리뷰 생성 시각 추가, 리뷰어 정보 삭제 * fix: 테스트 어노테이션 활성화 및 수정 * chore: 테스트 클래스 패키지 이동 * refactor: 불필요한 given절 제거 * [FE] 리뷰 작성, 상세 리뷰 보기 페이지에 백엔드 API 연동 및 dotenv-webpack 설치, BASE_URL을 .env로 이동 (#78) * chore: gitignore에 yarn-error.log 추가 * ci: env 파일 사용을 위한 dotenv-webpack 설치 * refactor: 엔드포인트에 env 파일을 통한 API_BASE_URL 경로 적용 * fix: 리뷰 상세보기 데이터에서 백엔드 응답과 속성 이름이 달랐던 부분 수정 * refactor: 백엔드 응답 및 리팩토링된 리뷰 쓰기 형식에 맞게 리뷰 쓰기 모킹 데이터 수정 * chore: 불필요한 console.log 삭제 * [Fe] 절대 경로 사용 시 발생하는 eslint 오류를 수정했습니다. (#81) * fix: stylelint를 통한 css 속성 정렬 기능 오류 수정 - stylelint 버전16과 충돌되는 플러그인 삭제 : stylelint-config-prettier, stylelint-prettier - css 정렬에 필요하지 않은 플러그인 삭제 : stylelint-config-standard, stylelint-config-styled-componented, stylelint-webpack-plugin - 추가로 설치한 플러그인: postcss-syntax, @stylelint/postcss-css-in-js - stylelint 적용 script 추가 - .stylelintrc.json 수정 : css 관련 rule 설정 * refactor: stylelint 적용에 따른 css 속성 정렬 * fix : 절대 경로 사용 시 오류 수정 오류 : eslintimport/no-unresolved * chore: eslintrc.cjs 에서 불필요한 코드 삭제 node 환경 setting 삭제 * [FE] ci: Jest, RTL 테스트 환경 구축 (#84) * fix: stylelint를 통한 css 속성 정렬 기능 오류 수정 - stylelint 버전16과 충돌되는 플러그인 삭제 : stylelint-config-prettier, stylelint-prettier - css 정렬에 필요하지 않은 플러그인 삭제 : stylelint-config-standard, stylelint-config-styled-componented, stylelint-webpack-plugin - 추가로 설치한 플러그인: postcss-syntax, @stylelint/postcss-css-in-js - stylelint 적용 script 추가 - .stylelintrc.json 수정 : css 관련 rule 설정 * refactor: stylelint 적용에 따른 css 속성 정렬 * fix : 절대 경로 사용 시 오류 수정 오류 : eslintimport/no-unresolved * chore: eslintrc.cjs 에서 불필요한 코드 삭제 node 환경 setting 삭제 * ci: jest 및 RTL 설치 * ci: jest 타입 설정 추가 * ci: CI를 위한 yml 파일 테스트 * fix: 잘못 올라간 파일 삭제 --------- Co-authored-by: badahertz52 <[email protected]> * [BE] refactor: 발생하는 모든 예외의 형식 통일 (#69) * refactor: 커스텀 예외를 발생시키도록 수정 * refactor: 모든 예외를 잡을 수 있도록 수정 * refactor: ExceptionHandler가 반환하는 예외 응답 형식 변경 - ProblemDetail로 변경 * refactor: ResponseEntityExceptionHandler를 상속하지 않도록 변경 * feat: ResponseEntityExceptionHandler에서 처리하는 예외를 직접 핸들링 * feat: CORS 설정 추가 (#88) * fix: ci PR 브랜치 설정 (#92) * refactor: 예외 핸들러 인자 변경 (#87) * [BE] 도메인 연관관계 재설정 (#97) * feat: 깃허브 아이디 원시값 포장 Co-authored-by: nayonsoso <[email protected]> Co-authored-by: Kimprodp <[email protected]> Co-authored-by: hyeonjilee <[email protected]> * feat: 회원 `GithubId` 사용 Co-authored-by: nayonsoso <[email protected]> Co-authored-by: Kimprodp <[email protected]> Co-authored-by: hyeonjilee <[email protected]> * refactor: 키워드 내 컬럼 수정 (content) Co-authored-by: nayonsoso <[email protected]> Co-authored-by: Kimprodp <[email protected]> Co-authored-by: hyeonjilee <[email protected]> * refactor: 일급 컬렉션 이름 변경 Co-authored-by: nayonsoso <[email protected]> Co-authored-by: Kimprodp <[email protected]> Co-authored-by: hyeonjilee <[email protected]> * feat: 질문 엔티티 Co-authored-by: nayonsoso <[email protected]> Co-authored-by: Kimprodp <[email protected]> Co-authored-by: hyeonjilee <[email protected]> * refactor: 답변 구조 변경, 길이 검증 Co-authored-by: nayonsoso <[email protected]> Co-authored-by: Kimprodp <[email protected]> Co-authored-by: hyeonjilee <[email protected]> * refactor: 키워드 연관관계 없이 참조하도록 설정 Co-authored-by: nayonsoso <[email protected]> Co-authored-by: Kimprodp <[email protected]> Co-authored-by: hyeonjilee <[email protected]> * test: 답변 길이 테스트 Co-authored-by: nayonsoso <[email protected]> Co-authored-by: Kimprodp <[email protected]> Co-authored-by: hyeonjilee <[email protected]> * feat: 리뷰 생성 시 키워드 받아서 생성 Co-authored-by: nayonsoso <[email protected]> Co-authored-by: Kimprodp <[email protected]> Co-authored-by: hyeonjilee <[email protected]> * test: 리뷰어와 리뷰이 같은 경우의 예외 테스트 Co-authored-by: nayonsoso <[email protected]> Co-authored-by: Kimprodp <[email protected]> Co-authored-by: hyeonjilee <[email protected]> * chore: 리뷰-키워드 매핑 테이블 삭제 Co-authored-by: nayonsoso <[email protected]> Co-authored-by: Kimprodp <[email protected]> Co-authored-by: hyeonjilee <[email protected]> * fix: Fixture 사용해 컴파일 에러 해결 Co-authored-by: nayonsoso <[email protected]> Co-authored-by: Kimprodp <[email protected]> Co-authored-by: hyeonjilee <[email protected]> * refactor: 일대다 편의 메소드 작성, Co-authored-by: nayonsoso <[email protected]> Co-authored-by: Kimprodp <[email protected]> Co-authored-by: hyeonjilee <[email protected]> * feat: 깃허브 아이디 그룹, 리뷰어 연관관계 Co-authored-by: nayonsoso <[email protected]> Co-authored-by: Kimprodp <[email protected]> Co-authored-by: hyeonjilee <[email protected]> * feat: 리뷰그룹 - 리뷰 일대다 단방향 연관관계 적용 Co-authored-by: nayonsoso <[email protected]> Co-authored-by: Kimprodp <[email protected]> Co-authored-by: hyeonjilee <[email protected]> * feat: 리뷰그룹 - 리뷰 일대다 양방향 연관관계 적용 Co-authored-by: nayonsoso <[email protected]> Co-authored-by: Kimprodp <[email protected]> Co-authored-by: hyeonjilee <[email protected]> * feat: 리뷰어 그룹 깃허브 아이디 검증 Co-authored-by: nayonsoso <[email protected]> Co-authored-by: Kimprodp <[email protected]> Co-authored-by: hyeonjilee <[email protected]> * feat: 셀프리뷰 검증 Co-authored-by: nayonsoso <[email protected]> Co-authored-by: Kimprodp <[email protected]> Co-authored-by: hyeonjilee <[email protected]> * chore: 사용하지 않는 파일 삭제 Co-authored-by: nayonsoso <[email protected]> Co-authored-by: Kimprodp <[email protected]> Co-authored-by: hyeonjilee <[email protected]> * feat: 리뷰 추가 검증 Co-authored-by: nayonsoso <[email protected]> Co-authored-by: Kimprodp <[email protected]> Co-authored-by: hyeonjilee <[email protected]> * fix: 순환 참조 NPE 해결 Co-authored-by: nayonsoso <[email protected]> Co-authored-by: Kimprodp <[email protected]> Co-authored-by: hyeonjilee <[email protected]> * chore: 사용하지 않는 import 제거 Co-authored-by: nayonsoso <[email protected]> Co-authored-by: Kimprodp <[email protected]> Co-authored-by: hyeonjilee <[email protected]> * chore: Github ID 패키지 이동 Co-authored-by: nayonsoso <[email protected]> Co-authored-by: Kimprodp <[email protected]> Co-authored-by: hyeonjilee <[email protected]> * feat: 리뷰 - 리뷰 답변 연관관계 설정 Co-authored-by: nayonsoso <[email protected]> Co-authored-by: Kimprodp <[email protected]> Co-authored-by: hyeonjilee <[email protected]> * chore: 사용하지 않는 코드 제거 * refactor: 내가 받은 리뷰 상세 보기 구현 --------- Co-authored-by: nayonsoso <[email protected]> Co-authored-by: Kimprodp <[email protected]> Co-authored-by: hyeonjilee <[email protected]> * [FE] feat: 리뷰 작성 페이지 기능 구현 (#89) * fix: stylelint를 통한 css 속성 정렬 기능 오류 수정 - stylelint 버전16과 충돌되는 플러그인 삭제 : stylelint-config-prettier, stylelint-prettier - css 정렬에 필요하지 않은 플러그인 삭제 : stylelint-config-standard, stylelint-config-styled-componented, stylelint-webpack-plugin - 추가로 설치한 플러그인: postcss-syntax, @stylelint/postcss-css-in-js - stylelint 적용 script 추가 - .stylelintrc.json 수정 : css 관련 rule 설정 * refactor: stylelint 적용에 따른 css 속성 정렬 * chore: 현재 사용되지 않는 저장 버튼 숨김 처리 * design: 기본 폰트 사이즈 변경 - 15px -> 16px로 수정 * fix : 절대 경로 사용 시 오류 수정 오류 : eslintimport/no-unresolved * design: 리뷰 작성 페이지의 수정된 디자인 적용 - 색상 코드 수정 - 버튼 호버 시 스타일링 수정 - 리뷰 마감일 날짜 형식 변경 * design: 리뷰 질문에 안내 문구 및 placeholder 추가 - 각 질문에 ' (20자 이상)' 문구 하드코딩 - 최대 1000자 입력 가능하다는 문구를 textarea의 placeholder로 추가 * chore: eslintrc.cjs 에서 불필요한 코드 삭제 node 환경 setting 삭제 * chore: api명 및 endpoint명 수정 * chore: 리뷰 질문 목록을 서버에서 받아오기 위해 상수 제거 * chore: api 문서 형식에 맞게 데이터 타입 수정 * fix: 키워드 버튼을 눌렀을 때 폼이 제출되는 문제 해결 * feat: 작성한 리뷰 내용을 부모 컴포넌트의 상태와 동기화하도록 설정 * design: textarea의 크기를 고정시키고, 넘어갈 경우 스크롤 되도록 변경 * design: 공통 버튼 컴포넌트에 조건부 스타일링 구현 * design: disabled 관련 색상 변수 추가 * feat: 모든 폼을 작성했을 때 제출 버튼이 활성화되도록 구현, 키워드 선택 로직 구현 * feat: 제출 버튼 클릭 시 confirm 발생, 한 번 더 확인 시 제출되도록 구현 * feat: 키워드 버튼을 5개 초과해서 선택할 수 없도록 구현 * feat: textarea에 1000자를 초과해서 입력할 수 없도록 구현 및 현재 글자수 표시 * fix: 이미 선택된 키워드를 해제하려 해도 개수 제한되는 오류 수정 * refactor: 폼 유효성 검사 조건들을 변수로 분리 * design: 키워드 버튼들의 크기를 fit-content로 변경 및 가로로 나열하도록 수정 * chore: api 연결 이전, 임시로 폼 정보를 콘솔에 출력하도록 설정 * chore: 리뷰 작성 완료 페이지 라우터 추가 * feat: 리뷰 작성 완료 페이지 및 작성 완료 시 페이지 이동 기능 구현 * refactor: 리뷰 아이템 컴포넌트 매직넘버 상수화 * chore: 시계 아이콘 스타일 컴포넌트화 * refactor: 리뷰 관련 메시지 상수 분리 * design: 리뷰 작성란 placeholder 및 본문 font weight 변경 * refactor: 리뷰 문항 번호 동적으로 부여하도록 변경 및 상수화 적용 * refactor: on-, handle- prefix 관련 컨벤션 적용 및 키워드 버튼 인터페이스 확장 * chore: 리뷰 답변의 길이가 유효한지 체크하는 변수의 이름을 의미를 잘 드러내도록 수정 * refactor: 공통 버튼의 타입별 스타일을 함수로 분리 * style: api 호출 함수명 컨벤션에 맞게 수정 * chore: 불필요한 PropsWithChildren import 제거 --------- Co-authored-by: badahertz52 <[email protected]> * [FE] MSW를 mock server로 셋팅 (#95) * fix: stylelint를 통한 css 속성 정렬 기능 오류 수정 - stylelint 버전16과 충돌되는 플러그인 삭제 : stylelint-config-prettier, stylelint-prettier - css 정렬에 필요하지 않은 플러그인 삭제 : stylelint-config-standard, stylelint-config-styled-componented, stylelint-webpack-plugin - 추가로 설치한 플러그인: postcss-syntax, @stylelint/postcss-css-in-js - stylelint 적용 script 추가 - .stylelintrc.json 수정 : css 관련 rule 설정 * refactor: stylelint 적용에 따른 css 속성 정렬 * fix : 절대 경로 사용 시 오류 수정 오류 : eslintimport/no-unresolved * chore: eslintrc.cjs 에서 불필요한 코드 삭제 node 환경 setting 삭제 * style: eslint 적용에 따른 리뷰 상세페이지 import 순서 정리 * refactor: formatDate를 utils/date 파일로 이동 * design: theme에 colors,, fontSize 변경 및 borderRadius 추가 * feat: MultilineTextViewer 컴포넌트 생성 - 개행이 포함된 string에 개행을 적용해서 보여주는 컴포넌트 * feat: 깃허브 저장소 이미지 컴포넌트 생성 * feat: 리뷰와 관련된 날짜 UI 컴포넌트 생성 * featr: LockButton 삭제 LockToggle 추가 * refactor: 피그마 디자인 변경에 따른 ReviewDescription 변경 * feat: ReviewComment 컴포넌트 생성 * refactor: ReviewViewSection -> ReviewSection 으로 변경 및 리팩토링 - 불필요한 컴포넌트 삭제 : RevieAnswer , ReviewQuestion * refactor: DetailedReviewPage 리팩토링 - 목데이터 변경 - 추가 및 변경된 컴포넌트를 사용해 리뷰 상세페이지 컴포넌트(DetailedReviewPage) 리팩토링 - DetailedReviewPage 폴더의 styles.ts 삭제 * refactor: review에 대한 타입 변경 * design : ReviewDate의 클론 스타일 적용 * feat: KeywordSection 컴포넌트 생성 - 리뷰 상세 페이지 키워드 부분 컴포넌트 생성 * feat: ReviewSectionHeader 컴포넌트 생성 및 적용 - 리뷰 상세보기에서 반복되는 질문,키워드 헤더부분을 컴포넌트로 분리 * design : 리뷰 상세페이지에 width 변경 * refactor: DetailedReview의 목데이터 변경 및 리팩토링 - 타입 변경에 따른 목 데이터 변경 - KeywordSection 적용 * design : formWidth를 theme에 추가 및 리뷰 작성/리뷰 상세 페이지에 적용 * fix: Layout에서 가로 스크롤 생기는 오류 수정 - 100vw는 스크롤을 포함한 뷰포트 너비라서 100%으로 수정 * feat: 리뷰 상페이지 router에 라우터 파라미터 적용 및 관련 설정 변경 - 데모데이를 위해 현재 데이터베이스에 있는 리뷰 상세페이지 id를 sidebar의 리뷰 상세페이지 메뉴 link에 적용 - 리뷰 상세페이지(DetailedReviewPage)의 api 핸들러 수정 * docs: 변수명 변경 (isLock -> isPublic) * refactor: 깃헙 저장소 로고 주소 변수명 변경 - projectImgSrc -> thumbnailUrl * ci: msw 관련 패키지 설치 * ci: msw 관련 설정파일 추가 - 브라우저 환경, node 환경에서 msw로 목서버 사용할 수 있도록 관련 파일 추가 * feat: mock 핸들러 추가 및 상세 리뷰 페이지 목 데이터 추가 * feat: root에서 목서버 사용할 수 있도록함 * refactor: endpoint 수정 - env 에서 서버 주소 끝에 슬래시 넣는 것으로 통일 * feat: 상세 리뷰 페이지(detailedReviewPage)에 목서버 연결 및 관련 코드 수정 - 상태명 변경: detailReview -> detailedReview - detailedReview 타입에 null 추가 및 그에 따른 오류 핸들링 추가 - deadline에 string 타입으로 response로 전달되어서 new Date로 감싸서 props로 전달 * docs: indexhtml의 title 변경 * style: apis/review.ts 의 import 관련 eslint rule 적용에 따른 수정 * fix: ts에서 process 읽지 못하는 오류 수정 * fix: webpack dev server script 복원 * [FE] 상세 리뷰 페이지 : url router 연동, 변경된 디자인 반영 및 서버에서 api를 연동 (#91) * fix: stylelint를 통한 css 속성 정렬 기능 오류 수정 - stylelint 버전16과 충돌되는 플러그인 삭제 : stylelint-config-prettier, stylelint-prettier - css 정렬에 필요하지 않은 플러그인 삭제 : stylelint-config-standard, stylelint-config-styled-componented, stylelint-webpack-plugin - 추가로 설치한 플러그인: postcss-syntax, @stylelint/postcss-css-in-js - stylelint 적용 script 추가 - .stylelintrc.json 수정 : css 관련 rule 설정 * refactor: stylelint 적용에 따른 css 속성 정렬 * fix : 절대 경로 사용 시 오류 수정 오류 : eslintimport/no-unresolved * chore: eslintrc.cjs 에서 불필요한 코드 삭제 node 환경 setting 삭제 * style: eslint 적용에 따른 리뷰 상세페이지 import 순서 정리 * refactor: formatDate를 utils/date 파일로 이동 * design: theme에 colors,, fontSize 변경 및 borderRadius 추가 * feat: MultilineTextViewer 컴포넌트 생성 - 개행이 포함된 string에 개행을 적용해서 보여주는 컴포넌트 * feat: 깃허브 저장소 이미지 컴포넌트 생성 * feat: 리뷰와 관련된 날짜 UI 컴포넌트 생성 * featr: LockButton 삭제 LockToggle 추가 * refactor: 피그마 디자인 변경에 따른 ReviewDescription 변경 * feat: ReviewComment 컴포넌트 생성 * refactor: ReviewViewSection -> ReviewSection 으로 변경 및 리팩토링 - 불필요한 컴포넌트 삭제 : RevieAnswer , ReviewQuestion * refactor: DetailedReviewPage 리팩토링 - 목데이터 변경 - 추가 및 변경된 컴포넌트를 사용해 리뷰 상세페이지 컴포넌트(DetailedReviewPage) 리팩토링 - DetailedReviewPage 폴더의 styles.ts 삭제 * refactor: review에 대한 타입 변경 * design : ReviewDate의 클론 스타일 적용 * feat: KeywordSection 컴포넌트 생성 - 리뷰 상세 페이지 키워드 부분 컴포넌트 생성 * feat: ReviewSectionHeader 컴포넌트 생성 및 적용 - 리뷰 상세보기에서 반복되는 질문,키워드 헤더부분을 컴포넌트로 분리 * design : 리뷰 상세페이지에 width 변경 * refactor: DetailedReview의 목데이터 변경 및 리팩토링 - 타입 변경에 따른 목 데이터 변경 - KeywordSection 적용 * design : formWidth를 theme에 추가 및 리뷰 작성/리뷰 상세 페이지에 적용 * fix: Layout에서 가로 스크롤 생기는 오류 수정 - 100vw는 스크롤을 포함한 뷰포트 너비라서 100%으로 수정 * feat: 리뷰 상페이지 router에 라우터 파라미터 적용 및 관련 설정 변경 - 데모데이를 위해 현재 데이터베이스에 있는 리뷰 상세페이지 id를 sidebar의 리뷰 상세페이지 메뉴 link에 적용 - 리뷰 상세페이지(DetailedReviewPage)의 api 핸들러 수정 * docs: 변수명 변경 (isLock -> isPublic) * refactor: 깃헙 저장소 로고 주소 변수명 변경 - projectImgSrc -> thumbnailUrl * refactor: 리뷰 상세 페이지 api 변경에 따른 수정 - 리뷰 상세 페이지 keyword 타입 변경 - api endpoint 변경 , router 변경, sidebar 상세보기 경로 변경 - useState에 빈 값에 대한 타입 추론 사용 * [BE] test: 도메인 연관관계 재설정 후 테스트 작성 (#101) * test: 리뷰어 그룹 테스트 작성 * refactor: 리뷰 작성 테스트를 `ReviewTest`로 이동 * test: 리뷰어 중복 추가 테스트 * refactor: Test Fixture 사용하도록 수정 * refactor: 예외 클래스명 통일 * style: 테스트 개행 * refactor: 테스트명 명확하게 수정 * refactor: 회원 도메인에서의 비교를 GithubId로 진행하도록 수정 * refactor: createdAt 사용하지 않고, deadline으로 수정 * refactor: 필드명 reviewerGithubIds로 통일 * test: 리뷰어 중복 생성 검증 * refactor: reviewer/reviewee 통일 * refactor: 리뷰어-리뷰이 github id를 명시 * refactor: 테스트에 하나의 검증만 진행되도록 수정 * [FE] feat: 리뷰 목록 페이지 기능 구현 (#90) * fix: stylelint를 통한 css 속성 정렬 기능 오류 수정 - stylelint 버전16과 충돌되는 플러그인 삭제 : stylelint-config-prettier, stylelint-prettier - css 정렬에 필요하지 않은 플러그인 삭제 : stylelint-config-standard, stylelint-config-styled-componented, stylelint-webpack-plugin - 추가로 설치한 플러그인: postcss-syntax, @stylelint/postcss-css-in-js - stylelint 적용 script 추가 - .stylelintrc.json 수정 : css 관련 rule 설정 * refactor: stylelint 적용에 따른 css 속성 정렬 * fix : 절대 경로 사용 시 오류 수정 오류 : eslintimport/no-unresolved * chore: eslintrc.cjs 에서 불필요한 코드 삭제 node 환경 setting 삭제 * feat: DropDown 컴포넌트 구현 - 사용자 선택을 위한 `DropDown` 컴포넌트를 구현 - `onChange` 이벤트 핸들러와 `options` 배열을 사용하여 옵션을 동적으로 표시 Co-Authored-By: badahertz52 <[email protected]> Co-Authored-By: ImxYJL <[email protected]> Co-Authored-By: Fe <[email protected]> * chore: svg 아이콘 크기 수정 Co-Authored-By: badahertz52 <[email protected]> Co-Authored-By: ImxYJL <[email protected]> Co-Authored-By: Fe <[email protected]> * design: Topbar UI 수정 Co-Authored-By: badahertz52 <[email protected]> Co-Authored-By: ImxYJL <[email protected]> Co-Authored-By: Fe <[email protected]> * design: 버튼, 검색창 UI 수정 후 export Co-Authored-By: badahertz52 <[email protected]> Co-Authored-By: ImxYJL <[email protected]> Co-Authored-By: Fe <[email protected]> * feat: ReviewPreviewCard 컴포넌트 구현 - 리뷰 미리보기 카드 컴포넌트 구현 - 리뷰어 그룹 이름, 생성일, 리뷰 내용 미리보기, 키워드, 공개 여부를 표시 Co-Authored-By: badahertz52 <[email protected]> Co-Authored-By: ImxYJL <[email protected]> Co-Authored-By: Fe <[email protected]> * chore: ReviewPreview 인터페이스 추가 - 리뷰 미리보기 데이터 구조를 정의하는 `ReviewPreview` 인터페이스를 추가했습니다. Co-Authored-By: badahertz52 <[email protected]> Co-Authored-By: ImxYJL <[email protected]> Co-Authored-By: Fe <[email protected]> * feat: SearchSection 컴포넌트 구현 - 검색 입력창, 검색 버튼, 드롭다운을 포함하여 검색 기능을 구현 Co-Authored-By: badahertz52 <[email protected]> Co-Authored-By: ImxYJL <[email protected]> Co-Authored-By: Fe <[email protected]> * feat: ReviewPreviewListPage 구현 및 모의 데이터 추가 - `ReviewPreviewListPage` 컴포넌트 구현 - `SearchSection`을 포함하여 검색 기능을 구현 - `ReviewPreviewCard`를 사용하여 리뷰 목록을 표시 - 모의 데이터(`mockReviewPreviews`) 추가 Co-Authored-By: badahertz52 <[email protected]> Co-Authored-By: ImxYJL <[email protected]> Co-Authored-By: Fe <[email protected]> * chore: import 중복 및 순서 정리, ReviewPreviewListPage 라우트 추가 Co-Authored-By: badahertz52 <[email protected]> Co-Authored-By: ImxYJL <[email protected]> Co-Authored-By: Fe <[email protected]> * chore: 여러 개의 요소를 감싸기 때문에 Container로 변경 Co-Authored-By: badahertz52 <[email protected]> Co-Authored-By: ImxYJL <[email protected]> Co-Authored-By: Fe <[email protected]> * feat: 리뷰 목록 데이터를 서버에서 가져오기 위해 getReviewListApi 함수 추가 Co-Authored-By: badahertz52 <[email protected]> Co-Authored-By: ImxYJL <[email protected]> Co-Authored-By: Fe <[email protected]> * refactor: 상세 리뷰 불러오기 api 엔드포인트 수정 Co-Authored-By: badahertz52 <[email protected]> Co-Authored-By: ImxYJL <[email protected]> Co-Authored-By: Fe <[email protected]> * refactor: 상세 리뷰 페이지 API 연동 부분 수정 Co-Authored-By: badahertz52 <[email protected]> Co-Authored-By: ImxYJL <[email protected]> Co-Authored-By: Fe <[email protected]> --------- Co-authored-by: badahertz52 <[email protected]> Co-authored-by: ImxYJL <[email protected]> Co-authored-by: Fe <[email protected]> * [BE] feat: 리뷰 작성 API 구현 (#102) * refactor: 리뷰 요청 dto 수정 * refactor: 리뷰 콘텐츠 생성 시, 리뷰에 자신을 추가하도록 변경 * feat: QuestionRepository 추가 * feat: 리뷰 작성 기능 추가 * test: 리뷰 작성 테스트 추가 * refactor: ReviewGroup 생성 시, GithubIdReviewerGroup도 같이 저장되도록 변경 * refactor: GithubId equals 및 hashcode 재정의 * refactor: review 생성 시, reviewGroup이 null이 아니도록 변경 * refactor: EqualsAndHashCode에 id 명시 * refactor: reviewee를 reviewerGroup 통해서 받아오도록 변경 * refactor: 파라미터 long 타입으로 변경 * test: 사용하지 않는 변수 제거 * test: 파라미터별로 개행하도록 변경 * refactor: ReviewerGroupGithubIds의 reviewerGithubIds를 CascadeType.PERSIST로 변경 * chore: 다른 작업에서 진행될 사항으로 사용하지 않는 테스트 삭제 * [FE] Github Actions로 CI 구축 (#96) * ci: CI를 위한 yml 파일 작성 * ci: yarn.lock 경로 추가 * ci: working-directory 추가 * cI: 동작 테스트를 위해 push 브랜치 경로 조건에서 frontend 임시 제거 * ci: 테스트를 위해 현재 브랜치도 조건에 추가 * ci: package에 test 명령어 추가 * ci: yarn.lock 파일 업데이트 * ci: 테스트 파일 형식 수정 * chore: 필요없는 파일 삭제 * chore: svg 파일을 대문자로 import한 것들 소문자로 수정 * ci: 웹팩 env 설정 업데이트 * ci: process.env 사용을 위한 타입 설정 * ci: env 웹팩 설정 경로를 절대 경로로 변경 * ci: env 웹팩 설정 경로 수정 * ci: env 절대경로 수정 * ci: 절대경로 수정 2 * ci: 읽기 권한을 명시적으로 주고 테스트 * ci: dist 파일 테스트 * ci: CI 환경에서도 env 파일 생성 * ci: 배포 정상 동작 확인을 위한 github pages 임시 배포 설정 * ci: 임시 배포 코드 삭제 * ci: develop 브랜치로 frontend 이하 경로에서 PR이 올라올 때 CI가 실행되도록 수정 * ci: node 설치 에러 해결 * [BE] feat: 리뷰에 필요한 정보 조회 기능 추가 (#103) * test: QuestionTestFixture 생성 * feat: 모든 리뷰 문항을 조회하는 기능 구현 * feat: 모든 키워드를 조회하는 기능 구현 * test: ReviewerGroupFixture 생성 * feat: 리뷰 생성 시 필요한 리뷰어 그룹 정보를 조회하는 기능 구현 * feat: 리뷰 생성 시 필요한 정보를 조회하는 기능 구현 * refactor: @ServiceTest 적용 * refactor: swagger 적용 * refactor: 필드명 변경 * style: 개행 추가 * refactor: 날짜 형식 변경 * test: import문 제거 * refactor: ReviewCreationResponse 패키지 변경 * refactor: readOnly 트랜잭션 적용 * fix: 리뷰어 중복 검증 임시 제거 --------- Co-authored-by: donghoony <[email protected]> * [FE] 리뷰 작성 페이지에서 MSW를 사용하여 서버 mocking (#111) * chore: 중복된 인터페이스 제거 * feat: MSW 핸들러 및 mock data 추가 * chore: 리뷰 쓰기 페이지 데이터 endpoint 수정 * feat: 리뷰 작성 페이지에 msw를 적용하여 서버 mocking * merge * [FE] 공통 컴포넌트인 모달을 만든다. (#110) * fix: stylelint를 통한 css 속성 정렬 기능 오류 수정 - stylelint 버전16과 충돌되는 플러그인 삭제 : stylelint-config-prettier, stylelint-prettier - css 정렬에 필요하지 않은 플러그인 삭제 : stylelint-config-standard, stylelint-config-styled-componented, stylelint-webpack-plugin - 추가로 설치한 플러그인: postcss-syntax, @stylelint/postcss-css-in-js - stylelint 적용 script 추가 - .stylelintrc.json 수정 : css 관련 rule 설정 * refactor: stylelint 적용에 따른 css 속성 정렬 * fix : 절대 경로 사용 시 오류 수정 오류 : eslintimport/no-unresolved * chore: eslintrc.cjs 에서 불필요한 코드 삭제 node 환경 setting 삭제 * style: eslint 적용에 따른 리뷰 상세페이지 import 순서 정리 * refactor: formatDate를 utils/date 파일로 이동 * design: theme에 colors,, fontSize 변경 및 borderRadius 추가 * feat: MultilineTextViewer 컴포넌트 생성 - 개행이 포함된 string에 개행을 적용해서 보여주는 컴포넌트 * feat: 깃허브 저장소 이미지 컴포넌트 생성 * feat: 리뷰와 관련된 날짜 UI 컴포넌트 생성 * featr: LockButton 삭제 LockToggle 추가 * refactor: 피그마 디자인 변경에 따른 ReviewDescription 변경 * feat: ReviewComment 컴포넌트 생성 * refactor: ReviewViewSection -> ReviewSection 으로 변경 및 리팩토링 - 불필요한 컴포넌트 삭제 : RevieAnswer , ReviewQuestion * refactor: DetailedReviewPage 리팩토링 - 목데이터 변경 - 추가 및 변경된 컴포넌트를 사용해 리뷰 상세페이지 컴포넌트(DetailedReviewPage) 리팩토링 - DetailedReviewPage 폴더의 styles.ts 삭제 * refactor: review에 대한 타입 변경 * design : ReviewDate의 클론 스타일 적용 * feat: KeywordSection 컴포넌트 생성 - 리뷰 상세 페이지 키워드 부분 컴포넌트 생성 * feat: ReviewSectionHeader 컴포넌트 생성 및 적용 - 리뷰 상세보기에서 반복되는 질문,키워드 헤더부분을 컴포넌트로 분리 * design : 리뷰 상세페이지에 width 변경 * refactor: DetailedReview의 목데이터 변경 및 리팩토링 - 타입 변경에 따른 목 데이터 변경 - KeywordSection 적용 * design : formWidth를 theme에 추가 및 리뷰 작성/리뷰 상세 페이지에 적용 * fix: Layout에서 가로 스크롤 생기는 오류 수정 - 100vw는 스크롤을 포함한 뷰포트 너비라서 100%으로 수정 * feat: 리뷰 상페이지 router에 라우터 파라미터 적용 및 관련 설정 변경 - 데모데이를 위해 현재 데이터베이스에 있는 리뷰 상세페이지 id를 sidebar의 리뷰 상세페이지 메뉴 link에 적용 - 리뷰 상세페이지(DetailedReviewPage)의 api 핸들러 수정 * docs: 변수명 변경 (isLock -> isPublic) * refactor: 깃헙 저장소 로고 주소 변수명 변경 - projectImgSrc -> thumbnailUrl * ci: msw 관련 패키지 설치 * ci: msw 관련 설정파일 추가 - 브라우저 환경, node 환경에서 msw로 목서버 사용할 수 있도록 관련 파일 추가 * feat: mock 핸들러 추가 및 상세 리뷰 페이지 목 데이터 추가 * feat: root에서 목서버 사용할 수 있도록함 * refactor: endpoint 수정 - env 에서 서버 주소 끝에 슬래시 넣는 것으로 통일 * feat: 상세 리뷰 페이지(detailedReviewPage)에 목서버 연결 및 관련 코드 수정 - 상태명 변경: detailReview -> detailedReview - detailedReview 타입에 null 추가 및 그에 따른 오류 핸들링 추가 - deadline에 string 타입으로 response로 전달되어서 new Date로 감싸서 props로 전달 * docs: indexhtml의 title 변경 * style: apis/review.ts 의 import 관련 eslint rule 적용에 따른 수정 * fix: ts에서 process 읽지 못하는 오류 수정 * fix: webpack dev server script 복원 * feat: ModalPortal 셍성 * feat: SideModal 컴포넌트, useSide 셍성 및 Sidebar에 적용 * feat: ModalBackground 컴포넌트 생성 및 적용 * fix: 모달 열릴 때 스크롤바 막는 기능 오류 수정 * design : ModalPortal 사이즈 단위 변경 (% -> vw, vh) * feat: Button 컴포넌트가 button 속성을 props로 받을 수 있도록 수정 * feat: ConfirmModal 생성 * refactor: index.tsx에서 모달을 꺼낼 수 있도록 리팩토링 * refactor: PropsWithChildren 수정 - PropsWithChildren를 import 하지 않고 React에서 바로 쓸 수 있도록 React.PropsWithChildren로 수정 * [FE] msw관련 env 오류 해결 (#114) * chore: fe/feat/105-review-writing-msw 의 endpoint 관련 변경사항 반영 * fix: NODE_ENV 관련 오류 수정 - 오류 : env 파일에 NODE_ENV가 없음에도 이를 인식하는 오류 발생 - 원인: 프레임워크에서 NODE_ENV를 기본적으로 가지고 있는 경우도 있다고 함 - 해결: NODE_ENV를 삭제하고 MSW를 사용 * [BE] feat: 내가 받은 리뷰 보기 기능 구현 (#109) * refactor: contains 작동을 위한 EqualsAndHashcode 추가 * fix: lazyInitialization 해결 * feat: 질문 레포지토리 생성 * feat: 내가 받은 리뷰 응답 생성 * refactor: 리뷰 항목과 질문의 연관관계 변경 및 답변 최대 글자수 DB에 반영 * refactor: 리뷰에 리뷰그룹 초기화 부분 추가 * feat: 내가 받은 리뷰 조회 기능 구현 * feat: 받은 리뷰가 없을 때의 응답 추가 * refactor: dto 설명 추가 * refactor: dto 설명 수정 * refactor: 인자 형식 수정, 개행 수정 * refactor: transactional 어노테이션 추가 * refactor: 내가 받은 리뷰 조회할 때Page객체 말고 List로 받아오도록 수정 * refactor: 미리보기 만드는 기능 도메인 안으로 이동 * test: 테스트 코드 개선 - 변수명 수정, save 여러개 대신 saveAll 사용 등 * refactor: 마지막으로 본 리뷰ID가 없는 로직에 대해 수정 - lastViewedReviewId를 입력하지 않으면 999같이 이상하게 큰 수를 넣어주는게 아니라, 가장 큰 값을 넣어주도록 수정 * docs: 스웨거 데코레이션 적용 * refactor: lastReviewId가 null 이어도 가장 최신 리뷰를 찾을 수 있도록 수정 * refactor: eqaulsAndHashCode 재정의 * refactor: eqaulsAndHashCode 재재정의 * refactor: API Docs 반영 --------- Co-authored-by: donghoony <[email protected]> * fix: 잘못 정의된 endpoint 수정 (#118) * [FE] 머지로 인해 사라진 리뷰 상세 페이지 변경 사항 복구 및 데이터 타입 변경 (#121) * refactor: 리뷰 상세 페이지 데이터 타입 변경 및 Keyword 타입 복구 * fix: 리뷰 상세 페이지의 path 복구 * fix: 사이드바의 리뷰 상세 페이지 경로 복구 * refactor: 리뷰 상세 페이지 데이터 타입 변경에 따른 목 데이터 변경 * fix: DetailedReviewPage 복구 및 데이터 타입 변경에 따른 수정 * [BE] 더미 데이터 추가, local 프로파일 관리 (#123) * refactor: Unauthorized 예외 처리 * chore: 더미 데이터 추가 및 Profile 처리 * chore: 테스트 yml 생성 * fix: Long notblank -> notnull (#126) * [FE] 리뷰 목록 페이지에서 msw를 사용하여 모킹 (#124) * feat: 리뷰 목록 페이지에서 msw를 사용하여 모킹 Co-Authored-By: badahertz52 <[email protected]> Co-Authored-By: ImxYJL <[email protected]> Co-Authored-By: Fe <[email protected]> * chore: 엔드포인트 baseurl에 '/' 추가 Co-Authored-By: badahertz52 <[email protected]> Co-Authored-By: ImxYJL <[email protected]> Co-Authored-By: Fe <[email protected]> --------- Co-authored-by: badahertz52 <[email protected]> Co-authored-by: ImxYJL <[email protected]> Co-authored-by: Fe <[email protected]> * fix: 리뷰 목록 DTO 필드 수정 (#129) * [FE] msw 모킹을 위한 리뷰 데이터 하드코딩 (#130) * refactor: msw 모킹을 위한 리뷰 데이터 하드코딩 Co-Authored-By: ImxYJL <[email protected]> * refactor: 2차 데모데이를 위한 멤버 아이디 상수화 Co-Authored-By: ImxYJL <[email protected]> Co-Authored-By: badahertz52 <[email protected]> Co-Authored-By: Fe <[email protected]> * chore: 불필요한 콘솔 로그 제거 Co-Authored-By: ImxYJL <[email protected]> Co-Authored-By: badahertz52 <[email protected]> Co-Authored-By: Fe <[email protected]> --------- Co-authored-by: ImxYJL <[email protected]> Co-authored-by: badahertz52 <[email protected]> Co-authored-by: Fe <[email protected]> * [FE] endPoint 오류와 리뷰 그룹 아이디 수정 (#132) * fix: endpoint 오류 수정 * fix: 리뷰 생성을 위한 데이터 받을 때의 리뷰 그룹 아이디를 1로 수정 * [BE] fix: 리뷰 미리 보기 생성 기능 수정 (#134) * fix: src/index.tsx에서 enableMocking 제거 (#136) * [FE] Children 속성이 필수인 타입 제작 (#147) * feat: children 속성이 필수인 EssentialPropsWithChildren 타입 생성 * chore: types 폴더의 index 파일에 누락됐던 export들 추가 및 그에 따른 types import문 경로 수정 * [FE] 사이드바 및 모달 사용성 개선 (#139) * refactor: 사이드바를 닫는 애니메이션 제거 * refactor: 사이드바가 더 빨리 열리도록 수정 * feat: 모달의 배경 클릭 및 esc 키를 눌렀을 때 모달이 닫히는 기능 추가 * chore: hooks index에 useModalClose 추가 * feat: 사이드바 리스트 아이템을 클릭했을 때 사이드바가 닫히는 기능 추가 * refactor: useModalClose 훅을 모든 모달의 공통 최상위 컴포넌트인 ModalBackground에서 처리하도록 수정 * refactor: ModalBackground를 클릭했을 때 모달이 닫히게 하는 이벤트 리스너를 document 대신 Background에 추가 * fix: esc를 사용해 모달을 닫았을 때 햄버거 버튼에 포커스가 생기는 문제 해결 및 변수명 대소문자 수정 * refactor: useEffect 내부 함수들을 훅 외부로 이동 및 주석 추가 * [FE] 존재하지 않는 element에 대한 에러를 출력하는 유틸리티 함수 제작 (#150) * feat: 존재하지 않는 element에 대한 에러를 출력하는 훅 제작 * chore: hooks 폴더 index에 useExistentElement 추가 * refactor: useExistentElement 훅을 더욱 범용적으로 사용할 수 있도록 수정 * refactor: 존재하지 않는 요소를 판별하는 동작을 커스텀 훅 대신 유틸리티 함수로 제작 * chore: 기존의 존재하지 않는 요소를 탐지하는 커스텀 훅 삭제 * [FE] HTTP 요청 오류 시 status code별 오류 상황을 대응하는 함수 생성 (#151) * feat: api 에러 시 표시한 메세지 생성 함수 추가 * refactor: api/review.ts에 api 오류 시 메세지를 반환하는 createApiErrorMessage 함수 적용 * docs: http 요청 실패 메세지 수정 * fix: 오타 수정 * [FE] 페이지 상단 이동 버튼 구현 (#153) * feat: top button 로직 훅으로 구현 * design: top button UI 구현 * chore: 각 페이지마다 top button이 보여지도록 설정 * chore: 컴포넌트 default로 export하도록 설정 * refactor: handler를 useEffect 외부로 분리 * chore: svg import 컨벤션에 맞추어 이름 수정 * [FE] feat: 에러, 로딩 페이지 구현 및 적용 (#155) * feat: 버튼 컴포넌트에 아이콘을 선택적으로 추가할 수 있도록 변경 - `icon` prop을 통해 버튼에 아이콘을 추가할 수 있도록 변경 * feat: 에러 페이지를 위한 ErrorSection 컴포넌트 구현 - 에러 로고, 메시지, 새로고침 및 홈 이동 버튼 제공 * feat: 라우터 설정에서 `errorElement`에 `ErrorPage` 컴포넌트를 추가 * feat: 버튼 클릭 시 새로고침 및 홈 이동 기능 추가 * feat: LoadingBar 컴포넌트 구현 * feat: 로딩 페이지 추가 및 적용 - 로딩 메시지 추가 - 리뷰 작성 페이지, 리뷰 목록 페이지, 리뷰 상세 페이지에 로딩 페이지 적용 * refactor: buttons 배열을 통해 버튼 생성 * refactor: 코드컨벤션에 맞게 코드 수정 및 imageDescription을 버튼 props에 추가 * refactor: boolean 타입추론 제거 * design: 에러 컴포넌트 화면 가운데 배치 * design: 로딩 컴포넌트 화면 가운데 배치 * [BE] refactor: 도메인 연관 관계 재정의 (#156) * refactor: 도메인 연관관계 재정의 및 사용하지 않는 도메인 삭제 Co-authored-by: nayonsoso <[email protected]> Co-authored-by: Kimprodp <[email protected]> Co-authored-by: hyeonjilee <[email protected]> * test: 사용하지 않는 테스트 삭제 Co-authored-by: nayonsoso <[email protected]> Co-authored-by: Kimprodp <[email protected]> Co-authored-by: hyeonjilee <[email protected]> * fix: 예약어 사용하지 않도록 수정 Co-authored-by: nayonsoso <[email protected]> Co-authored-by: hyeonjilee <[email protected]> * refactor: Review 도메인에서 reviewee 필드 제거 Co-authored-by: nayonsoso <[email protected]> Co-authored-by: hyeonjilee <[email protected]> * refactor: 리뷰 저장 기능 구현 Co-authored-by: nayonsoso <[email protected]> Co-authored-by: hyeonjilee <[email protected]> * refactor: 키워드 저장 기능 구현 Co-authored-by: nayonsoso <[email protected]> Co-authored-by: hyeonjilee <[email protected]> * refactor: 리뷰 생성 요청 객체 구현 Co-authored-by: nayonsoso <[email protected]> Co-authored-by: hyeonjilee <[email protected]> * test: 리뷰, 리뷰 내용 도메인 테스트 추가 Co-authored-by: nayonsoso <[email protected]> Co-authored-by: hyeonjilee <[email protected]> * refactor: 리뷰 작성 시 질문 검증 Co-authored-by: nayonsoso <[email protected]> Co-authored-by: hyeonjilee <[email protected]> * fix: Review의 reviewGroupId 컬럼명 수정 * refactor: 리뷰 생성 시, 키워드 검증을 객체 분리 * refactor: 리뷰 생성 시, 질문 검증을 객체 분리 * style: 코드 재정렬 * test: 리뷰 생성 검증 테스트 추가 * refactor: 사용하지 않는 클래스 삭제 * refactor: keyword 관련 사용하지 않는 클래스 삭제 * refactor: review 관련 사용하지 않는 클래스 삭제 * refactor: 데이터 초기화 객체 수정 * test: 사용하지 않는 테스트 삭제 * refactor: 예외 메세지 말투 통일 * refactor: 사용하지 않는 예외 제거 * refactor: 예외 클래스 패키지 변경 * refactor: NOT NULL 제약조건 추가 * refactor: 테스트에서만 사용되는 함수 제거 * refactor: 테스트 실행 시 발생하는 LazyInitializationException 해결 * refactor: 키워드 검증 함수 순서 변경 * chore: 테스트 코드 컨벤션 통일 * refactor: reviewRequestCode 검증 로직 이동 * refactor: 필드인 questionRepository를 사용하도록 변경 * refactor: 리뷰이, 프로젝트 이름 길이 검증 함수 분리 * test: 리뷰 저장 시 reviewKeywor 저장 검증 추가 --------- Co-authored-by: nayonsoso <[email protected]> Co-authored-by: Kimprodp <[email protected]> * [All] infra: 디스코드 웹훅 사용해 PR 생성/코멘트 시 멘션 (#169) * feat: PR Request 생성 / Comment 시 디스코드 멘션 * fix: Case-sensitive ID로 해결, ALL webhook 추가 * fix: remove whitespace * chore: rename workflow * fix: fix shell script * fix: step statement * fix: remove trailing whitespace after equals sign * [BE] feat: 리뷰 그룹 생성 API 구현 (#163) * feat: 랜덤한 문자열 생성기 구현 Co-authored-by: donghoony <[email protected]> * feat: 리뷰 그룹 생성 요청, 응답 형식 Co-authored-by: donghoony <[email protected]> * feat: 리뷰 그룹 생성 Co-authored-by: hyeonjilee <[email protected]> Co-authored-by: nayonsoso <[email protected]> * feat: 리뷰 작성 컨트롤러 Co-authored-by: hyeonjilee <[email protected]> Co-authored-by: nayonsoso <[email protected]> --------- Co-authored-by: nayonsoso <[email protected]> Co-authored-by: hyeonjilee <[email protected]> * [BE] refactor: 리뷰 작성을 위한 정보 요청 기능 리팩터링 (#162) * refactor: 불필요한 update 방지 * feat: controller에 리뷰 생성 요청에 대한 응답 기능 구현 * feat: controller에 리뷰 작성을 위해 필요한 정보를 응답 기능 구현 * feat: service에 리뷰 작성을 위해 필요한 정보 조회 기능 구현 * chore: 사용하지 않는 dto 삭제 * test: 리뷰 리뷰 작성을 위해 필요한 정보 조회 기능 테스트 작성 * refactor: swagger 설정 일부 수정 및 에러 응답코드 노출되도록 변경 * refactor: service에서 원시타입 long을 반환하도록 변경 * docs: api 문서 dto 항목설명 변경 * test: 사용하지 않는 변수 선언하지 않도록 변경 * docs: api 문서 검증 내용에 대한 어체 변경 * refactor: 트랜잭션 조회 명시 추가 * refactor: dto 이름 변경 * [FE] 리뷰 상세 페이지에 react-query 추가 및 리팩토링 (#161) * fix: src/index.tsx에서 enableMocking 제거 * feat: 리뷰 그룹 생성 시 코멘트 컴포넌트명 변경 및 기본값 설정 - 컴포넌트명 변경: RevewComment -> ReveweeComments - reviewGroup의 description이 빈문자열이면 기본값을 보여주는 것으로 변경 * refactor: 서버 DB에 있는 리뷰 데이터를 사용하기 위한 상수화 - 현재 DB에 있는 리뷰 데이터를 목 서버에서도 사용하고, 사이드바 페이지 이동 시에도 활용할 수 있도록 관련 value들을 상수화 함 * feat : QueryClient, QueryClientProvider 적용 - src/index.tsx에 QueryClient, QueryClientProvider 적용 * fix: dependencies에 있는 테스트 패키지들을 devDependencies로 옮김 * feat: 리뷰 상세페이지에 react-query 적용 * feat : msw에 리뷰 상세페이지 404 오류 추가 * ci: react-error-boundary 설치 * feat: Outlet에 QueryErrorResetBoundary,ErrorBoundary, Suspense 적용 * feat: 리뷰 상세페이지에 useSuspenseQuery 적용 * refactor: 리뷰 상세페이지 resource, queryString key 상수화 * refactor: 리뷰 상세페이지 react-query key 상수화 * refactor: 리뷰 상세 페이지 컴포넌트 속에서만 사용하는 상수들 상수화 * refactor: DetailedReviewPage/components에 index.tsx를 추가해 import 경로 간결하게 수정 * feat: error 전파를 위한 QueryClient 옵션 추가 - react-query의 query, mutation에서 error가 전파되도록 QueryClient 옵션 설정 * fix: ErrorPage의 SideModal에 closeModal props로 줌 * refactor: ErrorSection 위치 변경(src/pages/ErrorPage -> src/components/error) * feat: ErrorFallback 컴포넌트 생성 * feat: ErrorSuspenseContainer 생성 및 App.tsx에 적용 * chore: constants/index.ts export 경로 변경 - 중복되는 apiErrorMessage 삭제 - queryKeys 추가 * chore: 3차-1주차 핵심 기능 시현 때 필요 없는 코드 주석 처리 * docs: ErrorPage의 ERROR_MESSAGE 수정 * design: formWidth 변경 및 fontSize에 1.4rem 추가 * feat: 리뷰 상세 페이지에 리뷰이 이름 추가 - 리뷰 상세 페이지 목데이터, 데이터 타입에 리뷰이 이름 추가 - 리뷰 상세 페이지 컴포넌트에 리뷰이 이름 추가 및 관련 스타일 추가 * refactor: 불필요한 export 삭제 * chore: type명 수정 (RevieweeCommentProps =>RevieweeCommentsProps) * refactor: ErrorSection으l Button 수정 * refactor: 리뷰 상세 페이지 데이터 타입 변경에 따른 수정 * refactor: ErrorSuspenseContainer 적용 위치 변경 - App가 아닌 router의 element에서 적용하는 것으로 변경 * refactor: 리뷰 상세 페이지 데이터 타입 강제 방법 변경 * chore: 불필요한 주석 삭제 * refactor: ErrorSection의 buttons 네이밍 변경 및 요소에 key 추가 - buttons -> buttonList * chore: 스타일 주석에 NOTE 추가 * [BE] feat: 리뷰 목록 조회 (#179) * feat: 리뷰 미리보기 Co-authored-by: nayonsoso <[email protected]> * feat: 내가 받은 리뷰 목록 응답 생성 Co-authored-by: donghoony <[email protected]> * feat: 리뷰 목록 조회 Co-authored-by: nayonsoso <[email protected]> * refactor: Cascade 적용으로 불필요한 save 제거 Co-authored-by: nayonsoso <[email protected]> * refactor: 리뷰 미리보기 생성 객체 도출 Co-authored-by: nayonsoso <[email protected]> --------- Co-authored-by: nayonsoso <[email protected]> * fix: 브라우저 타이틀 오타 수정 (#167) * [BE] feat: 리뷰 상세 조회 기능 구현 (#182) * feat: 컨트롤러 리뷰 상세 조회 api 응답 기능 구현 * feat: 리뷰 상세 조회 api 응답 객체 구현 * refactor: 리뷰 상세 조회 api 응답 객체명 변경 * feat: 서비스 리뷰 상세 조회 기능 구현 * test: 리뷰 상세 조회 기능 테스트 추가 * style: 오타 및 개행 수정 * refactor: 날짜 응답 시, 일자까지만 응답하도록 변경 * refactor: 리뷰 조회 권한 검증 로직을 repository 사용하도록 변경 * refactor: 검증메세지 변경 * refactor: 리뷰 서비스에서 리뷰 그룹을 찾을 수 없는 경우에 대한 예외 클래스 변경 * refactor: 리뷰 상세 조회 메서드명 변경 * refactor: 헤더명 상수화 * [FE] recoil을 통한 groupAccessCode 전역 상태 관리 (#180) * ci: recoil 설치 * feat: src/index.ts에 RecoilRoot 적용 * feat: groupAccessCode 에 대한 atom 상태 추가 * feat: useGroupAccessCode 훅 추가 - useGroupAccessCode : groupAccessCode의 atom 상태를 관리하는 훅 * [BE] 내가 받은 리뷰 목록을 최신순으로 조회한다. (#189) * fix: 날짜 순 정렬 * refactor: 사용하지 않는 변수 제거 --------- Co-authored-by: donghoony <[email protected]> * [BE] 초기 데이터 설정 (#187) * feat: 초기 데이터 설정 * build: CD 시 local profile 설정 --------- Co-authored-by: donghoony <[email protected]> * [FE] feat: Alert Modal과 Error Alert Modal 컴포넌트 구현 및 Button 컴포넌트 확장 (#165) * refactor: 공통 버튼 컴포넌트가 children과 style을 받도록 수정 * chore: error alert modal에서 사용할 primary 색상의 경고 삼각형 추가 * feat: ErrorAlertModal 컴포넌트 구현 * feat: AlertModal 컴포넌트 구현 * chore: 변경된 Button 컴포넌트의 구조에 맞게 코드 수정 * fix: AlertModal이 Esc 또는 background의 클릭으로 닫히지 않도록 수정 * chore: AlertModal과 ErrorAlertModal export * refactor: Button 컴포넌트가 type을 별도로 받도록 수정 및 기존의 buttonType을 styleType으로 변경 * refactor: background 클릭 또는 Esc 키를 통해 모달을 닫는 것을 분리 * refactor: AlertModal의 모달 닫는 정책을 props로 선택 가능하도록 수정 * refactor: ErrorAlertModal을 AlertModal을 사용해 구현 * refactor: 닫기 버튼 이외의 방법으로 모달을 닫을 수 있는지 여부와 handler를 props로 전달받도록 변경 * refactor: 비어있는 스타일 컴포넌트 제거 * [FE] 랜딩 페이지 퍼블리싱 및 디바운싱 함수 추가 (#181) * feat: Input 공통 컴포넌트 제작 * feat: LandingPage 제작 * fix: Input의 type을 text로 수정 * feat: debounce 함수 작성 * docs: debounce 함수에 TODO 주석 및 TSdoc 추가 외 간단한 if문 리팩토링 * chore: 잘못된 파일 구조 및 디렉토리명 수정 * chore: px을 rem으로 수정 * refactor: 동적 스타일링에 css 대신 styled 스타일 적용 * refactor: Input 스타일을 더욱 유연하게 받을 수 있도록 수정, 스타일 리터럴 제거 * refactor: Input에 적용된 커스텀 스타일링을 $style로 수정 * fix: undefined 리턴을 null 리턴으로 수정 * refactor: flex-direction에 별도의 커스텀 타입을 사용하는 대신 React 내장 타입을사용하도록 수정 * refactor: Input 컴포넌트에서 rest props 제거 * chore: 불필요한 import 제거 * [FE] feat: 리뷰 목록 페이지에 변경된 API 연동 후, 리액트 쿼리 적용 및 무한 스크롤 구현 (#192) * design: 리뷰 미리보기 카드 배경색 변경 및 전체 감싸는 div에 아래쪽 여백 추가 * refactor: 리뷰 목록 인터페이스 추가 및 수정 - ReviewPreviewList 인터페이스 추가 - size, lastReviewId, reviews 필드 추가 - ReviewPreview 인터페이스 수정 - keywords 필드를 Keyword[] 타입으로 변경 * chore: 닫힌 자물쇠로 아이콘 변경 * feat: 리뷰 목록 페이지에서 리액트 쿼리 적용 * refactor: 웹 접근성을 위한 alt, aria-label 추가 및 코드 컨벤션에 맞춰 코드 수정 * feat: 리뷰 미리보기 리스트 핸들러에 페이지네이션 로직 추가 - 기존의 단순 반환 핸들러에서 페이지네이션 기능을 포함한 핸들러로 수정 * feat: `SideModal` 컴포넌트에 `closeModal` prop 추가 * feat: 리뷰 목록 페이지에 무한 스크롤 기능 추가 * refactor: useReviewPreviewList 훅 생성하여 데이터 호출 로직 분리 * refactor: 불필요한 ButtonContainer 제거 * design: px을 rem으로 변경 * refactor: Button 컴포넌트에 key 추가 * feat: 리뷰이, 프로젝트명을 보여주는 DescriptionSection 컴포넌트 구현 * refactor: 리뷰 목록을 불러오는 api 변경 이슈로 인해 엔드포인트, fetch 함수 수정 * chore: fragment 제거 * refactor: api 변경에 따라 ReviewPreviewList, ReviewPreview 인터페이스 수정 * refactor: 변경된 api에 따라 props 수정 * refactor: reviewerGroup, isPublic 제거 * refactor: endPoint.gettingReviewList 호출 인자 변경 * refactor: DescriptionSection에서 ReviewInfoSection으로 컴포넌트명 변경 * refactor: useSuspenseQuery 적용 후, 무한스크롤 관련 코드 주석 처리 --------- Co-authored-by: badahertz52 <[email protected]> * [FE] feat: 리뷰 작성 페이지와 서버 및 모달 연동 (#191) * chore: 변경된 UI 적용 * design: 키워드 문항 안내 문구 수정 * feat: Textarea 공통 컴포넌트 뼈대 구현 * chore: 수정된 api 엔드포인트 및 queryparams 적용 * design: reset.ts 추가 설정 * chore: 변경된 api 문서에 맞게 타입 수정 * feat: 리뷰 작성 페이지와 모달 및 서버 연동 * chore: 사이드바 메뉴 클릭 시 이동할 path 수정 * fix: ConfirmModal에서 background 클릭 시 모달이 닫히지 않는 현상 수정 * design: AlertModal 및 ErrorAlertModal 디자인 수정 * chore: 리뷰 작성 및 작성 완료 페이지 라우터 추가 * chore: 불필요한 주석 제거 및 사이드바에서 리뷰 작성 메뉴 숨김 처리 * chore: 리뷰 제출 페이지 버튼 타입 명시 * chore: svg import 컨벤션에 맞게 수정 * [FE] 리뷰 목록 페이지, 리뷰 상세 페이지에서 로그인을 연동 (#193) * design: 리뷰 미리보기 카드 배경색 변경 및 전체 감싸는 div에 아래쪽 여백 추가 * refactor: 리뷰 목록 인터페이스 추가 및 수정 - ReviewPreviewList 인터페이스 추가 - size, lastReviewId, reviews 필드 추가 - ReviewPreview 인터페이스 수정 - keywords 필드를 Keyword[] 타입으로 변경 * chore: 닫힌 자물쇠로 아이콘 변경 * feat: 리뷰 목록 페이지에서 리액트 쿼리 적용 * refactor: 웹 접근성을 위한 alt, aria-label 추가 및 코드 컨벤션에 맞춰 코드 수정 * feat: 리뷰 미리보기 리스트 핸들러에 페이지네이션 로직 추가 - 기존의 단순 반환 핸들러에서 페이지네이션 기능을 포함한 핸들러로 수정 * feat: `SideModal` 컴포넌트에 `closeModal` prop 추가 * feat: 리뷰 목록 페이지에 무한 스크롤 기능 추가 * refactor: useReviewPreviewList 훅 생성하여 데이터 호출 로직 분리 * refactor: 불필요한 ButtonContainer 제거 * design: px을 rem으로 변경 * refactor: Button 컴포넌트에 key 추가 * feat: 리뷰 목록,리뷰 상세 페이지 api 핸들러에서 groupAccessCode를 header에 추가 * feat: DetailedReviewPage 에서 groupAccessCode 상태 적용 * feat: LoginRedirectModal 생성 * refactor: ErrorSection 리팩토링 * feat: 리뷰이, 프로젝트명을 보여주는 DescriptionSection 컴포넌트 구현 * refactor: 리뷰 목록을 불러오는 api 변경 이슈로 인해 엔드포인트, fetch 함수 수정 * feat: 리뷰 상세 페이지에 groupAccessCode 상태를 적용 - 리뷰 상세 페이지에 groupAccessCode 상태값이 있으면 api요청을 하고 없으면 LoginRedirectModal을 띄어서 로그인 유도하는 기능 추가 - DetailedPage/index.tsx에 있던 내용을 DetailedReivewPageContents로 이동 - DetailedPage/index.tsx에서 ErrorSuspenseContainer 실행하는 것으로 수정 * chore: fragment 제거 * refactor: api 변경에 따라 ReviewPreviewList, ReviewPreview 인터페이스 수정 * fix: 리뷰 상세 페이지 keyword 타입 변경에 따른 수정 * refactor: 변경된 api에 따라 props 수정 * refactor: reviewerGroup, isPublic 제거 * feat: ErrorFallback 의 홈 이동 경로 변경 * refactor: endPoint.gettingReviewList 호출 인자 변경 * refactor: DetailedReviewPage에서 groupAccessCode 가져오는 방식 변경 - useRecoilValue가 아닌 useGroupAccessCode에서 가져오는 것으로 변경 * refactor: DescriptionSection에서 ReviewInfoSection으로 컴포넌트명 변경 * refactor: ErrorPage에서 Home 이동 버튼을 유도하는 방식으로 변경 - route오류 메세지와 api오류 메세지를 errorMessage 파일에서 관리하도록 수정 - ErrorPage에서 errorMessage가 ROUTE_ERROR_MESSAGE이면 홈 버튼이 화면상에서 먼저 나오도록 수정 - 색상별 홈,refresh 아이콘 SVG 추가 * refactor: useSuspenseQuery 적용 후, 무한스크롤 관련 코드 주석 처리 * feat: 리뷰 목록 페이지 목 서버 핸들러 및 목데이터 수정 * feat: 리뷰 목록 페이지에 groupAccessCode 전역 상태 적용 * refactor: 불필요한 코드 삭제 * chore: 오타 수정 --------- Co-authored-by: soosoo22 <[email protected]> * [FE] feat: 랜딩 페이지 API 연동 (#196) * feat: 그룹 생성을 위한 엔드포인트 생성 및 리뷰 목록 엔드포인트, api 호출 함수 수정 * fix: CSSProperties 대신 커스텀 타입을 사용하던 인터페이스 수정 * feat: ReviewAccessForm에 모달 및 API 연결 * fix: 누락됐던 CopyIcon 파일 업로드 * feat: 확인 코드 입력 API 연동 * feat: 완전한 리뷰 작성 URL을 리턴하는 함수 작성 * [FE] fix: 누락됐던 버튼 리팩토링 및 엔드포인트 복구 (#199) * fix: 충돌 해결 과정에서 누락됐던 엔드포인트 복구 * fix: 버튼 리팩토링 반영 * feat: textarea에 최소 입력 글자 수를 만족하지 못한 경우 에러 메시지 표시 기능 구현 (#200) * feat: 리뷰 작성 완료 페이지에서 홈 버튼 추가 (#201) * docs: 리뷰미 소개글 작성 (#203) * [BE] refactor: 사용하지 않는 메서드 제거, 컨벤션 및 작은 리팩토링 (#206) * refactor: date를 review가 제공하도록 수정 * style: 컨벤션 적용 * refactor: 사용하지 않는 메서드 제거 * refactor: 메서드명 통일 * style: 불필요한 개행 제거 * [FE] jest 사용 시 node환경 속 msw 호환성 문제와 환경 변수 오류 해결 (#215) * ci: dependencies에서 jest 삭제 및 ts-jest 설치 * ci: jest에서 절대 경로 사용할 수 있도록 jest.config.js 추가 * chore: eslint적용 제외 파일에 jest.config.js, tsconfig.json 추가 * ci: jest의 testEnvioronment를 jsdom으로 설정 * fix: jest에서 msw ver2를 목서버로 사용 시 생기는 오류 수정 1. msw/node 를 읽지 못함 - jest.config.js의 testEnvironment 빈문자열 2. ReferentError: TextEnCoder is not defined - 해결 : jest.polyfills.js 추가 및 undici 설치 3. ReferenceError: ReadableStream is not defined - 해결 : undici 다운 그레이드 undici": "^6.19.5", -> "^5.0.0" * ci : jest에서 env 파일 읽을 수 있도록 dotenv 설치 및 jest에 적용 * [FE] 개발환경과 빌드환경에 따라 msw 실행 여부를 결정하도록 msw 실행 조건문 개선 (#221) * ci: 빌드 파일을 실행할 수 있는 http-server 패키지 설치 및 실행 명령어 추가 * fix:개발 환경과 빌드/배포 환경을 구분해 목 서버를 실행하도록 조건문 개선 * fix: 머지 충돌 시 yarn.lock 삭제한 거 복구 * [FE] 리뷰 상세페이지 query 훅 분리 및 HTTP 요청 테스트 진행 (#216) * refactor: DetailedPage/index.tsx 리팩토링 - early return를 사용해 코드의 가독성을 높임 * feat: useGetDetailedReview 훅 생성 및 DetailedReviewPageContents에 적용 * feat: useSearchParamAndQuery 훅 생성 및 DetailedPageContent에 적용 * refactor: 리뷰 상세페이지에서 id라고 사용했던 key값, params의 key를 reviewId로 변경 - DetailedReview의 router param을 id에서 reviewId로 변경 * ci: dependencies에서 jest 삭제 및 ts-jest 설치 * ci: jest에서 절대 경로 사용할 수 있도록 jest.config.js 추가 * chore: eslint적용 제외 파일에 jest.config.js, tsconfig.json 추가 * ci: jest의 testEnvioronment를 jsdom으로 설정 * refactor: useGetDetailedReview에서 query 결과를 모두 반환하는 방식으로 변경 * fix: jest에서 msw ver2를 목서버로 사용 시 생기는 오류 수정 1. msw/node 를 읽지 못함 - jest.config.js의 testEnvironment 빈문자열 2. ReferentError: TextEnCoder is not defined - 해결 : jest.polyfills.js 추가 및 undici 설치 3. ReferenceError: ReadableStream is not defined - 해결 : undici 다운 그레이드 undici": "^6.19.5", -> "^5.0.0" * ci : jest에서 env 파일 읽을 수 있도록 dotenv 설치 및 jest에 적용 * fix: mock 핸들러인 getDetailedReview 에서 중복된 쿼리 매개 변수 사용 수정 - 오류 상황: jest에서 msw 사용 시, get의 url에 파라미터 사용 시 중복된 쿼리 매개 변수 오류가 남 - 오류 메세지 ::Found a redundant usage of query parameters in the request handler - 해결: 리뷰 상세보기 페이지의 reviews까지의 url 상수를 만들고, get에서는 이 상수를 활용한 정규표현식으로 리뷰 상세보기 페이지로 오는 모든 요청을 가로챌 수 있도록 함 * refactor: getWrongDetailedReview 목서버 핸들러 및 관련 상수 삭제 - getDetailedReview에서 request를 분석해 http오류 여부를 결정함 * feat: queryClientWrapper 생성 - queryClientWrapper : msw를 사용한 jest 테스트에 queryWrapper로 사용 * test:리뷰 상세 페이지 api 요청 성공에 대한 테스트 추가 * fix: groupAccessCodeAtom의 기본값 원래대로 복구 * chore:queryClientWrapper 네이밍 표기법을 파스칼 케이스로 변경 * fix: 머지 충돌 방지를 위해 yarn.lock 삭제 * fix: 머지 시 yarn.lock 충돌 해결 * [FE] test: 리뷰 목록 페이지에 API 연동 테스트 추가 및 리팩토링 (#217) * chore: 리뷰 목록 페이지 관련 컴포넌트 및 인터페이스, 파일 이름 변경 * refactor: api 엔드포인트 상수 적용 * refactor: useGetReviewList 훅으로 분리 * test: 리뷰 목록 페이지 api 연동 테스트 추가 * chore: msw 모킹 코드 제거 * chore: 경로 index 제거 * fix: 중복된 import 및 불필요한 핸들러 제거 * chore: 엔드포인트 상수 제거 * [FE] refactor: 리뷰 작성 페이지 리팩토링 (#219) * refactor: 각 모달별로 상태와 동작을 관리하는 훅 분리 * refactor: 리뷰 작성 폼의 로직을 훅으로 분리 * refactor: 리뷰 작성 페이지에 분리한 훅 적용 * refactor: URL에서 reviewRequestCode를 추출하는 로직을 훅으로 분리 * chore: 불필요한 테스트용 코드 제거 * chore: ErrorModal을 닫을 때 errorMessage 상태도 초기값으로 변경하도록 수정 * [BE] feat: 헤더 존재 여부 검증 (#207) * fix: 인터페이스와 구현체 어노테이션 일치 * feat: 헤더 검사 어노테이션 * feat: 헤더 밸리데이터 * feat: 컨트롤러에 헤더 검사 * feat: 헤더 검증 메시지 클라이언트에 전달 * fix: 누락된 `@Valid` 어노테이션 추가 * refactor: 요청이 null인 경우 핸들링 * chore: 테스트 이름 간결하게 변경 * chore: 소문자 컨벤션 * feat: ArgumentResolver를 활용한 헤더 검증 * feat: 공용 패키지로 이동 및 범용적으로 사용할 수 있도록 수정 * chore: 사용하지 않는 import 제거 * feat: ArgumentResolver 적용, Validator 삭제 * chore: 사용하지 않는 커스텀 예외 원복 * refactor: 헤더 존재하지 않는 경우 메시지 수정 * chore: 불필요한 `@Valid` 어노테이션 삭제 * refactor: 변수 추출 Co-authored-by: Yeongseo Na <[email protected]> * fix: 컴파일 에러 해결 --------- Co-authored-by: Yeongseo Na <[email protected]> * ci: index.html에 구글 애널리틱스 적용 (#226) * [FE] ci: sentry 초기 설정 (#223) * ci: sentry 초기 설정 * chore: gitignore에 env.sentry-build-plugin 추가 * ci: sentry 적용 프로젝트를 woowacoure-review-me로 변경, 로컬 환경 추적하도록 변경 * ci: sentry 적용 환경을 배포 환경으로 다시 변경 * ci: sentry에서 replay 관련 설정 삭제 --------- Co-authored-by: badahertz52 <[email protected]> * [FE] refactor: LandingPage에 리액트 쿼리 적용 및 리팩토링 (#218) * chore: LandingPage의 styles 파일 분리 * fix: POST 요청을 하는 함수의 이름을 post~로 수정 * feat: 그룹 데이터 생성 요청에 대한 MSW 핸들러 추가 * refactor: 모킹 데이터 값을 더 직관적으로 수정 * refactor: LandingPage를 ErrorSuspenseContainer가 감싸도록 수정 * refactor: URL을 얻어오는 API에 react-query 적용 및 API 호출 함수 이름 수정 * chore: LandingPage 하위 컴포넌트들의 index 파일 추가 및 적용 * refactor: groupAccessCode 관련 msw 핸들러 추가 및 에러 상태(없는 코드 입력, 서버 에러)에 따른 에러 메세지를 출력하도록 수정 * refactor: groupAccessCode에 알파벳 대소문자와 숫자만 올 수 있도록 수정 * refactor: LandingPage에서 ErrorSuspenseContainer를 제거하고 대신 URLGeneratorForm만을 감싸도록 수정 * refactor: Input 컴포넌트의 onChange 이벤트 타입 수정 * refactor: Input 컴포넌트에 name 속성 추가 * refactor: 수정된 경로 반영 * refactor: usePostDataForUrl 쿼리에서 mutation을 리턴하도록 수정 * refactor: URL을 성공적으로 생성한 이후 Input을 리셋하는 함수 추가 * chore: NOTE 주석 추가 * refactor: getIsValidGroupAccessCodeApi에서 400 외의 에러 처리를 기존의 createApiErrorMessage를 사용하도록 수정 * chore: 누락됐던 -Api suffix 반영 * [BE] Actuator 적용과 logback 설정 (#228) * build: actuator 의존성 추가 * feat: 로그백 설정 * feat: submodule 적용 - actuator 설정을 서브 모듈에 저장 * style: 개행 및 주석 제거 * test: logback 설정 추가 * [FE] CD test (#233) * ci: sentry 초기 설정 * chore: 서비스 타이틀 대문자로 변경 * chore: merge * [BE] 프로파일 분리, CD 스크립트 수정 (#235) * feat: 프로파일 분리 * feat: 프로파일 분리 * cd: 프로파일 분리 cd 스크립트 수정 * fix: CD 스크립트 오타 수정 (#236) * [FE] CD test 2 (#237) * ci: sentry 초기 설정 * chore: 서비스 타이틀 대문자로 변경 * chore: merge * fix: sentry 재설정 * fix: sentry 설정 복구 * fix: cd 스크립트 오타 수정 (#238) * [FE] CD TEST 3 (#239) * ci: sentry 초기 설정 * chore: 서비스 타이틀 대문자로 변경 * chore: merge * fix: sentry 재설정 * fix: sentry 설정 복구 * chore: 서비스 타이틀 변경 * [BE] build: Micrometer 의존성 추가 (#244) * build: 마이크로미터 의존성 추가 Co-authored-by: hyeonjilee <[email protected]> Co-authored-by: nayonsoso <[email protected]> * chore: 서브모듈 업데이트 Co-authored-by: hyeonjilee <[email protected]> Co-authored-by: nayonsoso <[email protected]> --------- Co-authored-by: hyeonjilee <[email protected]> Co-authored-by: nayonsoso <[email protected]> * [FE] feat: 공통 컴포넌트인 체크박스와 체크박스 아이템 제작 (#240) * feat: 공통 체크박스 컴포넌트 작성 * feat: 체크박스에 레이블을 달 수 있는 CheckboxItem 컴포넌트 작성 * fix: style을 잘못 전달하던 문제 해결 * [BE] fix: CD 스크립트 수정 (#246) * fix: CD 스크립트 수정 * chore: 저장 데이터 dev에서 활용할 수 있도록 수정 * [FE] refactor: LandingPage 경로 변경 (#249) * refactor: LandingPage의 경로 변경 * refactor: App 에서 사이드바 주석 처리 * [BE] Swagger API 문서 업데이트 (#254) * docs: 리뷰 api 문서를 위한 swagger 어노테이션 추가 * refactor: 사용하지 않는 dto 삭제 * docs: api 문서에 최소 및 최대 설정 안내 추가 * docs: 리뷰 그룹 api를 위한 swagger 어노테이션 추가 * refactor: Spring에서 제공하는 APPLICATION_JSON_VALUE 사용 * [BE] feat: 예외에 대한 로그 작성 (#255) * feat: Controller advice 에 로깅 추가 * refactor: 스택 트레이스 로깅 추가 * feat: 리뷰그룹 생성시 길이 검증 로깅 추가 * feat: 답변 길이 검증 로깅 추가 * feat: 리뷰 그룹 코드 검증 검증 로깅 추가 * feat: 리뷰 조회 검증 검증 로깅 추가 * feat: 선택된 키워드 존재하지 않는 검증 로깅 추가 * feat: 중복 선택된 키워드 검증 로깅 추가 * feat: 키워드 조회 검증 로깅 추가 * feat: 선택 키워드 갯수 검증 로깅 추가 * feat: 선택된 질문 중복 검증 로깅 추가 * feat: 질문 조회 검증 로깅 추가 * feat: 중복 질문 검증 로깅 추가 * feat: 스프링 발생 예외 로깅에 메세지 추가 * feat: 인코딩 설정 * style: 개행 수정 Co-authored-by: Donghoon Lee <[email protected]> * style: 개행 및 공백 수정 * refactor: 불필요한 검증 제거 - 선택된 키워드와 질문이 DB에 있는지를 validator 에서 검증한 후에도, repository.getById 를 할 때 한번 더 검증이 들어간다. 따라서 'DB에 있는지'에 대한 검증을 validator 에서 할 필요는 없다는 판단 하에 해당 로직을 삭제한다. --------- Co-authored-by: Donghoon Lee <[email protected]> * [FE] refactor: Textarea를 사용하는 공통 장문형 답변 입력 컴포넌트 분리 (#252) * feat: 공통 textarea 컴포넌트 작성 * refactor: longReviewItem의 로직을 커스텀 훅으로 분리 * refactor: longReviewItem으로 이름 변경 및 컴포넌트 구현 * chore: 기존의 ReviewItem 제거 및 리뷰 작성 페이지에 LongReviewItem 적용 * [FE] refactor: 공용 모달 훅 추가 및 LongReviewItem 리팩토링 (#258) * feat: 모달 상태 관리 훅 추가 * refactor: LongReviewItem 컴포넌트가 외부의 event를 props로 받을 수 있도록 변경 * [FE] test: LandingPage에서 사용하는 API에 대한 테스트 작성 (#251) * chore: 불필요한 Fragment 제거 * test: LandingPage에서 사용하는 api 테스트 추가 * [FE] refactor: 리뷰 작성 페이지에 react query를 적용하고 API 연동 테스트 작성 (#256) * refactor: 리뷰 작성을 위한 데이터를 불러오는 로직에 react query 적용 * refactor: 리뷰 작성 후 게시 요청 로직에 useMutation 적용 * refactor: query key 상수화 및 리뷰 작성을 위한 데이터를 불러오는 로직을 useReviewForm에서 제거 * chore: 리뷰 작성 페이지에 ErrorSuspenseContainer 적용 * chore: styled component명 수정 * chore: 리뷰 작성을 위한 mock data를 변경된 api 형식에 맞게 수정 * chore: useGetDataToWrite가 더 많은 반환값을 제공하도록 수정 * test: useGetDataToWrite의 API 요청 테스트 작성 * chore: dataToWrite가 없는 경우 상태 기본값 지정 * chore: msw를 사용하여 리뷰 생성 post 요청 mocking * chore: 리뷰 정보 mocking data 생성 * chore: useMutationReview가 UseMutationResult 타입 객체를 반환하도록 설정 * test: useMutateReview의 API 요청 테스트 작성 * chore: useGetDataToWrite의 반환값을 구조 분해 할당으로 사용할 수 있도록 수정 * chore: LongReviewItem 컴포넌트 적용 * [FE] fix: 질문 번호가 잘못 출력되는 오류 및 리뷰 작성 완료 시 잘못된 경로로 이동하는 오류 수정 (#265) * fix: 질문 번호가 잘못 출력되는 오류 수정 * fix: 리뷰 작성 완료 시 잘못된 경로로 이동되는 문제 수정 * [BE] feat: 질문 리뷰이 이름으로 치환 (#262) * chore: cd 테스트 확인 코드 작성 (#272) * fix: 상세 내용 표시할 때 리뷰이 이름 치환 (#270) * [FE] feat: 클립보드 복사 컴포넌트 구현 (#261) * feat: 클립보드 복사 컴포넌트 구현 Co-authored-by: skylar1220 <[email protected]> * fix: 부모 요소의 너비에 따라 CopyTextButton이 작아지는 문제 해결 * refactor: ReviewGroupDataModal 스타일 조정 - 전체 크기 지정 및 gap 조정 * chore: 불필요한 padding 제거 * chore: index 파일에 CopyTextButton 추가 --------- Co-authored-by: skylar1220 <[email protected]> * [FE] chore: front_deploy를 develop에 반영 (#276) * [FE] feat: 질문 작성 페이지 QuestionCard, ReviewWritingCard 공통 컴포넌트를 만들고, 슬라이더 방식의 기능 추가 (#247) * chore: .gitignore에서 주석 제거 * feat: QuestionCard 컴포넌트 구현 * feat: ReviewWritingCard 컴포넌트 구현 * style: CSS 속성 순서 정렬 * refactor: 제목과 내용을 각각 Header와 Main 섹션으로 분리 * feat: 슬라이더 방식으로 질문 카드가 자연스럽게 전환되는 기능 추가 * design: pretendard 폰트 적용 * chore: 헤더 review me 대문자로 변경 * refactor: QuestionCard, ReviewWritingCard 폴더 위치 변경 - ReviewWritingFormPage의 components로 이동 * [FE] 질문 작정 페이지에 필요한 질문 목 데이터 및 카드의 상태 처리 (#263) * [BE] fix: CD 스크립트 수정 (#246) * fix: CD 스크립트 수정 * chore: 저장 데이터 dev에서 활용할 수 있도록 수정 * [FE] refactor: LandingPage 경로 …
- Loading branch information