Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* 투표 작성 페이지의 투표 선택지 컴포넌트 UI 구현 (#40) * feat: (#20) 삭제, 파일 업로드 버튼 컴포넌트 UI 구현 * feat: (#20) 이미지 업로드 버튼을 눌렀을 때 이미지 업로드 창이 나오도록 구현 및 파일명 변경 * feat: (#20) 투표 선택지 아이템 컴포넌트 UI 구현 * feat: (#20) 투표 선택지 작성 리스트 컴포넌트 UI 구현 * feat: (#20) 훅 테스트 코드 작성 시작 * test: (#20) 투표 선택지 작성에 사용하는 훅 테스트 작성 * feat: (#20) 투표 선택지 작성 훅 구현 * feat: (#20) 투표 선택지 작성 훅 적용 및 UI 구현 * feat: (#20) 50자 이상 적었을 때 사용자에게 안내 기능 구현 * feat: (#20) 사진의 이미지가 5MB가 넘어갈 경우 유저에게 안내하도록 구현 * design: (#20): 삭제 버튼을 감싼 태그가 항상 왼쪽의 공간을 차지하도록 CSS 변경 * refactor: (#20) svg 코드를 assets 폴더로 이동 후 import 하여 사용하도록 수정 회색 버튼을 cssText로 관리하여 공통으로 관리하도록 수정 * refactor: (#20) 코드 가독성을 위한 함수명, 변수명 수정 * design: (#20) 화면 크기에 따라 폰트, 버튼 사이즈 변경되도록 구현 * style: (#20) CSS 속성 순서 변경 및 불필요한 타입 선언 제거 * chore: (#20) 함수 동작 과정에 대한 설명 주석 추가 * chore: (#20) 테스트 문구 변경 * 공통 스타일링 속성 관리 및 페이지 라우팅 설정 (#42) * feat: (#38) 페이지 라우팅 세팅 webpack.common.js 의 output 설정 추가 constants 폴더에 path 상수화 routes 폴더에 route들 추가 App.tsx에서 RouterProvider로 각 페이지 접근 * chore: (#38) 프로젝트 이름으로 title 변경 * feat: (#38) global style에 reset.css 추가 * feat: (#38) theme 으로 공통 스타일링 관리 * chore: (#38) 폴더명 변경 * feat: (#38) storybook에 라우터 설정 추가 * feat: (#38) 팀 CSS 컨벤션에 따라 globalStyle, theme 내용 수정 * refactor: (#38) 각 페이지에 대한 URL 명시 --------- Co-authored-by: chsua <[email protected]> * 작성된 게시글 컴포넌트 구현_Feat/#24 (#53) * feat: (#24) post 관련 type 생성 * feat: (#24) post 관련 mockData 생성 * feat: (#24) 게시물 하나 컴포넌트 구현 * test: (#24) 게시물 컴포넌트 테스트 - 미리보기 여부, 투표 여부에 따라 4가지 테스트 생성 * refactor: (#24) 게시물 mockData 내용 변경 * fix: (#15) style component props를 인식하지 못하는 오류 수정 - 오류메세지: React does not recognize the `isSelected` prop on a DOM element - 해결방법: style을 위한 props은 앞에 $처리를 한다. * refactor: 선택지 리스트 프롭스 중 handleVoteClick 인수명 변경 - 수정전: voteId - 수정후: optionId * feat: (#24) msw 게시글 투표, 투표수정 api 모킹코드 작성 * feat: 선택지 클릭 시 api통신하는 이벤트 작성 - 현재 모킹이 원활하지 않음 - 모킹의 문제인지, 기존 코드의 문제인지 모름 * fix: (#24) 오타로 인한 스타일 미적용 오류 해결 * fix: 오타로 인한 patch mock이 안되는 오류 수정 - 원인: url 오타 * fix: 스토리북에서 mocking이 안되는 오류 해결 - parameters에 핸들러를 추가하여 해결 * style: (#24) 불필요한 코드 삭제 * refactor: (#24) 불분명한 게시글 컴포넌트의 클릭핸들러 인자명 수정. - 수정전: optionId - 수정후: newOptionId * refactor: (#24) 불분명한 게시글 게사자 속성명 수정. - 수정전: nick - 수정후: nickname * refactor: (#24) 투표하지 않았을 경우의 selectOptionID인 0 상수화 * refactor: 투표 선택지 수정 api 함수 인수 수정 * TimePicker Modal 구현 (#45) * refactor: (#34) 3개의 상태를 하나의 상태로 통합 일,시,분 3개의 상태를 하나의 객체로 합침 * refactor: (#34) TimePickerOptionList의 props로 state 전달 * chore: (#34) Modal 컴포넌트 스토리에 SquareButton import * refactor: (#34) 시간 단위 관련 상수 분리 * feat: (#34) TimePickerOption 컴포넌트 최초 렌더링 시 currentTime 으로 스크롤 세팅 * feat: (#34) 마감시간 모달 내 초기화 버튼 구현 * feat: (#34) 초기화 버튼 누르면 모달창 닫히도록 구현 * refactor: (#34) confirm 메서드 앞에 window 추가 * chore: (#34) 오타 수정 * design: (#34) 모달 닫기 버튼 css 속성 추가 * feat: (#34) 초기화 버튼을 누르면 각 시간 옵션이 0으로 스크롤되고, 모달을 닫지 않도록 구현 * Delete frontend/src/pages/Post directory 중복되는 폴더 삭제 * feat: (#59) 스켈레톤 UI 구현 (#60) * 투표 상세 통계 컴포넌트 제작_#54 (#56) * feat: (#54) 투표 통계 mockData 생성 * feat: (#54) 투표 통계 관련 type, interface 생성 - 나이대 type - 투표통계 총결과 interface * feat: (#54) 그래프 공통 스타일 생성 * feat: (#54) 막대 하나 그래프 구현 * test: (#54) 막대 하나 그래프 사이즈별 테스트 구현 * feat: (#54) 막대 두개 그래프 구현 * test: (#54) 막대 두개 그래프 사이즈별 테스트 구현 * design: (#54) 그래프 공통 스타일 수정 * feat: (#54) 라디오를 포함한 투표 통계 결과 그래프 컴포넌트 구현 * test: (#54) 라디오를 포함한 투표 통계 결과 그래프 컴포넌트 테스트 구현 * refactor: 라디오를 포함한 투표 통계결과 그래프 컴포넌트명/폴더명 변경 - VoteResult -> VoteStatistics - 수정이유: 투표결과 데이터 타입명과 중복 * style: (#54) styled component 파일 컨벤션에 맞춰 순서 수정 * refactor: (#54) 통계 컴포넌트 타입/인터베이스 오타 수정 * refactor: (#54) 그래프 스타일 상수화하여 코드 정리 * refactor: (#54) 공통된 그래프 프롭스 interface 리팩토링 * refactor: 투표 통계 나이대 속성 type 리팩토링 - 투표 나이대 상수화 - 투표 나이대 상수에서 나이대 type 추출 - VoteDetailResult를 value로 가지는 투표 나이대 객체 type 생성 - 기존 voteResult interface에 투표 나이대 객체 type 연결 * refactor: (#54) 몇몇 컴포넌트 반응형 웹 기준 상수화 적용 - 게시글, 선택지, 투표 통계 컴포넌트 * refactor: (#54) 몇몇 컴포넌트 반응형 웹 기준 상수화 재적용 - 게시글, 선택지, 투표 통계 컴포넌트 * 사이드바(Drawer) 컴포넌트 UI 구현 (#57) * feat: (#41) 카테고리 토글 컴포넌트 UI 구현 * feat: (#41) 유저 정보 창 UI r구현중 * feat: (#41) 회원 유저 프로필 창 UI 구현 * feat: (#41) 비회원 프로필 창 UI 구현 * feat: (#41) 카테고리 타입 선언 * feat: (#41) 유저 타입 선언 * refactor: (#41) 선언한 타입으로 기존의 코드 변경 * feat: (#41) 사이드에 있는 유저 대쉬보드 컴포넌트 UI 구현 * feat: (#41) 공용 Drawer 컴포넌트 UI 구현 Drawer 사용 방법에 대한 예제 코드를 스토리북에 작성 * refactor: (#41) drawer 동작에 필요한 코드를 useDrawer 훅으로 분리 * design: (#41) 로그아웃 버튼이 잘못 위치한 부분 수정 * refactor: (#41) 유저의 정보를 받는 props 변수명을 가독성을 위해 변경 user => userInfo * refactor: (#41) 코드 가독성과 예쁜 디자인을 위한 코드 수정 * 게시글 선택지 투표기능, 투표 수정기능 구현 (#47) * feat: (#36) Vote 리파지터리 추가 * feat: (#36) 투표하는 기능, 포인트획득 기능 추가 * feat: (#36) 식별자를 통해 PostOption 찾는 기능 추가 - PostOption과 양뱡향 매핑 관계 등록 * feat: (#36) 자신이 작성한 글에는 투표하지 못하는 검증 추가 * feat: (#36) 게시글에 투표하는 API 기능 추가 * feat: (#36) 게시글에 투표수정 하는 API 기능 추가 * feat: (#36) 게시글 마감기간 검증 추가 * feat: (#36) 투표 수정시 같은 게시글인지 검증하는 로직 추가 * test: (#36) 테스트 코드 추가 * style: (#36) final 키워드 추가 및 어노테이션 순서 위치 변경 * feat: swagger 어노테이션 적용 * feat: 검증 기능 추가 - 투표 할때 이미 게시글에 투표를 했는지 검증하는 기능 - 투표 수정할때 기존에 투표가 존재하는지 검증하는 기능 * refactor: (#36) 멤버가 아닌 게시글을 통해 투표객체 만들도록 수정 * refactor: (#36) PostOptionRepository 추가, 투표 수정시 투표 엔티티 삭제후 저장하는 방식으로 수정 * test: (#36) 테스트코드 일부 추가 * fix: (#36) 필드 수정 * (비회원) 전체 카테고리 목록 조회 API 구현 (#52) * feat: (#50) (비회원) 전체 카테고리 목록 조회 API 추가 * style: (#50) 개행 삭제 * refactor: (#50) 레코드 적용 * refactor: (#50) 개행 수정 및 Stream.toList() 사용 * style: (#50) 디스플레이 네임 오타 수정 * refactor: (#50) 커스터마이징 어노테이션 추가 * refactor: (#50) @Nested 적용 * feat: (#50) Swagger 어노테이션 추가 * jest 환경 설정(절대 경로, jest 환경 fetch) 및 배포 되도록 에러 코드 수정 (#73) * chore: jest 절대 경로 및 fetch 관련한 환경설정 * chore: gitignore에 배포 폴더인 dist 폴더 추가 * fix: 프로젝트 실행 시 오류나던 부분 수정 * fix: 웹팩 실행 시 개발 환경에서만 dotenv 사용하도록 수정 프로젝트 빌드 시 .env를 찾을 수 없다는 오류 문구로 인해 수정 * chore: EOL를 위한 개행 추가 * 게시글 작성 기능 구현 (#69) * feat: (#32) Post 관련 객체들을 객체지향적으로 재구성 * refactor: (#32) 실무의 관례에 따라 엔티티의 일급 컬렉션을 필드에서 바로 초기화 하는 것으로 개선 * feat: (#32) swagger 이미지 파일 테스트가 가능하도록 환경 설정 * feat: (#32) TCP 소켓을 통해 접속해야 어플리케이션과 콘솔이 동시에 접근했을 때 오류가 발생하지 않도록 url 개선 * feat: (#32) 게시글 작성 API를 위한 계층 구조 구현 * test: (#32) 게시글 작성 기능 테스트 구현 * refactor: (#32) 클라이언트로부터 데이터를 전달받을 때 선택지 내용을 String 리스트로 받는 것으로 개선 * refactor: (#32) 더 안전한 사진으로 변경 * refactor: (#32) JavaTimeModule을 가져오기 위한 의존성 생략 * refactor: (#32) 빌더 생성자 private으로 개선 * refactor: (#32) Request Dto의 이름을 더 명확한 역할이 나타나도록 개선 * :refactor: (#32) PostCreateRequest를 record로 개선 * :refactor: (#32) 공백 정리 * refactor: (#32) final 키워드 붙이기 * refactor: (#32) test 관련 어노테이션의 위치 개선 * refactor: (#32) final 키워드 붙이기 * refactor: (#32) H2 DB를 인메모리 형식으로 변경 * refactor: (#32) 클라이언트로부터 받은 데이터로 엔티티를 만드는 과정 수정 * refactor: (#32) 클래스 마지막 줄 개행 추가 * refactor: (#32) 테스트 관련 어노테이션 위치 수정 * refactor: (#32) 테스트 주석 수정 * refactor: (#32) 접근 제어자 protected로 개선 * refactor: (#32) final 붙이기 및 타입 명시 * (회원) 선호 카테고리 추가 기능 구현 (#70) * feat: (#66) 선호 카테고리 추가하는 API 기능 구현 * test: (#66) Repository 테스트 추가 - 아이디를 통해 카테고리 조회 테스트 - 멤버카테고리 저장 테스트 * feat: (#66) Swagger 어노테이션 추가 * refactor: (#66) 개행 제거 * fix: (#66) 어노테이션 추가 * feat: (#66) 이미 선호 카테고리 목록에 있는 카테고리를 추가하는 경우를 검증하는 로직 추가 * refactor: (#66) 카테고리에 대한 자세한 검증 보충 * 공용 Select 컴포넌트 UI 구현 (#58) * feat: (#43) 셀렉트 컴포넌트 UI 구현 스토리북 작성, 글로벌 CSS 설정, svg 파일 추가 * feat: (#43) 셀렉트 컴포넌트 사용 예시 스토리북 작성 셀렉트 부모에서 width 값을 지정해서 사용하도록 수정 * refactor: (#43) 코드 가독성을 위한 타입, 변수명 수정 * refactor: (#43) 셀렉트 컴포넌트에서 제네릭 타입을 받아서 사용하도록 수정 타입스크립트의 제네릭을 통해 안정성을 더하였음 --------- Co-authored-by: chsua <[email protected]> * 게시글 통계 컴포넌트 제작_Feat/#65 (#75) * feat: (#65) msw를 위한 mock 게시물 상세정보 생성 * feat: (#65) 한 게시물 상세정보 fetch mocking * feat: (#65) 데이터, 로딩, 에러 정보 전달하는 fetch훅 생성 * feat: (#65) 게시물 하나 상세정보 fetch 함수 구현 * refactor: (#65) mockData 수정 * feat: (#65) 통계정보 get하는 api msw작성 * feat: (#65) 전체통계정보, 선택지 통계정보 get하는 fetch함수 작성 * refactor: (#65) useFetch 내 데이터이름 범용성 향성을 위해 수정 * feat: (#65) 통계그래프를 포함한 선택지 컴포넌트 생성 * test: (#65) 통계그래프를 포함한 선택지 컴포넌트 테스트 구현 * feat: (#65) 게시글 투표결과 통계 페이지 구현 * test: (#65) 게시글 투표결과 통계 페이지 테스트 구현 * feat: (#65) 로딩컴포넌트 구현 * test: (#65) 로딩컴포넌트 크기별 테스트 * refactor: 선택지변경 api 인자 interface 리팩터링 * style: (#65) 사용하지 않는 스타일컴포넌트 삭제 및 코드 정리 * feat: (#65) 통계컴포넌트에 로딩스피너 적용 * fix: (#65) 라디오 name속성이 공통되어 생긴 오작동 오류 수정 * refactor: ($65) map에 키 값 부여 * fix: 라디오에서 발생하는 checked 관련 오류 해결 - checked를 사용하는 경우 onChange 이벤트를 사용해야 함. - 때문에 defaultChecked로 수정하여 해결 * feat: (#65) 모바일 화면 외 크기에서는 헤더 감추기 * style: (#65) 로딩스피너 오타수정 * style: (#65) css 컨벤션에 따라 순서 수정 * refactor: (#65) 불필요한 코드 정리 - key와 value가 같다면 value 기재 생략 - useFetch 인자 수정 - msw 테스트 정리 - 안쓰는 코드 각주 삭제 * refactor: (#65) 목적에 맞지 않는 선택지 통계 토글 함수명 수정 * feat: (#54) 헤더에 있는 이전페이지로 가기 버튼 navigate 연결 * refactor: (#65) font-size를 var로 수정 * refactor: (#65) 통계 컴포넌트 라디오 상태명 변경 - 수정전: nowRadioMode - 수정후: currentRadioMode * refactor: (#65) 대소문자/오탈자 수정 * 글 작성 및 수정 페이지 구현 (#72) * fix: (#55) npm run dev 실행 시 발생하는 오류 해결, 라우팅 이슈 해결 * feat: (#55) 옵션에 따라 마감 시간을 가공하여 반환하는 함수 구현 * feat: (#55) 컴포넌트를 열고 닫는 커스텀 훅 구현 * feat: (#55) 글 작성 및 수정 관련 API, 커스텀 쿼리 훅 구현 * feat: (#55) 글 작성 및 수정 폼 구현 * feat: (#55) 글 작성 및 수정 페이지 구현, 페이지 라우팅 구현 * feat: (#55) 글 수정을 위해 url 파라미터를 가져오는 로직 구현 * refactor: (#55) 선택지 TextArea, FileInput 에 name 속성 추가 * refactor: (#55) 선택지 TextArea, FileInput 에 name 속성 변경 * feat: (#55) 글 작성/수정 폼에 이미지 파일 옵션 추가 * feat: (#55) msw로 글 작성/수정 API 모킹 * fix: (#55) form 태그 내에서 임의의 button 누르면 submit 이벤트가 일어나는 오류 해결 submit을 위해 만든 button이 아닌 경우, type='button' 속성을 추가함 * feat: (#55) useMutation 함수 반환값으로 isLoading, isError, error 추가 * feat: (#55) query key 상수화 * fix: (#55) Uncaught SyntaxError: Unexpected token ' in JSON 에러 해결 handler 함수들의 반환 값에 ctx.json 추가 * fix: (#55) 이미지 업로드 후 그림 버튼이 렌더링되는 이슈 해결 * feat: (#55) multipart 데이터 경우에 대한 fetch 함수 구현 * chore: (#55) 불필요한 name 속성 삭제 * chore: (#55) props 추가 * refactor: (#55) PostForm의 data props를 기존의 PostInfo 타입으로 변경 * refactor: (#55) request로 보낼 데이터의 타입을 FormData로 변경 * refactor: (#55) mocking 함수 url, 상태 코드 수정 * fix: (#55) 작성시간인 startTime의 유무에 따라 now값을 선언하여 Invalid Date 에러 해결 * refactor: (#55) mutate props 타입 좁히기 * refactor: (#55) 기준 시간에 마감 시간 옵션을 더해 마감 기한을 반환하는 함수 리팩터링 직관적인 함수명으로 변경 utils/post 로 파일 이동 데이터의 내용을 잘 드러내는 파라미터 이름으로 변경 * refactor: (#55) queryKey 객체의 키 값 대문자로 수정 * refactor: (#55) PostForm 컴포넌트 self-closing-tag 로 변경 * chore: (#55) 불필요한 파일 삭제 * feat: (#55) API 통신 중 에러의 경우 에 대한 처리 추가 * refactor: (#55) error 객체를 props에 추가하여 에러 메시지를 보여주도록 수정 * refactor: (#55) styled component 변수명 수정 * refactor: (#55) onError에서 error 객체 콘솔에 출력 * feat: (#55) 구체적인 마감 시간에 대한 설명 컴포넌트 추가 * feat: (#55) input 또는 textarea를 제어하는 커스텀 훅 구현 * design: (#55) OptionListWrapper css 수정, 반응형 구현 * chore: (#55) 불필요한 코드 삭제 * (회원) 선호 카테고리 삭제 기능 구현 (#79) * feat: (#67) (회원) 선호 카테고리 삭제 API 기능 구현 * feat: (#67) Swagger 어노테이션 추가 * test: (#67) Controller 단위테스트, Service 통합테스트 추가 - 이전에 누락된 테스트 코드까지 추가함 * style: (#67) final 키워드 추가 * refactor: (#68) CategoryResponse 파라미터 값 수정 * feat: (#68) (회원) 카테고리 목록 전체 조회 API 추가 * teat: (#68) (회원) 레파지토리 테스트 추가 * teat: (#67) 선호하는 카테고리에 없는 카테고리를 삭제하는 경우 예외 테스트 추가 * refactor: (#67) 개행 및 스태틱 임포트 리펙터링 * feat: (#67) Swagger 어노테이션 에러 응답 설명 추가 * refactor: (#67) url 오타 수정 * refactor: (#67) 개행 및 컨벤션 수정 * 선택지 통계 조회 기능 구현 (#83) * chore: (#77) 코드 컨벤션 정렬 * feat: (#77) 공통 예외 처리 구현 * feat: (#77) 동적 쿼리 사용을 위한 querydsl 추가 * refactor: (#77) 레포지토리 테스트 어노테이션 리팩토링 * feat: (#77) 연령, 성별로 그룹화하여 투표 수 조회 기능 구현 * feat: (#77) 게시글 투표 옵션에 대한 투표 통계 조회 기능 구현 * feat: (#77) 게시글 투표 옵션에 대한 투표 통계 조회 API 구현 * chore: (#77) 코드 컨벤션 정렬 * refactor: (#77) querydsl 의존성 제거 * refactor: (#77) 변수 사용 시 변수명과 동일할 때 불필요한 어노테이션 제거 * refactor: (#77) 멤버 도메인 변경으로 인한 테스트 코드 수정 * 회원가입 및 로그인 & 인가 기능 구현 (#82) * feat: (#29) 카카오 OAuth를 통해 정보를 받아서 가입하는 기능 구현 * chore: (#29) OAuth API요청에 대한 환경변수 설정 * feat: (#29) Member의 랜덤 닉네임을 지정하기 위한 수 생성기 구현 * chore: (#29) JJWT라이브러리 의존성 추가 * feat: (#29) 로그인한 회원에 대한 정보를 JWT로 반환하는 기능 추가 * chore: (#29) 토큰 관련 환경변수 설정 추가 * refactor: (#29) ResponseDto를 record형식으로 변환 * feat: (#29) 인증정보를 확인하는 AuthenticationFilter구현 * feat: (#29) 멤버가 존재하는지 확인한 후 반환하는 ArgumentResolver구현 * test: (#29) loginWithKakao메서드에 대한 컨트롤러 단위 테스트 작성 * refactor: (#29) Member엔티티 필드명 수정 및 추가 * test: (#29) Member 등록에 대한 검증 추가 * chore: (#29) test를 위한 yaml파일을 추가하여 환경 분리 * refactor: (#29) conflict 해결 * refactor: (#29) Controller Swagger를 위한 어노테이션 추가 * feat: (#29) CORS설정 및 ArgumentResolver등록 * chore: (#29) test환경 환경변수만 존재하도록 수정 * refactor: (#29) 네이밍, 상수화, 위치변경 등의 작업 수행 * fix: (#29) 멤버의 이름에 포함되는 숫자가 고정되는 문제 해결 * refactor: (#29) ObjectMapper Bean으로 등록 * refactor: (#29) 매직넘버 상수화 및 변수, 메서드명 수정 * refactor: (#29) @JsonProperty를 @JsonNaming으로 변경 * chore: (#29) test용 production url 수정 * refactor: (#29) 상수 및 변수명 수정 * test: (#29) 토큰에 대한 검증 추가 * refactor: (#29) 토큰을 파싱할 때 유효성 검사 추가 * refactor: (#29) 로그인 api nickname 필드 추가 * refactor: (#29) 토큰 검증 DisplayName 변경 * refactor: (#29) Swagger tag name 변경 * refactor: (#29) TokenProcessorTest의 필드를 빈을 사용하도록 변경 * (회원) 전체 카테고리 목록 조회 기능 구현 (#89) * feat: (#67) (회원) 선호 카테고리 삭제 API 기능 구현 * feat: (#67) Swagger 어노테이션 추가 * test: (#67) Controller 단위테스트, Service 통합테스트 추가 - 이전에 누락된 테스트 코드까지 추가함 * style: (#67) final 키워드 추가 * refactor: (#68) CategoryResponse 파라미터 값 수정 * feat: (#68) (회원) 카테고리 목록 전체 조회 API 추가 * teat: (#68) (회원) 레파지토리 테스트 추가 * teat: (#67) 선호하는 카테고리에 없는 카테고리를 삭제하는 경우 예외 테스트 추가 * refactor: (#67) 개행 및 스태틱 임포트 리펙터링 * feat: (#67) Swagger 어노테이션 에러 응답 설명 추가 * fix: (#68) 파라미터 반환값 수정 * test: (#68) 서비스, 컨트롤러 테스트 추가 * refactor: (#67) url 오타 수정 * refactor: (#67) 개행 및 컨벤션 수정 * feat: (#68) Swagger 어노테이션 추가 * style: (#68) 개행 삭제 * style: (#68) 개행 수정 * refactor: (#68) @Nested 삭제 - 카테고리를 조회하는 기능에서 보면 같으나 멤버, 비회원으로 나누어진 메서드므로 해당 어노테이션을 제거함 * refactor: (#68) 들여쓰기 제거 * refactor: (#68) @Param 어노테이션 추가 - 다즐로컬에서는 테스트가 잘 작동했는데 루쿠로컬에서는 테스트가 작동하지 않는 오류가 발생했음. 안전하게 어노테이션 추가함. * refactor: (#68) 시크릿 키 디코딩 제거 * feat: (#97) GlobalExceptionHandler 로그 추가 (#98) * 공통된 타입/데이터/상수/페이지 등 파일 정리 및 코드 리팩토링 (#99) * refactor: (#94) msw 관련 함수명 통일, 목 데이터 분리 * refactor: (#94) 목 데이터의 형식을 json에서 ts로 변경 * chore: (#94) tsconfig.json 설정 추가 * refactor: (#94) api 폴더 통합 * refactor: (#94) 상수 폴더 통합 * design: (#94) 폰트 속성을 전역 변수로 설정 * style: (#94) import 폴더 경로 재설정 * style: (#94) CSS색상 속성 전역 변수로 수정 * refactor: (#100) CORS origins, method 수정 (#101) * fix: (#103) map에서 code가 중복으로 들어가는 문제 해결 (#104) * 레이아웃 컴포넌트 구현 (#87) * feat: (#62) 레이아웃 컴포넌트 구현 * refactor: (#62) 사이드바를 숨기는 여부의 props 변수명 변경 * 게시글 상세페이지 컴포넌트_Feat/#78 (#84) * feat: (#78) 헤더 밑 택버튼 구현 * test: (#78) 헤더 밑 택버튼 사이즈별 테스트 * design: (#78) 헤더 글자 버튼 색상 변경(미정 -> 흰) * feat: (#78) 게시글 get, 게시글 삭제, 조기종료 mocking을 위해 설정 * feat: (#78) 게시글 get, 게시글 삭제, 조기종료 관련 api 작성 * feat: (#78) get을 위한 useFetch 훅 작성 * feat: (#78) 게시물 상시페이지 폴더 이동 및 구현 * test: (#78) 게시물 상시페이지 글쓴이/그외 사용자 테스트 구현 * feat: (#78) 시작시간과 마감시간을 비교해 마감되었는지 확인하는 유틸함수 구현 * feat: (#78) 탭/웹인 경우 하단으로 버튼 이동, 마감 여부에 따른 버튼 감추기 - 신고, 조기마감, 수정, 삭제 : 모바일 -> 헤더, 탭-웹 -> 하단에 위치 - 게시글 리스트 페이지로 이동하는 함수명 의도에 맞게 수정 * fix: (#78) navigate URL 수정 * refactor: (#78) 상수 파일 오타 수정 및 기존 상수 폴더로 이동 * feat: (#78) useFetch 훅에 게시글 재패치 함수 return 추가 * test: (#78) 조기마감 버튼을 누르는 경우 마감되는지 확인하기 위한 msw로직 추가 * refactor: (#78) 게시글 상세 페이지 하단 버튼 부분 컴포넌트로 분리 * test: (#78) 게시글 상세 페이지 하단 버튼 부분 컴포넌트 테스트 작성 * refactor: (#78) 게시글 상세 페이지 헤더 안 부분 컴포넌트로 분리 * test: (#78) 게시글 상세 페이지 헤더 안 부분 컴포넌트 테스트 * refactor: (#78) 게시글 상세 페이지의 하단, 헤더 안 분리 적용 * fix: (#78) 마감여부 확인 로직, 게시물 등록시간으로 인한 오류. 현재시간으로 수정 * fix: (#78) 라우터에서 상세페이지 컴포넌트 프롭스가 없어 발생하는 오류 수정 * test: (#78) 상세페이지 프롭스 변경에 따른 테스트 코드 변경 * fix: (#78) 변경된 게시글 상세페이지 컴포넌트명으로 수정 * design: (#78) 헤더 상단 고정 * refactor: (#78) 변수/인자명 수정 * chore: (#78) dev 브런치와 병합을 위한 머지 --------- Co-authored-by: Gilpop8663 <[email protected]> * 홈페이지에서 사용할 전체 게시글 리스트 컴포넌트 구현 (#85) * feat: (#61) 위로가기 버튼 UI 구현 * feat: (#61) 게시글 전체 리스트 패치 함수 구현 및 모킹 코드 구현 * test: (#61) 게시글 전체 리스트를 불러오는 훅 테스트 작성 * feat: (#61) 게시글 리스트 컴포넌트 생성 * test: 전체 게시글 목록 패치하는 훅과 함수 테스트 작성 * feat: (#61) 게시글 목록 컴포넌트 구현 * refactor: (#61) 전체 게시글 목록 Mock 데이터 코드를 파일로 분리 * refactor: (#61) 유저 정보 Mock 데이터 코드 파일로 분리 * refactor: (#61) 카테고리 목록 Mock 데이터 코드 파일로 분리 * design: (#61) 게시글 목록 컴포넌트에 임시 셀렉트 컴포넌트 배치 * feat: (#61) 게시글 목록 페이지 컴포넌트 구현 * chore: (#61) query에 관련된 훅 테스트 폴더 분리 * feat: (#61) 클라이언트에서 사용할 게시글 진행 상태, 정렬 옵션 타입 지정 * feat: (#61) 게시글 목록을 게시글 진행 상태, 정렬 옵션에 따라 요청을 다르게 보내도록 구현 * feat: (#61) 전체 게시글을 패치하는 훅에서 진행 상태, 정렬에 따라 다르게 요청하도록 구현 * feat: (#61) 셀렉트에 사용하는 커스텀 훅 구현 * feat: (#61) 게시글 목록 페이지에 셀렉트 훅 적용 * feat: (#61) 전체 게시글 목록 패치할 때 페이지 번호를 받도록 수정 * feat: (#61) msw 데이터를 무한 스크롤에 맞게끔 변경, 테스트 코드 변경 * refactor: (#61) 반복된 테스트 코드 삭제 및 게시글 목록 패치하는 훅 페이지를 받도록 수정 * design: (#61) 셀렉트 열렸을 때 옵션들이 가려지던 부분 수정 셀렉트 열렸을 때 border 선 두께가 달라져서 아래의 스타일이 영향을 받던 문제 수정 * feat: (#61) 무한 스크롤 훅 구현 * feat: (#61) 마지막 게시글 목록의 8번째의 게시글이 보이면 패치하도록 구현 * feat: (#61) 게시글 리스트 목록 타입 선언 * fix: (#61) 셀렉트의 값을 다르게 요청보내던 것 수정 * design: (#61) 헤더 zIndex 설정 및 글로벌 스타일 zIndex 설정 * refactor: (#61) CSS 속성이 없는 스타일 컴포넌트를 html tag로 변경 * refactor: (#61) api를 감싸는 함수 삭제 후 getPostList 함수 내에서 원하는 객체로 return 하도록 수정 가독성을 위해 변수명 수정 * refactor: (#61) 타입, 상수 코드를 파일로 분리 및 타입 이름 수정 * design: (#61) 불필요한 CSS 코드 삭제 * refactor: (#61) 타입, 상수 관련 팀 코드 컨벤션 변경으로 인한 수정 * feat: (#61) 게시글 내용을 눌렀을 때 상세 페이지로 가도록 구현 상세 페이지에서는 동작하지 않도록 구현 --------- Co-authored-by: chsua <[email protected]> * 배포를 위해 현재 발생한 오류 해결 및 페이지 생성_Feat/#106 (#117) * fix: (#106) 제거된 게시글 삭제 api, 조기마감 api 재생성 * fix: (#106) 게시글 get하는 api 함수명 수정이 미적용되어 발생하는 오류 해결 * fix: (#106) type이 불분명하여 발생하는 오류 해결 - string -> Size * fix: (#106) Size 타입 이동으로 인한 오류 해결 - 경로 수정 * fix: 머지에 따른 오류 해결 Co-authored-by: 김영길/KIM YOUNG GIL <[email protected]> * feat: (#106) 컴포넌트 페이지 연결 Co-authored-by: 김영길/KIM YOUNG GIL <[email protected]> Co-authored-by: jero_kang <[email protected]> --------- Co-authored-by: 김영길/KIM YOUNG GIL <[email protected]> Co-authored-by: jero_kang <[email protected]> * 카테고리 정보를 불러오는 패치 api 함수 구현 및 msw mocking 구현 (#90) * test: (#64) 카테고리애 대한 통신 테스트 코드 작성 * feat: (#64) 카테고리 리스트 mock 데이터 선언 * feat: (#64) 카테고리에 대한 통신 함수 구현 * feat: (#61) 카테고리 리스트 관련된 msw 코드 작성 서버에서 오는 카테고리 리스트 타입 선언 * refactor: (#64) 테스트에 대한 설명하는 문장 수정 * refactor: (#64) 코드 가독성을 위해 타입 이름 변경 --------- Co-authored-by: chsua <[email protected]> * 유저 정보를 불러오는 패치 api 함수 구현 및 msw mocking 구현 (#107) * feat: (#63) 유저 정보를 불러오는 패치 api 함수 구현 및 msw mocking 구현 * test: (#63) 유저 정보 테스트 코드 추가 * refactor: (#63) 코드 가독성을 위해 타입 이름 변경 --------- Co-authored-by: chsua <[email protected]> * 카카오에 엑세스 토큰 요청 시 타입 설정 및 회원 닉네임 반환 오류 수정 (#122) * fix: (#121) 사용자 닉네임이 정확하기 반환되지 않는 오류 수정 * refactor: (#121) 카카오 서버에 엑세스 토큰을 요청할 때 헤더 타입 설정 * 전체 통계 조회 기능 구현 (#112) * feat: (#76) 게시글의 연령대, 성별로 그룹화된 투표 통계 조회 기능 구현 * feat: (#76) 게시글에 대한 전체 투표 통계 조회 기능 구현 * feat: (#76) 게시글에 대한 전체 투표 통계 조회 API 구현 * chore: (#76) 코드 컨벤션 수정 * test: (#76) 테스트 픽스처 사용 * refactor: (#76) 멤버 인증 수행 * feat: (#76) 인증 필터 Swagger 제외 * refactor: (#76) 게시글 작성자 검증 메서드 분리 * refactor: (#76) 게시글 도메인 검증으로 변경 * 카테고리별 게시글 조회 기능을 위해 getPostList 함수 수정 이후 usePostList 훅 추가 기능 구현 (#113) * feat: (#110) 게시글 목록 패치 함수 및 훅에서 카테고리별 게시글 목록을 불러오도록 수정 * feat: (#110) PostList 컴포넌트에서 categoryId를 이용해 카테고리별 게시글 목록을 요청할 수 있도록 구현 * refactor: (#110) 컴포넌트에서만 사용되는 상수의 위치 변경 * refactor: (#110) URLSearchParams에서 useSearchParams로 변경 * refactor: (#110) 카테고리별 글 목록 URL을 반환하는 함수의 이름 변경 및 반복되는 코드 변경 * refactor: (#110) 카테고리별 게시글 URL 경로 및 API 연동 코드 추가 * 통계페이지 등 전체 스타일 수정하기_Feat/#123 (#132) * chore: msw 오류를 해결하기 위한 msw 1.2.3 버전으로 업그레이드 * feat: (#123) 라우팅 경로 추가 * feat: (#123) 웹용 헤더 로고 누르면 메인 페이지로 이동 * test: (#123) 웹용 헤더 기능 추가에 따른 테스트 변경 * design: (#123) 데스크탑용 리스트 가로길이 변경(500px->700px) * refactor: (#123) 중복되는 기능 함수 합치기 * refactor: (#123) 레이아웃 컴포넌트와 동일 기능을 하는 스타일드 컴포넌트 삭제 * feat: (#123) 홈페이지를 제외한 페이지 컴포넌트에 레이아웃 컴포넌트 적용 * style: (#123) 불필요한 파일 삭제 * design: (#123) 헤더 상단 고정 * design: (#123) 검색바 svg 버튼색을 헤더색으로 설정 * design: (#123) 모바일버전 main 태그 상단margin 추가 * design: (#123) 선택지 margin 줄이기 * refactor: (#123) 레이아웃의 프롭스 정보를 컴포넌트 안에서 만들도록 수정 - 정보: 유저정보, 카테고리 목록, 카테고리 선호목록, 선호 카테고리 추가/삭제 이벤트 * test: (#123) 프롭스 수정에 따른 테스트 수정 * feat: (#123) 게시글 작성/수정 페이지에 레이아웃 컴포넌트 적용 * design: (#123) 글작성 폼 중앙정렬 * design: (#123) 게시글 내 정보(제목, 작성자 등)간 간격 넓히기 * refactor: (#123) 팀 코드 컨벤션에 맞게 클릭 함수명 수정 * test: (#123) 함수명/프롭스명 수정에 따른 테스트코드 변경 * design: (#123) 사이드바 Drawer 세로 일부 공백 제거 * refactor: (#123) 다른 pr과 충돌을 방지하기 위해 라우터 초기화 * webpack prod에서 .env를 사용하도록 수정 & jest에서 .env 파일 인식하도록 설정 (#135) * chore: (#125) webpack prod에서 .env를 사용하도록 수정 * chore: (#125) jest에서 .env 인식할 수 있도록 설정 * chore: (#125) .env.test EOL을 이유로 개행 추가 * .env 파일 타입 선언 및 router 및 경로 설정 (#133) * feat: (#124) .env 파일에 타입을 적용하여 자동 완성 되도록 적용 * feat: (#124) path, router 설정 및 잘못된 URL 경로 수정 * chore: (#124) 스타일드 컴포넌트 이름 수정 및 상수 URL 사용 * fix: (#138) Swagger URI 허용하도록 수정 (#142) * feat: (#143) 리버스 프록시 헤더 설정 추가 (#144) * 게시글 수정 api 변경에 따른 적용_Feat/#145 (#147) * 카테고리별 게시글 조회 기능을 위해 getPostList 함수 수정 이후 usePostList 훅 추가 기능 구현 (#113) * feat: (#110) 게시글 목록 패치 함수 및 훅에서 카테고리별 게시글 목록을 불러오도록 수정 * feat: (#110) PostList 컴포넌트에서 categoryId를 이용해 카테고리별 게시글 목록을 요청할 수 있도록 구현 * refactor: (#110) 컴포넌트에서만 사용되는 상수의 위치 변경 * refactor: (#110) URLSearchParams에서 useSearchParams로 변경 * refactor: (#110) 카테고리별 글 목록 URL을 반환하는 함수의 이름 변경 및 반복되는 코드 변경 * refactor: (#110) 카테고리별 게시글 URL 경로 및 API 연동 코드 추가 * refactor: (#145) 글 수정 api, body형태 수정에 따른 수정 * style: (#145) console.log 삭제 * refactor: (#145) 각주처리한 nav 활성화 * refactor: (#123) 글 작성 api 형식 변경에 따른 수정 * refactor: (#123) 선택지 내용입력 element 타입 지정하기 * feat: (#145) 글 작성 api 형식 변경에 따른 수정 --------- Co-authored-by: 김영길/KIM YOUNG GIL <[email protected]> * 회원 정보 조회 기능 구현 (#137) * fix: (#121) 사용자 닉네임이 정확하기 반환되지 않는 오류 수정 * feat: (#81) 회원 정보 조회 기능 구현 * test: (#81) post,vote 개수에 대한 repository 검증 추가 * refactor: (#81) 회원정보 dto 변수명 변경 * test: (#81) 회원 정보 조회를 위한 컨트롤러 검증 추가 * refactor: (#81) swagger 설정용 어노테이션 추가 * refactor: (#81) 회원 정보 조회 검증에서 불필요한 코드 제거 * refactor: (#81) 불필요한 코드 제거 및 conflict 해결 도중 삭제된 테스트 추가 * 웹 화면에서 글 게시글 작성 저장 버튼이 보이도록 수정 및 스타일 수정 (#140) * design: (#136) 웹, 모바일 디자인을 피그마를 토대로 수정 * feat: (#136) 웹용 저장 버튼에서 submit이 가능하도록 구현 * feat: (#136) 마감 시간 중 값이 0인 것은 보여주지 않는 기능 구현 * style: (#136) CSS 속성 순서 변경 및 사용하지 않는 스타일드 컴포넌트 코드 제거 * 내가 작성한 게시글 조회, 내가 투표한 게시글 조회 기능 구현 (#148) * chore: (#127) jest에서.env를 인식하는 방법 변경 npm run test는 잘되지만 개별 테스트 실행에서 오류가 나는 이유로 변경 * feat: (#127) 카테고리별 목록 요청 url 변경, 내가 작성한 게시글, 내가 투표한 게시글 요청 함수 구현 wus폴더에 있는 것을 api 폴더로 이동 mockData에서 postList 생성하는 방식 변경 * refactor: (#127) 타입 이름 변경 및 선언 방식을 상수를 한번만 사용하도록 변경, 파일 이동 * refactor: (#127) api을 요청할 때 url 옵션의 query 값 변경된 부분 적용 * refactor: (#127) 게시글 목록을 불러오는 훅 변경 * feat: (#127) path의 값을 구하는 유틸 함수 구현 * feat: (#127) 카테고리 아이디, 현재 어느 URL인지 반환하는 훅 구현 * fix: (#127) posts/:id가 posts/me 보다 앞에 있어서 MSW가 잘못된 동작을 하던 것을 수정 * refactor: (#127) requestKind라는 변수명을 content로 변경 * refactor: (#127) post에 관련된 상수 오브젝트의 키값을 상수화 * refactor: (#127) 현재 URL로 게시글 정보를 알려주는 훅 이름 및 파일 경로 변경 * refactor: (#127) 중복되는 타입을 Omit을 이용하여 타입 지정 * refactor: (#127) path 상수에서 뒤에 아이디가 붙은 것을 제거 path 상수를 이용하기 좋도록 수정하였음, 아이디가 붙으면 상수를 이용하는 곳이 없을 것이라고 생각함 post의 path로 정보를 확인하는 훅에서 상수 사용 * husky 설치, git commit/push 전 lint 오류 검사 자동화 (#150) * feat: (#92) husky 설치 및 세팅 git commit 및 push 된 코드에 대한 eslint 검사함 * chore: (#92) husky pre-commit 동작하는지 테스트2 * refactor: (#92) 불필요한 명령어 삭제 * refactor: (#92) jest 테스트 시 필요한 env 설정 추가 * 닉네임 수정 기능 구현 (#159) * feat: (#139) 회원 닉네임 변경 기능 추가 * test: (#139) 닉네임 변경과 연관된 레포지토리 검증 추가 * test: (#139) 닉네임 변경과 연관된 서비스 검증 추가 * test: (#139) 회원 닉네임을 변경하는 컨트롤러 검증 추가 * refactor: (#139) bean validation 및 swagger설정 추가 * test: (#139) 컨트롤러 변경 실패 검증 추가 * refactor: (#139) 닉네임 변경 dto 클래스 명 수정 * refactor: (#139) 닉네임을 값 객체로 변경 * 댓글 작성 기능 구현 (#151) * feat: (#128) 댓글 도메인 구현 * feat: (#128) 댓글 등록 기능 구현 * feat: (#128) 게시글 댓글 작성 API 구현 * feat: (#128) Swagger Auth 설정 추가 * feat: (#128) Swagger 문서화 * feat: (#128) Swagger 환경에 따른 설정 분리 * refactor: (#128) 사용하지 않는 의존성 삭제 * refactor: (#128) 메서드에 사용되는 객체 추출 * fix: (#128) 테스트에서 사용하지 않는 설정 삭제 * refactor: (#128) 명확한 의미를 가진 메서드명으로 수정 * refactor: (#128) 게시글이 존재하지 않을 때 예외 수정 * refactor: (#128) applicaion/json 기본 설정 제거 * refactor: (#128) 커스텀 예외 처리 방식 수정 * feat: (#128) 테스트 쿼리 확인 설정 추가 * 전체 게시글 목록 조회 기능 구현 (#93) * refactor: (#88) 게시글 작성 시, 클라이언트로부터 받는 데이터를 매핑하는 Dto 이름 개선 * refactor: (#88) 컨트롤러 통합 테스트 삭제 * refactor: (#88) 수월한 디버깅을 위해 member toString 추가 * feat: (#88) 조건에 따라 전체 게시글을 정렬해서 조회하는 기능 구현 * feat: (#88) 클라이언트에게 데이터 전달하기 위한 response 생성 * test: (#88) 테스트 없는 메서드 테스트 코드 추가 * refactor: (#88) 서비스 메서드 트랜잭션 어노테이션 붙이기 * refactor: (#88) 이미지 삭제 * refactor: (#88) 이미지 저장 경로 변경 * refactor: (#88) 게시글 작성 시, 필요없는 파라미터 개선 * refactor: (#88) PostOptions 생성하는 코드 개선 * refactor: (#88) dto에 데이터 정제 로직들을 도메인으로 옮김 * refactor: (#88) sql문을 더 보기 쉽게 하기 위해 개행 추가 * refactor: (#88) 원시 타입을 래퍼 클래스 타입으로 변경 * refactor: (#88) 개행 없어야 하는 부분 개행 지우기 * refactor: (#88) 전체 게시글 목록 조회 기능 테스트 메서드 명 더 명확하게 개선 * refactor: (#88) enum 상수들 개행 * refactor: (#88) EqualsAndHashCode의 supercall 속성 삭제 * refactor: (#88) PostOption의 EqualsAndHashCode 삭제 * refactor: (#88) 테스트용 yml 파일 필요없는 설정 삭제 * refactor: (#88) Member 파라미터에 final 붙이기 * refactor: (#88) swagger 관련 어노테이션 중 500 에러 관련 어노테이션 생략 * refactor: (#88) 페이지 넘버 파라미터 타입을 원시 타입으로 변경 * refactor: (#88) response 변수명 더 간결하게 개선 * refactor: (#88) 투표 결과를 볼 수 있는지 판단하는 메서드를 작성자인 경우에도 볼 수 있도록 수정 * refactor: (#88) Repository의 메서드 파라미터에 final 붙이기 * refactor: (#88) isWriter의 테스트 코드 수정 * refactor: (#88) 테스트 코드에서 final 키워드 삭제 * refactor: (#88) 클래스, 필드명을 더 명확하게 개선 * refactor: (#88) Dto클래스의 이름에서 불용어인 Info 삭제 * refactor: (#88) selectedOption 의 역할이 sequence가 아닌 id가 되도록 변경 * refactor: (#88) 파라미터인 Member의 위치를 맨 밑으로 수정 * refactor: (#88) 게시글 조회 반환 값인 response dto의 생성을 정적 팩토리 메서드가 하도록 개선 * refactor: (#88) 래퍼 클래스 타입을 원시 타입으로 변경 * refactor: (#88) 연관관계 편의 메서드에 양방향에 추가하는 로직을 몰아 넣기 * refactor: (#88) 스트림에서 하나만 빼낼 시, findFirst 대신 findAny로 찾는 것으로 변경 * 회원 탈퇴 기능 구현 (#162) * feat: (#141) 회원 탈퇴 기능 구현 * chore: (#141) 회원 탈퇴 swagger적용 * 댓글 삭제 기능 구현 (#161) * feat: (#131) 댓글 작성자, 게시글 검증 기능 구현 * feat: (#131) 댓글 삭제 기능 구현 * feat: (#131) 댓글 삭제 API 구현 * refactor: (#131) 댓글 삭제 문서 수정 * refactor: (#131) 인증된 멤버 매개변수 위치 수정 * fix: (#131) 게시글 변수명 수정에 따른 빌더 체이닝 메서드명 수정 * chore: (#131) 코드 컨벤션 정리 * 글 작성/수정 시 본문에 사진 추가/삭제 기능 구현_Feat/#155 (#160) * feat: (#155) 게시글 타입에 본문 imageUrl 속성 추가 * feat: (#155) 글 작성/수정 페이지에 본문 사진/삭제 및 사진추가버튼 UI 구현 * feat: (#155) 본문 사진 부분 컴포넌트 분리 및 업로드 버튼 이벤트 구현 * feat: (#155) 업로드한 사진 미리보기로 보여주기 기능 구현 * feat: (#155) 글 작성/수정 시 본문 사진도 포함하여 전송 기능 구현 * feat: (#155) 본문 사진/선택지 사진 속성명 구분하여 api 통신 구현 * refactor: (#155) 변수명 카멜 케이스로 수정 * refactor: (#155) 게시글 타입 중 imageUrl 속성 필수속성으로 수정/적용 * fix: (#155) 본문 이미지 등록 후 미리보기 안 보이는 오류 수정 - 미리보기 조건을 초기 url 유무 아닌 등록 사진 url 유무로 수정 * feat: (#155) 새로운 기능 구현 중 비활성화한 페이지 이동 활성화 * feat: (#155) 선택지 입력을 확인하기 위해 폼 컴포넌트로 훅 위치 변경 - 기존: 작성중인 투표 선택지 컴포넌트 * test: (#155) 작성 선택지 훅 위치 변경에 따른 작성 선택지 테스트 코드 변경 * feat: (#155) 본문 사진을 확인하기 위해 폼 컴포넌트로 훅 위치 변경 - 기존: 본문 사진 파트 컴포넌트 * feat: (#155) 등록 후 삭제한 이미지 api통신되지 않도록 처리 - 입력중인 imageUrl을 확인하여 공백이면 file 초기화 * refactor: (#155) 본문 사진 url이 없는 경우 훅에서 처리하도록 수정 * refactor: (#155) 공통으로 사용하는 상수를 상수파일로 이동 * refactor: (#155) 선택지 텍스트 제어로 가지고 오도록 수정 * test: (#155) 작성 중인 선택지 컴포넌트 프롭스 수정에 따른 테스트 수정 * refactor: (#155) 작성중인 본문 이미지 부분 컴포넌트명 수정 - 수정전: ContentImagePart - 수정후: ContentImageSection * refactor: (#155) 불필요한 코드 수정 * feat: (#155) 통신확인을 위해 각주처리한 navigate 복구 * 다중 선택 컴포넌트 구현 (#146) * feat: (#44) 다중 옵션 선택을 위한 커스텀 훅 구현 * feat: (#44) 다중 선택 컴포넌트 UI 구현 및 커스텀 훅 연결 * refactor: (#44) category name이 아닌 id 값으로 옵션 리스트 필터링 * design: (#44) DropDown의 top 값 수정 * refactor: (#44) 직관적인 컴포넌트 이름으로 수정 및 findIndex 대신 some 메서드로 대체 * refactor: (#44) 불필요한 코드 삭제 및 직관적인 변수명으로 수정 * design: (#44) wrapperClientHeight 상태 삭제, CSS 속성들로 대체 * refactor: (#44) 타입 분리, props 명에 $ 기호 추가, useToggle 로직 삭제 * 댓글 수정 기능 구현 (#171) * feat: (#130) 댓글 수정 기능 구현 * feat: (#130) 댓글 수정 로직 구현 * feat: (#130) 댓글 수정 API 구현 * chore: (#130) 코드 컨벤션 정리 * refactor: (#130) 테스트명 오타 수정 * 카테고리 목록 조회, 카테고리 즐겨찾기, 유저 정보 조회에 대한 커스텀 쿼리 구현 (#156) * feat: (#108) 유저 정보 조회하는 커스텀 쿼리 구현, 쿼리 키 상수화 * feat: (#109) 카테고리 목록 조회하는 커스텀 쿼리 구현 * feat: (#109) 카테고리 즐겨찾기 등록 및 해제 쿼리 구현, fetch 함수와 연결 * feat: (#109) CategoryToggle 컴포넌트 내에서 useCategoryFavoriteToggle 쿼리 적용, handleFavoriteClick 함수의 불필요한 props drilling 삭제 * chore: (#109) 사용하지 않는 함수 코드 삭제 * chore: (#109) hook test 통과를 위해 코드 복구 * 스토리북을 PR이 merge 될 때 배포되도록 설정 (#166) * chore: (#165) github workflows에 스토리북 배포 설정 추가 * chore: (#165) 배포되는 환경 설정 및 배포될 브랜치 설정 * chore: (#165) 스토리북이 배포되는 폴더 변경 * chore: (#165) 스토리북 배포 파일들이 존재하지 않는 이유를 찾기 위해 React도 배포 시도 * chore: (#165) build 폴더에서 dist 폴더로 변경 * chore: (#165) 스토리북 빌드된 폴더 경로 재설정 * chore: (#165) dev 브런치로 보낸 PR이 머지될 때 스토리북 배포 되도록 설정 * 게시글 작성 기능 API 명세의 변경에 따른 코드 수정 (#173) * refactor: (#95) 게시글 작성 기능 API 명세의 변경에 따라 게시글 내용의 이미지 추가 * refactor: (#95) PostController import문 정리 * refactor: (#95) h2-console 동작을 위한 설정 추가 * refactor: (#95) 게시글의 마감 기한이 현재 시간보다 3일 이상을 초과한 경우 예외 처리 기능 구현 * refactor: (#95) 마감 기한 제한으로 인한 양성 테스트 코드 수정 * refactor: (#95) 게시글 작성 API 데이터 전달 시, 잘못된 입력 값에 대한 예외 처리 기능 구현 * refactor: (#172) Dto 이름을 더 명확하게 개선 * refactor: (#172) swagger schema 설정 및 valid 설정 개선 * refactor: (#172) 예외 메시지 변경에 의한 테스트 메시지 변경 * refactor: (#172) 이미지 파일 이름 중복을 방지하기 위해 밀리초를 이름에 포함하는 것으로 개선 * refactor: (#172) 날짜 데이터 변환 형식을 DateTimeFormat이 아닌 JsonFormat으로 변환하는 것으로 변경 * refactor: (#172) 이미지 Url 저장 및 변환을 고수준인 도메인에서가 아닌 저수준인 서비스 계층에서 실행하도록 개선 * refactor: (#172) 테스트 코드 개선 * refactor: (#172) 이미지 저장에 실패했을 때 예외를 던지는 것으로 수정 * refactor: (#172) 예외 핸들러의 범위 원복 * refactor: (#172) 최대 마감 기한 유효성 검증 로직을 더 확장성 있게 코드 개선 * refactor: (#172) 새로 만든 엔티티에 BaseEntity 상속 받도록 수정 * refactor: (#172) 객체 비교 시, id로 비교하는 것으로 개선 * refactor: (#172) images 경로 push를 위한 이미지 저장 * refactor: (#172) 서버에서 필요없는 데이터 필드 삭제 * refactor: (#172) 설정 파일에도 h2 console의 path를 명시해주기 * refactor: (#172) 메서드를 사용하는 클래스 변경 * 댓글 등록, 조회, 수정, 삭제 API fetch 함수 구현 및 커스텀 쿼리 구현 (#170) * feat: (#157) 댓글 관련 API fetch 함수 및 타입 분리 * refactor: (#157) 함수명 구체화, query key 상수화, CommentRequest 타입 간소화 * feat: (#157) 댓글 조회, 등록, 수정, 삭제 관련 커스텀 쿼리 구현 * feat: (#157) 댓글 관련 API mocking handler 구현 * feat: (#157) 쿼리 요청 실패에 대한 에러 핸들링 및 롤백 기능 구현 * refactor: (#157) useEffect dependency 추가, props이름에 $ 추가 * refactor: (#157) 불필요한 query key 삭제 * 회원 닉네임 수정, 회원 탈퇴 fetch 함수 구현 및 MSW 코드 작성 (#178) * refactor: (#153) delete를 패치하는 함수 오류 제거를 위한 리팩터링 * feat: (#153): 유저 닉네임 변경, 회원 탈퇴 MSW 코드 작성 * feat: (#153) 유저 닉네임, 회원 탈퇴 api fetch 함수 구현 * refactor: (#153) BASE_URL 추가 및 MSW 코드 성공했을 때 구체적인 메세지로 수정 * 댓글 조회 기능 구현 (#182) * refactor: (#129) 멤버 닉네임 값 조회 타입 수정 * feat: (#129) 게시글 댓글 목록 생성시각 순 조회 기능 구현 * feat: (#129) 게시글 댓글 목록 조회 기능 구현 * feat: (#129) 게시글 댓글 목록 조회 API 구현 * chore: (#129) 스웨거 문서화 * refactor: (#129) 응답 필드 개행 수정 * refactor: (#129) 사용하지 않는 필드 제거 * refactor: (#129) 댓글 목록 조회 권한 허용 * chore: (#129) 코드 컨벤션 수정 * refactor: (#129) 테스트환경 필터 설정 * 글쓰기 폼 페이지 디자인 수정_Feat/#180 (#181) * design: (#180) 작성중인 선택지 컴포넌트 디자인수정 - 패딩 줄이기 - 데스크탑에서 input 높이 삭제 * design: (#180) 본문 사진 부분 컴포넌트 디자인수정 - 사이즈별로 사진 보여줄 수 있도록 프롭스로 넘겨줌 - 버튼 라벨 세로가로 가운데 정렬 * design: (#180) 게시글 작성/수정 컴포넌트 디자인수정 - 본문 사진 삽입에 따른 해당 구역 높이조절을 위해 스타일드컴포넌트에 사진존재여부 전달 - 왼쪽 부분/오른쪽 부분 모두 그리드로 수정 - 본문 사진 wrapper를 만들어 데스크탑인 경우 크기를 50% 더 작게 만듬 - 마감시간 지정하는 부분 중 안내문구 wrapper 제작 * feat: (#180) 다중선택 컴포넌트로 카테고리 선택 부분 교체 * design: (#180) 다중선택 컴포넌트 디자인수정 - 선택 option 배경색이 투명 -> white로 수정 * 게시글 작성 기능 API 명세의 변경에 따른 코드 수정 (#173) * refactor: (#95) 게시글 작성 기능 API 명세의 변경에 따라 게시글 내용의 이미지 추가 * refactor: (#95) PostController import문 정리 * refactor: (#95) h2-console 동작을 위한 설정 추가 * refactor: (#95) 게시글의 마감 기한이 현재 시간보다 3일 이상을 초과한 경우 예외 처리 기능 구현 * refactor: (#95) 마감 기한 제한으로 인한 양성 테스트 코드 수정 * refactor: (#95) 게시글 작성 API 데이터 전달 시, 잘못된 입력 값에 대한 예외 처리 기능 구현 * refactor: (#172) Dto 이름을 더 명확하게 개선 * refactor: (#172) swagger schema 설정 및 valid 설정 개선 * refactor: (#172) 예외 메시지 변경에 의한 테스트 메시지 변경 * refactor: (#172) 이미지 파일 이름 중복을 방지하기 위해 밀리초를 이름에 포함하는 것으로 개선 * refactor: (#172) 날짜 데이터 변환 형식을 DateTimeFormat이 아닌 JsonFormat으로 변환하는 것으로 변경 * refactor: (#172) 이미지 Url 저장 및 변환을 고수준인 도메인에서가 아닌 저수준인 서비스 계층에서 실행하도록 개선 * refactor: (#172) 테스트 코드 개선 * refactor: (#172) 이미지 저장에 실패했을 때 예외를 던지는 것으로 수정 * refactor: (#172) 예외 핸들러의 범위 원복 * refactor: (#172) 최대 마감 기한 유효성 검증 로직을 더 확장성 있게 코드 개선 * refactor: (#172) 새로 만든 엔티티에 BaseEntity 상속 받도록 수정 * refactor: (#172) 객체 비교 시, id로 비교하는 것으로 개선 * refactor: (#172) images 경로 push를 위한 이미지 저장 * refactor: (#172) 서버에서 필요없는 데이터 필드 삭제 * refactor: (#172) 설정 파일에도 h2 console의 path를 명시해주기 * refactor: (#172) 메서드를 사용하는 클래스 변경 * 댓글 등록, 조회, 수정, 삭제 API fetch 함수 구현 및 커스텀 쿼리 구현 (#170) * feat: (#157) 댓글 관련 API fetch 함수 및 타입 분리 * refactor: (#157) 함수명 구체화, query key 상수화, CommentRequest 타입 간소화 * feat: (#157) 댓글 조회, 등록, 수정, 삭제 관련 커스텀 쿼리 구현 * feat: (#157) 댓글 관련 API mocking handler 구현 * feat: (#157) 쿼리 요청 실패에 대한 에러 핸들링 및 롤백 기능 구현 * refactor: (#157) useEffect dependency 추가, props이름에 $ 추가 * refactor: (#157) 불필요한 query key 삭제 * design: (#180) 본문 사진 크기 확대 - 모바일: 50% -> 100% - 탭/데스크탑: 25% -> 80% * design: (#180) CSS 그리드 속성 변경 --------- Co-authored-by: Jun-Hyeok Sin <[email protected]> Co-authored-by: jero_kang <[email protected]> Co-authored-by: Gilpop8663 <[email protected]> * 댓글 작성 폼, 리스트 UI 컴포넌트 구현, 댓글 타입 선언 (#163) * feat: (#152) 댓글 타입 선언 * feat: (#152) mock 닉네임 리스트 데이터 구현 * design: (#152) 댓글 아이템 컴포넌트 UI 구현 * refactor: (#152) useToggle 훅에 toggle하는 함수 추가로 구현 * design: (#152) 댓글 메뉴 컴포넌트 UI 구현 * design: (#152) SquareButton 컴포넌트에 Gray 속성 추가 및 반응형 속성 추가 * design: (#152) 댓글 공통 모달, 댓글 삭제 모달 컴포넌트 UI 구현 * design: 댓글 신고 모달 컴포넌트 UI 구현 * feat: (#152) 댓글 삭제, 신고 메뉴를 눌렀을 때 모달이 보이도록 구현 * feat: (#152) 비로그인, 작성자, 일반 사용자에게 댓글 메뉴를 다르게 보이도록 구현 * refactor: (#152) 유저 신고, 댓글 신고를 분리하여 모달도 2개 따로 구현 * refactor: (#152) 신고 관련된 컴포넌트 report 폴더로 이동 * design: (#152) 댓글 수정 폼 컴포넌트 UI 구현 * refactor: (#152) 댓글 수정 폼을 변경하여 댓글 입력 폼으로 변경 * refactor: (#152) 댓글 컴포넌트들을 comment 폴더로 이동 댓글에 관련된 컴포넌트 수가 많아져서 따로 분리하였음 * design: (#152) 비회원일때 댓글 폼 대신 보여줄 로그인 안내 컴포넌트 UI 구현 * refactor: (#152) 댓글 관련 상수, 타입을 모아둠 * refactor: (#152) 댓글 로직에 사용하는 문자열 상수화 및 타입 개선 * design: (#152) 댓글 리스트 컴포넌트 UI 구현 * refactor: (#152) 댓글 메뉴를 클릭에서 마우스를 올렸을 때 나오도록 변경 * feat: (#152) 댓글을 10개 단위로 보여주고, 더보기를 눌렀을 때 더 보여주는 훅 구현 * feat: (#152) 댓글 리스트 컴포넌트 더보기 버튼 기능 적용 * feat: (#152) 맨 위로 가기 기능 구현 및 유틸 함수로 이동 * refactor: (#152) 신고 컴포넌트에 사용되는 문자열 상수화 스크롤 이동 유틸 함수 파일 경로 이동, CSS 속성 변경 * refactor: (#152) 사용하지 않는 코드 및 type import 추가, 개행 추가, type=button 지정 * refactor: (#152) 비로그인 유저에게 보여주는 댓글 로그인 유도 컴포넌트 이름 변경 * refactor: (#152) 댓글 메뉴 동작 방식을 마우스를 올리는 방식에서 클릭하는 방식으로 변경 * refactor: (#152) 중복되는 타입을 Exclude를 이용하여 가독성 개선 * design: (#152) 댓글 메뉴 글자 색상 좀 더 진하게 수정 * refactor: (#152) 작성자가 아닌 사용자를 Normal에서 NotWriter로 수정 * refactor: (#152) 모달에서 받는 props를 관심사에 따라 객체로 변경 * refactor: (#152) 로그인하였고, 작성자가 아닌 유저를 NORMAL에서 NOT_WRITER로 변경 * refactor: (#152) UI에 관련된 상수, 타입들을 분리 * feat: (#152) 댓글 목록을 가공하여 클라이언트에서 사용하는 코드 추가 dev로 머지하려고 했으나 isEdit이 존재하지 않아서 스토리북 에러를 막기 위해 기능을 추가 * 게시글 조기 마감 기능 구현 (#115) * refactor: (#95) 필요없는 테스트 클래스 삭제 * feat: (#95) 해당 게시글 조기 마감 기능 구현 * refactor: (#95) API 성공 시, swagger 표시를 201에서 200으로 수정 * refactor: (#95) swagger 500 에러 설명은 생략 * refactor: (#95) Post 클래스 마지막 줄 개행 * refactor: (#95) PostService 클래스 마지막 줄 개행 * refactor: (#95) 작성자인 경우만 조기 마감이 가능하도록 구현 * refactor: (#95) 조기 마감 할 시, 본인 게시글인지, 마감되지 않은 게시글인지, 마감 시간까지 절반 시간이 지난 것에 대한 예외처리 구현 * test: (#95) 게시글 조기 마감 시, 유효성 검증에 대한 테스트 코드 추가 * refactor: (#95) PathVariable 값인 id의 변수명을 postId로 더 명확하게 개선 * refactor: (#95) path parameter를 사용하여 테스트 코드의 url을 더 직관적으로 개선 * refactor: (#95) PostServiceTest의 코드에서 finded 단어를 found로 개선 * refactor: (#95) 조기 마감하는 메서드 명들을 더 알맞은 단어로 개선 * refactor: (#189) undefined 된 이미지 파일에 대한 디버깅을 위해 MultipartException의 ExceptionHandler 추가 (#191) * undefined 이미지 파일 디버깅을 위해 예외 스택 호출 코드 추가 (#195) * refactor: (#189) undefined 된 이미지 파일에 대한 디버깅을 위해 MultipartException의 ExceptionHandler 추가 * refactor: (#189) requestPart의 경계를 지정하기 위한 name속성 추가 * 전체 게시글 목록 기능에 검색한 게시글 목록 기능 추가 구현 + 검색 기능 구현 + 스토리북 .env 설정 (#177) * feat: (#176) 검색한 키워드의 목록을 fetch하는 기능 구현 * refactor: (#176) react-query로 전체 게시글 불러오는 훅에서 검색 추가 기능 구현 캐싱이 올바르게 되도록 categoryId, keyword에 대해 기본값 부여 * fix: (#176) .env 파일에 대한 정보를 스토리북에도 적용 * refactor: (#176) 헤더의 검색 컴포넌트에서 검색 url 설정 * feat: (#176) 검색 ULR에 왔을 때 검색 API가 요청되도록 구현 게시글 리스트 컴포넌트에서 본문 어떠한 URL에도 해당되지 않는다면 전체 게시글 목록을 요청하도록 수정 * refactor: (#176) 검색의 keyword를 문자열로 사용하던 부분 상수로 변경 * refactor: (#176) 검색한 키워드를 100자 이내로 잘라서 요청하도록 수정 * refactor: (#176) 게시글 종류의 변수명으로 content에서 postType으로 변경 * refactor: (#176) 게시글 정책에 관련된 숫자들 상수화 * refactor: (#176) postList에 관련된 인자가 많아짐에 따라 2개의 인자를 받되 객체로 받도록 수정 * 내 정보 페이지 UI 구현, Accordion 컴포넌트 구현 (#179) * feat: (#175) Accordion 컴포넌트 구현 및 스토리 작성 * feat: (#175) 내정보 페이지 UI/UX 구현 * chore: (#175) 불필요한 코드 삭제 * feat: (#175) 회원 탈퇴 모달 컴포넌트 구현 * feat: (#175) Layout 컴포넌트 추가, 반응형 디자인 구현 * fix: (#175) isPicked props 앞에 $ 기호 추가 * H2 콘솔 원격 접속 허용 (#197) * refactor: (#196) h2-console 필터 허용 * feat: (#196) h2-console web 허용 * chore: (#196) 코드 컨벤션 정리 * feat: (#196) file 크기 설정 * multipartFile 관련 에러 디버깅 (#198) * refactor: (##) multipartfile 관련 에러 디버깅 * refactor: (##) multipartfile 관련 에러 디버깅 * refactor: (##) 이미지 파일 받기 위해 파라미터 네임 지정 (#200) * refactor: (##) 디버깅을 위한 예외 추적 코드 추가 (#202) * fix: (#193) 댓글 관련한 테스트 실패 코드 수정 (#194) 목 데이터를 서버의 댓글 리스트에서 클라이언트에서 사용하는 댓글 리스트로 변경 * 소셜 로그인(회원가입) 기능 구현 (#120) * feat: (#74) 로그인, 리다이렉션 페이지 구현 * feat: (#74) 로그인 정보에 대한 context 구현 * refactor: (#74) 실제 API 연동을 위한 url path로 대체 * design: (#74) 선택지 리스트 모바일의 경우 스크롤 없도록 수정 * chore: (#74) 카카오 로그인 버튼 svg 파일 추가 * feat: (#74) 페이지 라우팅 구현 * chore: (#74) request의 key 값 수정 * 회원 닉네임 수정, 회원 탈퇴 fetch 함수 구현 및 MSW 코드 작성 (#178) * refactor: (#153) delete를 패치하는 함수 오류 제거를 위한 리팩터링 * feat: (#153): 유저 닉네임 변경, 회원 탈퇴 MSW 코드 작성 * feat: (#153) 유저 닉네임, 회원 탈퇴 api fetch 함수 구현 * refactor: (#153) BASE_URL 추가 및 MSW 코드 성공했을 때 구체적인 메세지로 수정 * fix: (#74) 로그인 후 context API에 저장이 안되는 오류 해결 * feat: (#74) 쿠키 getter, setter 함수 제작 * feat: (#74) 로그인 후 쿠키에 토큰을 저장하고 context API에 토큰 저장 * refactor: (#74) 로그인 정보 변수 타입 위치 이동 * feat: (#74) 레이아웃 컴포넌트에 전역 로그인 정보 적용하기 * feat: (#74) 초기 진입 시 쿠키 내 엑세스 토큰 확인/설정하는 코드 작성 * fix: (#74) 로그인 관련 라우팅이 안되는 오류 해결 * feat: (#74) 유저 로그인 쿼리에 현 로그인 여부를 키로 추가 * feat: (#74) 글쓰기 api url를 실제 url로 수정 * refactor: (#74) 유저정보 훅 이름 변경에 따른 수정 * feat: (#74) 글목록 페이지에 전역 유저정보 적용 * fix: 중복 코드로 인한 오류 수정 * fix: 스타일드 컴포넌트 프롭스 오타 오류 수정 * chore: 허스키 파일 업데이트 없음 * refactor: 불필요한 코드 삭제 * refactor: 엑세스 토큰 타입 파일 분리 * refactor: (#74) 로그인 정보 관련 이름 수정, login > logged * feat: (#74) fetch 유틸함수에서 쿠키를 불러와 토큰 넣은 헤더 생성 * fix: (#74) 쿠키가 브라우저에 저장 안되는 오류 수정 - path=/ 를 통해 모든 url에서 쿠키 접근가능하도록 수정 * feat: (#74) 패치 헤더에 직접 토큰을 넣는 방식으로 수정함에 따른 기존 코드 수정 * feat: (#74)사용자 정보 가지고 오는 api 실제 dev서버 url로 수정 * fix: (#74) 로그인 정보 - 사용자 정보 불러오기 무한루프 오류 해결 * refactor: (#74) api 연결 url 이름 규칙에 맞게 수정 * refactor: (#74) 쿼리스트링 가지고 오는 방식 수정 * feat: (#74) .env url 규칙에 따라 수정 --------- Co-authored-by: 김영길/KIM YOUNG GIL <[email protected]> Co-authored-by: chsua <[email protected]> * fix: (#204) 카카오 리다이렉트 URL 환경 변수 변경 (#206) * refactor: (##) 이미지 파일 관련 에러 추적을 위한 코드 추가 (#207) * 이미지 파일 관련 에러 추적을 위한 코드 추가 (#208) * refactor: (##) 이미지 파일 관련 에러 추적을 위한 코드 추가 * refactor: (##) contentImages required 속성을 false로 설정 * 이미지 파일 관련 에러 추적을 위한 코드 추가 (#209) * refactor: (##) 이미지 파일 관련 에러 추적을 위한 코드 추가 * refactor: (##) 이미지 파일 관련 에러 추적을 위한 코드 추가 * 이미지 파일 관련 에러 추적을 위한 코드 추가 (#211) * refactor: (##) 이미지 파일 관련 에러 추적을 위한 코드 추가 * refactor: (##) 이미지 파일 관련 에러 추적을 위한 코드 추가 * refactor: (##) 이미지 파일 관련 에러 추적을 위한 코드 추가 * refactor: (##) 이미지 파일 관련 에러 추적을 위한 코드 추가 * refactor: (##) 이미지 파일 관련 에러 추적을 위한 코드 추가 (#212) * refactor: (##) 이미지 파일 관련 에러 추적을 위한 코드 추가 (#214) * 글작성 폼 이미지 파일 잘못 전달되는 오류 수정 및 mock 카테고리 id가 전달되는 오류 수정_Feat/#210 (#213) * fix: (#210) 본문 사진 input 사라짐에 따라 발생하는 오류 수정 * feat: (#210) 이미지가 없는 경우 undefined이 아닌 임의의 파일로 전달. * feat: (#205) 선택한 카테고리 아이디 리스트 api에 보내기 * fix: (#215) 반환되는 날짜 데이터의 형식 수정 (#216) * refactor: (#217) requestPart의 name 속성 생략 (#218) * 게시글 상세 조회 기능 구현 (#186) * feat: (#174) 게시글 상세 조회 기능 Dto 구현 * feat: (#174) 게시글 상세 조회 기능 구현 (아직 Post content의 imageUrl 필드는 추가 못함) * refactor: (#174) response dto에 Post content의 imageUrl 필드 추가 * refactor: (#174) 게시글 내용의 이미지 데이터 처리 로직 추가 * refactor: (#174) dto 관련 클래스들을 패키지로 나누기 * refactor: (#174) 이미 tostring이 있는 record에서 tostring 삭제 * refactor: (#174) stream() 코드를 더 가독성이 높게 하나의 메서드마다 개행을 해주는 것으로 변경 * refactor: (#174) 게시글 작성자가 아닐 시, 상세조회 예외 처리 기능 구현 * refactor: (#174) 로그인 한 회원의 변수명 통일 * refactor: (#174) contentImages가 있는지 확인하는 메서드 명 개선 * refactor: (#174) null 체크 메서드를 isNull에서 nonNull로 개선 * refactor: (#174) 페이징 제외한 원시 타입을 래퍼 클래스로 원복 * refactor: (#174) 출력문 제서 * 카테고리, 게시글 목록 연동 및 리팩터링 (#219) * feat: (#205) 카테고리에 관련된 API 서버와 연동 wus폴더에 있던 파일들 밖으로 이동 * feat: (#205) 게시글 작성 페이지에서 카테고리 리스트를 불러와 옵션으로 변환하는 기능 구현 * refactor: (#205) 마감 시간을 구하는 유틸 함수 분리 * refactor: (#205) sua 폴더에 있던 post.ts MSW 코드를 밖의 post.ts 파일과 병합 * refactor: (#205) wus 폴더에 있던 유저 MSW 코드 밖으로 이동 * refactor: (#205) wus 폴더의 게시글 목록 MSW 코드를 밖으로 분리 및 파일명 변경 * refactor: (#205) api 폴더에 있던 wus 폴더 삭제 및 파일 이동 * refactor: (#205) 댓글을 제외한 나머지 api에 BASE_URL 코드 추가 * refactor: (#205) AuthContext에서 User 타입 변경 및 액세스 토큰이 있을 경우 isLogged:true로 수정 * fix: (#205) 게시글의 카테고리 리스트에 ?를 붙혀 없어도 에러가 나지 않게 수정 * feat: (#205) 게시글 서버에서 받는 타입 명세 선언 * refactor: (#205) 서버에서 받은 게시글 목록을 클라이언트에서 사용하는 게시글 목록 명세로 변환 * refactor: (#205) 게시글 명세인 startTime, endTime의 이름을 변경 * 핵심 기능 웹 접근성 개선하기_Feat/#203 (#222) * feat: (#203) 선택지 태그 목적에 맞게 수정(ul-li > div-button) * feat: (#203) aria-label 추가 및 불필요한 이벤트 막기 - 상세페이지에서 상세페이지로 이동하는 링크 이벤트 방지 * 게시글 타입 수정에 따른 반영이 되지 않아 게시글 컴포넌트에서 발생하는 오류 수정 (#225) * fix: 게시글 타입 수정 미반영으로 인한 오류 해결 * fix: jsx파일의 return은 undefined이 될 수 없음 해결 * 작성자가 아니면 예외 처리하는 로직 삭제 (#226) * refactor: (#224) 작성자가 아니면 예외 처리하는 로직 삭제 * refactor: (#224) 작성자 유효성 검증 로직 삭제로 인한 필요없는 테스트 코드 삭제 * 이미지 디렉토리 경로 수정 (#229) * feat: (#196) 날짜/시간 포맷 지정 * fix: (#228) 이미지 경로 수정 * 게시글 생성, 투표지 선택 시 새로 고침해야 적용되는 버그 (#227) * fix: (#220) 게시글 생성 후 게시글 목록의 캐싱을 초기화하도록 수정 * fix: (#220) 처음 투표를 할 때 사용하는 커스텀 훅 구현 * fix: (#220) 선택지 수정 커스텀 훅 구현 및 적용 * test: (#220) 선택지 수정, 생성 커스텀 훅이 통신되는지 테스트 * fix: (#220) 잘못된 패치 유틸 함수로 인한 에러 수정 * 글 상세 페이지에 댓글 관련 컴포넌트 추가 및 댓글 CRUD API 연동 (#230) * refactor: (#168) 기존 댓글 하나가 아닌 댓글 리스트에 대한 낙관적 업데이트하도록 로직 변경 * refactor: (#168) post detail에 대한 query key 추가, 실서버 주소로 API 주소 변경 * feat: (#168) 버튼 클릭 시 댓글 삭제 쿼리 연결 * refactor: (#168) 댓글 등록/수정 버튼에 댓글 등록/수정 쿼리 연결 * chore: (#168) 빠진 props 추가 * feat: (#168) 게시글 상세 조회 커스텀 쿼리 구현 * feat: (#168) 댓글 등록 커스텀 쿼리 연결 * chore: (#168) getFetch 코드 순서 변경 * chore: (#168) base_url 추가 * feat: (#168) token 값으로 member id 가져오는 로직 구현 * 없는 파일 이미지인 경우 빈값 반환 (#234) * chore: (#232) 코드 컨벤션 수정 * fix: (#232) 없는사진 파일명 전환 로직 구현 * 글 상세 페이지에서 이미지 url 수정 및 댓글 등록 fetch 함수 content type 수정 (#235) * fix: (#233) fetch 메서드에 content type 추가 * chore: (#233) imageUrl 수정 및 컴포넌트 위치 수정 * fix: (#233) content type 추가 * 게시글 작성 시 content type 수정 및 댓글 수정 에러 해결 (#237) * fix: (#236) 게시글 작성을 위해 content type 제거 * chore: (#236) 댓글 수정을 commentId 값 변경 * fix: (#240) 중복 카테고리 추가 시 예외 발생하도록 수정 (#241) * fix: (#245) 조기 마감 제한 삭제 (#246) * 카테고리 불러오기 api 연결 및 버그 수정 및 기타 등등_Feat/#238 (#247) * fix: (#238) 카테고리 api 속성이 달라 발생하는 오류 수정 - api 필드 isFavorite이 favorite으로 되어있었음 * fix: 카테고리 토글에 따른 즉시 렌더링 안되는 오류 수정 - 리액트 쿼리 키에서 favorite 삭제 * fix: 댓글 수정 시 발생하는 오류 해결 - 수정된 댓글 콘텐츠만 전달하여 발생한 id 못찾는 오류를 댓글 객체 전체를 전달하는 방식으로 수정하여 해결 * fix: 글 작성자는 투표 결과를 바로 볼 수 있고 투표 할 수 없도록 수정 * feat: 통계 api response 형식 수정에 따른 반영 * Update issue templates (#267) * 초기 닉네임 생성 정책 변경 (#264) * feat: (#164) 초기 닉네임 생성 정책 변경 * test: (#263) 닉네임 유효성 검증 추가 * refactor: (#263) 초기 닉네임 prefix 변경 * 내가 투표 한 글 조회 기능 구현 (#134) * feat: (#80) 리파지터리 메서드 추가 * feat: (#80) 내가 투표한 게시글 목록 조회 API 기능 추가 * feat: (#80) Swagger 어노테이션 추가 * test: (#80) 테스트 추가 * style: (#80) 개행 추가 * style: (#80) swaager 명세서 보충 * refactor: (#80) JPA 메서드 이름 수정 * feat: (#80) 회원본인이 투표한 게시글 조회 api 페이징 기능 추가 * feat: (#80) 페이징 정렬 기준 추가 * test: (#80) 회원본인이 투표한 게시글 목록 조회 테스트 추가 * style: (#80) import문 정리 * feat: (#80) swagger 문서 추가 * fix: (#80) 시간 관련검증 분까지 지정으로 수정 * 로그아웃 구현 (#261) * feat: (#126) 로그아웃 버튼 클릭시 토큰 삭제 및 전역 로그인 정보 초기화 * fix: (#126) 로그아웃시 기존userInfo가 로그인정보에 다시 저장되는 문제 해결 * refactor: (#126) 로그인 정보 필드명 수정. * fix: 토큰 만료시키는 방법 수정하여 로그인 후 로그아웃 안되는 오류 수정 - 로그인 후 페이지 새로고침 없이 로그아웃시 로그아웃되지 않음 - 마감시간을 기존 1970으로 설정한 것에서 현재시간 기준 -1초로 변경 * (비회원) 게시글 상세 조회 (#286) * feat: (#284) 비회원용 게시글 상세 조회 기능 구현 * refactor: (#284) 불필요한 메서드 제거 * refactor: (#284) /guest가 uri에 suffix로 붙어있으면 필터를 거치지 않도록 추가 * refactor: (#284) 메서드 static 제거 및 메서드 순서 변경 * refactor: (#284) guest에 대한 요청을 판단하는 filter에 http method에 대한 검증 추가 * TimePickerOptionList 컴포넌트 및 Modal 컴포넌트 UI/UX 개선 (#201) * feat: (#157) 댓글 관련 API fetch 함수 및 타입 분리 * refactor: (#157) 함수명 구체화, query key 상수화, CommentRequest 타입 간소화 * feat: (#157) 댓글 조회, 등록, 수정, 삭제 관련 커스텀 쿼리 구현 * feat: (#157) 댓글 관련 API mocking handler 구현 * feat: (#157) 쿼리 요청 실패에 대한 에러 핸들링 및 롤백 기능 구현 * refactor: (#169) useEffect dependency 추가, props이름에 $ 추가 * design: (#169) font, border 등 css 속성 변경 * design: (#169) TimePickerOption 높이 및 색상 조정 * feat: (#169) 키보드 ESC로 모달을 닫을 수 있는 스토리 추가 * Update issue templates (#267) * 초기 닉네임 생성 정책 변경 (#264) * feat: (#164) 초기 닉네임 생성 정책 변경 * test: (#263) 닉네임 유효성 검증 추가 * refactor: (#263) 초기 닉네임 prefix 변경 * refactor: (#169) keyCode 대신 key 로 변경 * chore: (#169) 예시 변수 갑 변경 * refactor: (#169) useEffect 내부의 함수를 분리, wheel event 추가 * design: (#169) height, z-index 등 css 속성 값 변경 --------- Co-authored-by: 김영길/KIM YOUNG GIL <[email protected]> Co-authored-by: JeongHun Yu <[email protected]> * utils의 fetch 함수 리팩터링, ErrorBoundary 구현, query를 이용한 에러핸들링 (#294) * refactor: (#158) try-catch 구문으로 변경 Co-authored-by: 김영길/KIM YOUNG GIL <[email protected]> Co-authored-by: chsua <[email protected]> * feat: (#158) ErrorBoundary 구현 * refactor: (#158) 데이터 생성 시 에러 핸들링 코드 이동 * 회원 닉네임 수정, 회원 탈퇴 react-query를 이용한 커스텀훅 구현 (#192) * feat: (#187) 유저가 닉네임을 변경하는 커스텀 훅 구현 * feat: (#187) 유저 회원 탈퇴 기능 커스텀 훅 구현 * feat: (#187) 닉네임 변경 부분 낙관적 업데이트 적용 * refactor: (#187) 닉네임 변경에 실패했을 경우 console.error 코드 추가 * refactor: (#187) 회원 탈퇴를 cancel에서 withdrawal로 변경 * refactor: (#187) dev 브런치 머지 후 파일 경로 재설정 * 토스트/스낵바 컴포넌트 제작 (#259) * feat: (#258) 토스트 컴포넌트 제작 * feat: (#258) 토스트 컴포넌트 생성/삭제 훅 생성 * feat: (#258) 토스트 노출 시간 상수화 * feat: (#258) 토스트 fadeIn/Out 애니메이션 추가 * feat: (#258) 토스트 위치 props 추가 - top/bottom 설정 가능 - 맨 위 화면에 노출 - vw/vh를 사용하여 화면의 가로 중앙에 위치 * test: (#258) 토스트 컴포넌트 사이즈별/위치별 테스트 생성 * feat: (#258) 스낵바 컴포넌트 제작 * test: (#258) 스낵바 컴포넌트 사이즈별/위치별 테스트 생성 * refactor: (#258) 토스트 열림상태 변경 코드 리팩토링 * refactor: 스타일 관련 상수 표기법 변경 및 공통 상수 파일 분리 * 게시글 옵션을 ContextApi를 이용해 전역으로 관리 (#288) * feat: (#282) 게시글 옵션을 ContextApi를 이용해 전역으로 관리 상세 게시글을 보다가 뒤로가기를 하여도 원래 보던 옵션 게시글 목록이 나오도록 하기 위해서 * refactor: (#282) Provider를 RouterProvider만 감싸도록 수정 contextApi를 사용하며 setPostOption의 타입을 선언하는 곳에서 Dispatch, SetStateAction를 사용하도록 수정 * 게시글 목록이 비었을 때 사용자에게 해당 조건에 맞는 게시글이 존재하지 않는다는 UI 컴포넌트 구현 (#199) * feat: (#188) 빈 게시글 목록 리스트일 경우 사용자에게 보여주는 컴포넌트 UI 구현 및 적용 * chore: (#188) husky 권한 부여 * refactor: (#188) usePostList에서 데이터가 비었는지 여부를 반환하는 기능 추가 * refactor: (#188) 스타일 속성 개행, MSW 코드 중 검색 키워드 문자열로 수정 * refactor: (#188) 검색했을 때 전체 옵션이 아닌 경우 '현재 조건에는'이라는 접두사를 붙혀줌 --------- Co-authored-by: chsua <[email protected]> * (비회원) 게시글 목록 조회 (#291) * feat: (#285) querydsl 설정 * feat: (#285) 전체, 진행중, 마감완료, 최신순, 인기순 필터에 따른 게시글 목록 동적 쿼리 구현 * feat: (#285) 쿼리 성능 최적화를 위한 default batch fetch size 설정 * feat: (#285) 비회원 게시글 목록 조회 기능 구현 * feat: (#285) 비회원 게시글 목록 조회 API 구현 * refactor: (#285) 코드 컨벤션 수정 * refactor: (#285) 불필요한 출력문 제거 * refactor: (#285) 중복 어노테이션 제거 * refactor: (#285) 테스트 메서드 가독성 향상 * refactor: (#285) API Swagger 문서화 * chore: (#285) 코드 컨벤션 수정 * refactor: (#285) 시간 저장 범위 수정 * feat: (#285) 카테고리 필터링 조회 구현 * fix: (#285) 불필요한 클래스 제거 * 투표글, 댓글, 닉네임 신고 기능 구현 (#262) * feat: (#164) 신고 엔티티, 레포지토리 구현 * feat: (#164) 게시글 신고 기능 구현 * refactor: (#164) 도메인으로 로직 이동, 및 예외 추가, 함수 분리 * test: (#164) Report의 repository, service 테스트 추가 * feat: (#164) 닉네임 신고 기능 구현 * refactor: (#164) 닉네임 getter 추가 * test: (#164) 닉네임 신고 기능에 대한 검증 추가 * chore: (#164) swagger 어노테이션 추가 * test: (#164) 컨트롤러 신고 검증 추가 * refactor: (#164) nested로 신고 기능 묶기 * refactor: (#164) Report 엔티티 클래스에 컬럼 복합 인덱스 설정 * refactor: (#164) 신고에 대한 비즈니스 로직을 어플리케이션 계층으로 이동 * refactor: (#164) enum타입으로 request받기, ReportService 클래스의 메서드 분리, 중복제거 * refactor: (#164) Report 클래스 reason 필드 추가 * refactor: (#164) NumberGenerator, NicknameNumberGenerator 삭제 * refactor: (#164) 신고 횟수에 대한 비즈니스 로직을 어플리케이션 계층으로 이동 * chore: (#164) conflict 해결 완료 * chore: (#164) conflict 해결 완료 * Revert "투표글, 댓글, 닉네임 신고 기능 구현 (#262)" (#315) This reverts commit 3495a235055fc56b23034e8545adfa6d0057ace8. * feat: (#164) 신고 기능 구현 (#316) * 게시글, 댓글, 닉네임 신고 API fetch 함수 구현 HTML5 해결 (#296) * feat: (#251) html5으로 인식되도록 코드 추가 * feat: (#167) 신고하는 api 생성 * feat: (#167) 신고용 모달 생성 및 기존 코멘트모달 리팩토링 - 기존 commentModal을 twoButtonModal로 수정 * refactor: 공통으로 사용되는 메뉴 컴포넌트 이름 수정 및 common으로 이동 - CommentMenu > PostMenu * refactor: 신고모달 생성에 따른 기존 댓글신고, 댓글 작성자 신고 모달 대체 * refactor: postMenu를 처음 commentMenu으로 되돌리기 * feat: 공용으로 사용할 수 있는 메뉴 컴포넌트 제작 * test: 공용으로 사용할 수 있는 메뉴 컴포넌트 테스트 * feat: (#167) 게시물 신고 ui 수정 및 api 연동 - 신고 버튼 > 모바일에서는 버튼을 누르면 (게시글/닉네임) menu 가 등장 > 데스크탑에서는 버튼을 게시물신고와 작성자 닉네임 신고로 분리 - 삭제 버튼 클릭시 확인하는 모달 등장 - 신고 버튼 클릭시 사유를 선택하는 모들 등장 - 다만, 아직 api 오류 발생 * test: (#167) 신고 기능 추가에 따라 컴포넌트가 수정되어 테스트 코드도 수정 * fix: then이 catch보다 늦게 있어 오류 발생해도 then이 실행되는 오류 수정 * fix: (#167) 모달창에서 버튼을 클릭해도 모달이 닫히지 않는 오류 수정 * feat: 게시물 삭제 조건 변경 및 예외처리 시 api 통신하지 않도록 수정 - 삭제조건: 마감되지 않으면 삭제불가 > 20인 이상 투표시 삭제 불가 * test: (#167) 게시물 삭제/신고 msw 생성 및 테스트 * refactor: alert창 오타 수정 * test: 댓글 가지고 오는 api msw 중지 * fix: (#167) 모달창에서 버튼을 클릭해도 모달이 닫히지 않는 오류 수정 * feat: (#167) 댓글 신고/댓글 작성자 닉네임 신고기능 생성 * feat: (#167) 게시글 액션 타입 제한 적용 * test: (#167) 게시글 메뉴 컴포넌트 타입 제한에 따른 테스트 변경 * test: (#167) api 테스트 통과를 위해 댓글 msw 복구 * refactor: DeleteModal과 동일한 CommentDeleteModal 삭제하기 * refactor: (#167) 불필요한 타입 정의 정리 * refactor: (#167) 스타일 컨벤션 지키기 * refactor: (#167) 삭제 모달의 삭제 대상 타입 정의 및 상수화 * fix: (#167) 댓글 신고 시 request 데이터 타입 오지정 수정 * feat: (#308) 유저 정보, 카테고리 목록에서 캐싱, 스테일 타임을 1시간으로 수정 (#309) * 게시글 작성, 게시글 투표 시 유저의 정보가 변하도록 수정, 비회원 유저 정보 요청하지 않도록 수정 (#307) * feat: (#299) 게시글 작성, 게시글 투표 시 유저의 정보가 변하도록 수정 비회원일 때 members/me로 통신하지 않도록 수정 * test: (#299) 비회원일때 유저 정보를 불러오는 테스트 케이스 추가 * refactor: (#299) boolean 값을 상수화하여 코드 가독성 개선 * refactor: (#299) api 함수에서 isLogged를 isLoggedIn으로 변수명 변경 * Member 스키마 수정에 따른 코드 변경 (#330) * refactor: (#323) Member 엔티티 필드 수정으로 인한 컴파일 에러 처리 * refactor: (#323) 테스트 오류 수정 --------- Co-authored-by: jeomxon <[email protected]> * 비회원 게시글 목록 조회 추가 기능 구현 (#304) * test: (#292) 비회원 게시글 목록 조회 테스트 케이스 추가 및 비회원 게시글 목록 목킹 데이터 추가 * feat: (#292) 게시글 목록을 불러오는 api 함수에서 회원, 비회원을 구별하여 요청하는 것으로 변경 * test: (#292) 게시글 목록 조회 회원, 비회원에 대한 테스트 케이스 추가 * feat: (#292) 포스트 리스트에 적용 * fix: (#292) 댓글, 투표 MSW 코드에서 .env의 환경 변수를 설정한 것을 제거하고 테스트가 동작하도록 수정 * feat: (#292) 액세스 토큰을 가지고 있을 때 처음 렌더링 시 게스트 게시글 목록에서 회원용 게시글 목록으로 리패치 되도록 구현 * feat: (#292) 카테고리별 게시글일 때 서버에 요청하는 URL 변경 잘못 설정되어 있던 카테고리별 게시글 라우터 변경 내가 투표한 게시글과 내가 작성한 게시글을 번갈아 누를 때 요청하지 않는 문제 수정 * test: (#292) 투표 테스트에서 given을 구체화 * 현재 유저가 어떤 게시글 종류를 보고 있는지 정보를 반환하는 함수 구현 및 적용 (#318) * feat: (#310) 유저에게 어떤 게시글에 대한 종류를 보고 있는지 정보를 반환하는 함수 구현 * feat: (#310) 레이아웃, 포스트 리스트 페이지에 코드 적용 * feat: (#310) 검색어 글자가 10글자가 넘어간다면 ...으로 축약해서 보여주도록 구현 test의 given을 구체화 * 투표 상세보기에서 투표 변경사항이 즉시 적용되지 않음 (#306) * feat: (#275) 게시물 상세 컴포넌트에서 게시글 정보 불러오기 리액트 쿼리 도입 * feat: (#275) 마감완료 여부 색상 동그라미로 보여주기 구현 * feat: (#275) 작성시간/마감시간 날짜형식에서 텍스트 형태로 수정 - 마감되었을 경우 마감완료로 표시 * fix: (#275) 게시물 목록 필터링/솔팅 셀렉터가 글에 가려지는 오류 수정 - z-index를 1로 설정 * feat: (#275) 전역 로그인 정보에 회원id 필드 추가 * feat: (#275) 게스트용 게시글 api 제작 및 연결 - 상세페이지에서 로그인 정보가 false라면 게스트용 게시글 상세정보 api로 fetch * refactor: (#275) 작성된 선택지 목록 컴포넌트에 작성자 여부 정의 방법 수정 * fix: 댓글창에 게스트여부 잘못 전달되는 오류 수정 * feat: 사용하지 않는 유저 포인트 정보 UI 삭제 * feat: (#275) 조기마감/게시글 삭제도 리액트 쿼리로 전환 * refactor: (#275) 가독성을 위한 개행 * feat: (#275) 게시물 삭제 시 유저 정보 캐시 삭제하도록 설정 * 회원 닉네임 수정, 회원 탈퇴 react-query를 이용한 커스텀훅 구현 (#192) * feat: (#187) 유저가 닉네임을 변경하는 커스텀 훅 구현 * feat: (#187) 유저 회원 탈퇴 기능 커스텀 훅 구현 * feat: (#187) 닉네임 변경 부분 낙관적 업데이트 적용 * refactor: (#187) 닉네임 변경에 실패했을 경우 console.error 코드 추가 * refactor: (#187) 회원 탈퇴를 cancel에서 withdrawal로 변경 * refactor: (#187) dev 브런치 머지 후 파일 경로 재설정 * 토스트/스낵바 컴포넌트 제작 (#259) * feat: (#258) 토스트 컴포넌트 제작 * feat: (#258) 토스트 컴포넌트 생성/삭제 훅 생성 * feat: (#258) 토스트 노출 시간 상수화 * feat: (#258) 토스트 fadeIn/Out 애니메이션 추가 * feat: (#258) 토스트 위치 props 추가 - top/bottom 설정 가능 - 맨 위 화면에 노출 - vw/vh를 사용하여 화면의 가로 중앙에 위치 * test: (#258) 토스트 컴포넌트 사이즈별/위치별 테스트 생성 * feat: (#258) 스낵바 컴포넌트 제작 * test: (#258) 스낵바 컴포넌트 사이즈별/위치별 테스트 생성 * refactor: (#258) 토스트 열림상태 변경 코드 리팩토링 * refactor: 스타일 관련 상수 표기법 변경 및 공통 상수 파일 분리 * 게시글 옵션을 ContextApi를 이용해 전역으로 관리 (#288) * feat: (#282) 게시글 옵션을 ContextApi를 이용해 전역으로 관리 상세 게시글을 보다가 뒤로가기를 하여도 원래 보던 옵션 게시글 목록이 나오도록 하기 위해서 * refactor: (#282) Provider를 RouterProvider만 감싸도록 수정 contextApi를 사용하며 setPostOption의 타입을 선언하는 곳에서 Dispatch, SetStateAction를 사용하도록 수정 * 게시글 목록이 비었을 때 사용자에게 해당 조건에 맞는 게시글이 존재하지 않는다는 UI 컴포넌트 구현 (#199) * feat: (#188) 빈 게시글 목록 리스트일 경우 사용자에게 보여주는 컴포넌트 UI 구현 및 적용 * chore: (#188) husky 권한 부여 * refactor: (#188) usePostList에서 데이터가 비었는지 여부를 반환하는 기능 추가 * refactor: (#188) 스타일 속성 개행, MSW 코드 중 검색 키워드 문자열로 수정 * refactor: (#188) 검색했을 때 전체 옵션이 아닌 경우 '현재 조건에는'이라는 접두사를 붙혀줌 --------- Co-authored-by: chsua <[email protected]> * (비회원) 게시글 목록 조회 (#291) * feat: (#285) querydsl 설정 * feat: (#285) 전체, 진행중, 마감완료, 최신순, 인기순 필터에 따른 게시글 목록 동적 쿼리 구현 * feat: (#285) 쿼리 성능 최적화를 위한 default batch fetch size 설정 * feat: (#285) 비회원 게시글 목록 조회 기능 구현 * feat: (#285) 비회원 게시글 목록 조회 API 구현 * refactor: (#285) 코드 컨벤션 수정 * refactor: (#285) 불필요한 출력문 제거 * refactor: (#285) 중복 어노테이션 제거 * refactor: (#285) 테스트 메서드 가독성 향상 * refactor: (#285) API Swagger 문서화 * chore: (#285) 코드 컨벤션 수정 * refactor: (#285) 시간 저장 범위 수정 * feat: (#285) 카테고리 필터링 조회 구현 * fix: (#285) 불필요한 클래스 제거 * 투표글, 댓글, 닉네임 신고 기능 구현 (#262) * feat: (#164) 신고 엔티티, 레포지토리 구현 * feat: (#164) 게시글 신고 기능 구현 * refactor: (#164) 도메인으로 로직 이동, 및 예외 추가, 함수 분리 * test: (#164) Report의 repository, service 테스트 추가 * feat: (#164) 닉네임 신고 기능 구현 * refactor: (#164) 닉네임 getter 추가 * test: (#164) 닉네임 신고 기능에 대한 검증 추가 * chore: (#164) swagger 어노테이션 추가 * test: (#164) 컨트롤러 신고 검증 추가 * refactor: (#164) nested로 신고 기능 묶기 * refactor: (#164) Report 엔티티 클래스에 컬럼 복합 인덱스 설정 * refactor: (#164) 신고에 대한 비즈니스 로직을 어플리케이션 계층으로 이동 * refactor: (#164) enum타입으로 request받기, ReportService 클래스의 메서드 분리, 중복제거 * refactor: (#164) Report 클래스 reason 필드 추가 * refactor: (#164) NumberGenerator, NicknameNumberGenerator 삭제 * refactor: (#164) 신고 횟수에 대한 비즈니스 로직을 어플리케이션 계층으로 이동 * chore: (#164) conflict 해결 완료 * chore: (#164) conflict 해결 완료 * Revert "투표글, 댓글, 닉네임 신고 기능 구현 (#262)" (#315) This reverts commit 3495a235055fc56b23034e8545adfa6d0057ace8. * feat: (#164) 신고 기능 구현 (#316) * 게시글, 댓글, 닉네임 신고 API fetch 함수 구현 HTML5 해결 (#296) * feat: (#251) html5으로 인식되도록 코드 추가 * feat: (#167) 신고하는 api 생성 * feat: (#167) 신고용 모달 생성 및 기존 코멘트모달 리팩토링 - 기존 commentModal을 twoButtonModal로 수정 * refactor: 공통으로 사용되는 메뉴 컴포넌트 이름 수정 및 common으로 이동 - CommentMenu > PostMenu * refactor: 신고모달 생성에 따른 기존 댓글신고, 댓글 작성자 신고 모달 대체 * refactor: postMenu를 처음 commentMenu으로 되돌리기 * feat: 공용으로 사용할 수 있는 메뉴 컴포넌트 제작 * test: 공용으로 사용할 수 있는 메뉴 컴포넌트 테스트 * feat: (#167) 게시물 신고 ui 수정 및 api 연동 - 신고 버튼 > 모바일에서는 버튼을 누르면 (게시글/닉네임) menu 가 등장 > 데스크탑에서는 버튼을 게시물신고와 작성자 닉네임 신고로 분리 - 삭제 버튼 클릭시 확인하는 모달 등장 - 신고 버튼 클릭시 사유를 선택하는 모들 등장 - 다만, 아직 api 오류 발생 * test: (#167) 신고 기능 추가에 따라 컴포넌트가 수정되어 테스트 코드도 수정 * fix: then이 catch보다 늦게 있어 오류 발생해도 then이 실행되는 오류 수정 * fix: (#167) 모달창에서 버튼을 클릭해도 모달이 닫히지 않는 오류 수정 * feat: 게시물 삭제 조건 변경 및 예외처리 시 api 통신하지 않도록 수정 - 삭제조건: 마감되지 않으면 삭제불가 > 20인 이상 투표시 삭제 불가 * test: (#167) 게시물 삭제/신고 msw 생성 및 테스트 * refactor: alert창 오타 수정 * test: 댓글 가지고 오는 api msw 중지 * fix: (#167) 모달창에서 버튼을 클릭해도 모달이 닫히지 않는 오류 수정 * feat: (#167) 댓글 신고/댓글 작성자 닉네임 신고기능 생성 * feat: (#167) 게시글 액션 타입 제한 적용 * test: (#167) 게시글 메뉴 컴포넌트 타입 제한에 따른 테스트 변경 * test: (#167) api 테스트 통과를 위해 댓글 msw 복구 * refactor: DeleteModal과 동일한 CommentDeleteModal 삭제하기 * refactor: (#167) 불필요한 타입 정의 정리 * refactor: (#167) 스타일 컨벤션 지키기 * refactor: (#167) 삭제 모달의 삭제 대상 타입 정의 및 상수화 * fix: (#167) 댓글 신고 시 request 데이터 타입 오지정 수정 * feat: (#308) 유저 정보, 카테고리 목록에서 캐싱, 스테일 타임을 1시간으로 수정 (#309) * 게시글 작성, 게시글 투표 시 유저의 정보가 변하도록 수정, 비회원 유저 정보 요청하지 않도록 수정 (#307) * feat: (#299) 게시글 작성, 게시글 투표 시 유저의 정보가 변하도록 수정 비회원일 때 members/me로 통신하지 않도록 수정 * test: (#299) 비회원일때 유저 정보를 불러오는 테스트 케이스 추가 * refactor: (#299) boolean 값을 상수화하여 코드 가독성 개선 * refactor: (#299) api 함수에서 isLogged를 isLoggedIn으로 변수명 변경 * Member 스키마 수정에 따른 코드 변경 (#330) * refactor: (#323) Member 엔티티 필드 수정으로 인한 컴파일 에러 처리 * refactor: (#323) 테스트 오류 수정 --------- Co-authored-by: jeomxon <[email protected]> * 비회원 게시글 목록 조회 추가 기능 구현 (#304) * test: (#292) 비회원 게시글 목록 조회 테스트 케이스 추가 및 비회원 게시글 목록 목킹 데이터 추가 * feat: (#292) 게시글 목록을 불러오는 api 함수에서 회원, 비회원을 구별하여 요청하는 것으로 변경 * test: (#292) 게시글 목록 조회 회원, 비회원에 대한 테스트 케이스 추가 * feat: (#292) 포스트 리스트에 적용 * fix: (#292) 댓글, 투표 MSW 코드에서 .env의 환경 변수를 설정한 것을 제거하고 테스트가 동작하도록 수정 * feat: (#292) 액세스 토큰을 가지고 있을 때 처음 렌더링 시 게스트 게시글 목록에서 회원용 게시글 목록으로 리패치 되도록 구현 * feat: (#292) 카테고리별 게시글일 때 서버에 요청하는 URL 변경 잘못 설정되어 있던 카테고리별 게시글 라우터 변경 내가 투표한 게시글과 내가 작성한 게시글을 번갈아 누를 때 요청하지 않는 문제 수정 * test: (#292) 투표 테스트에서 given을 구체화 * 현재 유저가 어떤 게시글 종류를 보고 있는지 정보를 반환하는 함수 구현 및 적용 (#318) * feat: (#310) 유저에게 어떤 게시글에 대한 종류를 보고 있는지 정보를 반환하는 함수 구현 * feat: (#310) 레이아웃, 포스트 리스트 페이지에 코드 적용 * feat: (#310) 검색어 글자가 10글자가 넘어간다면 ...으로 축약해서 보여주도록 구현 test의 given을 구체화 --------- Co-authored-by: 김영길/KIM YOUNG GIL <[email protected]> Co-authored-by: 최우창 <[email protected]> Co-authored-by: JeongHun Yu <[email protected]> * refactor: (#331) 로그인 응답 형식 수정 (#336) * refactor: (#332) 내 정보 조회 응답 형식 수정 (#337) * Skeleton 애니메이션 변경, pr&issue 템플릿 변경, 글 수정 및 다중선택 컴포넌트 관련 버그 해결 (#312) * docs: (#302) 일정 추정 및 소요 시간 항목 추가 * refactor: (#271) 불필요한 props 제거 * fix: (#271) 글 수정 시 mock 데이터가 뜨는 오류 해결 * design: (#271) 제목, 내용 input css 수정 * feat: (#281) 다중선택 컴포넌트 외부 영역 선택 시 DropDown이 닫히도록 구현 * refactor: (#91) pulse animation을 wave로 변경 및 animation 관련 코드 theme으로 분리 * refactor: (#91) story 이름 수정, Skeleton 사용하는 파일에서 props 추가 * design: (#91) 스켈레톤 각 Box의 height 단위 px에서 vh 로 변경 * 사이트를 웹앱으로 실행되도록 하고, meta, favicon 설정 (#320) * feat: (#319) favicon 및 디바이스별로 보여줄 보투게더 로고 이미지 적용 * feat: (#319) 모바일 즐겨찾기 후 사용시 웹앱 네이티브로 보이도록 선언 아이패드가 켜질 때 로딩중 화면 설정 * feat: (#319) 라인, 카카오톡 공유시 사이트 정보를 미리볼 수 있도록 설정 * feat: (#319) 모바일 환경에서 사이트에 접근할 경우 홈으로 즐겨찾기 여부를 묻는 기능 구현 * refactor: (#319) 모바일 사용자에게 즐겨찾기를 묻는 함수 코드 가독성 개선 * fix: (#319) 모바일 디바이스에 물어보도록 수정 * feat: (#310) PWA(프로그레시브 웹 앱) 요소를 충족시키는 조건 설정 * chore: (#319) 사용하지 않는 코드 삭제 * chore: (#319) EOL을 위한 개행 추가 * 전체 게시글 조회시, 마감된 글은 투표 결과 전부 공개 기능 구현 (#340) * feat: (#317) 마감된 게시글은 무조건 투표 결과가 보이게 하도록 구현 * test: (#317) 게시글의 투표 결과 반환에 대한 테스트 케이스 작성 * [BUG] 게시물 상세페이지 반응성 적용 오류 (#335) * style: (#334) 상세페이지 내 글 가로길이 리스트와 동일하게 조정 * style: (#334) 모바일 상세페이지 내 댓글 가로길이 본문과 동일하게 조정 * fix: 충돌 해결 과정에서 발생한 오류 수정 - removePost -> deletePost함수명 수정 * feat: 상세게시글 컴포넌트의 임시로 적은 값을 실제 데이터로 교체. * feat: 변경된 사용자정보 가져오기 api response 명세에 맞게 적용 * feat: (#334) 게시물컴포넌트에서 image 존재 여부를 판단해 표시해주기 * feat: 통계 그래프에 남녀 성별색 설명 추가 * refactor: 성별 그래프의 색상에 상수 적용 * test: 사용자정보 필드 변경에 따른 테스트 코드 변경 * refactor: (#334) 상수 컨벤션에 따라 대문자로 수정 * refactor: (#334) 불필요한 선언 코드 정리 * design: (#334) 사진 포함 여부 UI를 게시글 상세페이지에서 보이지 않게 수정 * fix: (#355) 글 수정 페이지, usePostDetail에서 인수 부족 오류 해결 (#356) * 게시글 수정 기능 구현 (#354) * feat: (#321) 게시글 수정 기능 구현 * test: (#321) 게시글 수정 시, 작성자가 아니면 예외 처리하는 테스트 케이스 추가 * test: (#321) 게시글 수정 시, 이미 마감된 게시글이면 예외 처리하는 테스트 케이스 추가 * feat: (#321) 수정할 마감기한이 생성기한보다 3일 초과할 경우 예외 처리 기능 구현 * feat: (#321) 게시글 수정 시, 투표가 하나라도 진행된 게시글이면 예외 처리하는 기능 구현 * refactor: (#321) required 속성 삭제 * refactor: (#341) 성별 응답 형식 및 null 가능하도록 수정 (#350) * 게시글 삭제기능 구현 및 투표 20개 이상인 경우 예외 처리 기능 구현 (#357) * feat: (#322) 게시글 삭제기능 구현 및 투표 20개 이상인 경우 예외 처리 기능 구현 * refactor: (#322) 게시글 삭제 기능 테스트 시, 게시글에 포함된 각 요소가 삭제되었는지 전부 확인 * refactor: (#322) 필요없는 코드 삭제 * 아이폰용, 안드로이드용 어플 설치 여부를 홈 화면에서 보여주기 (feat.PWA) (#345) * feat: (#342) 안드로이드용 화면 구현 * feat: (#342) 아이폰용 화면 구현 * feat: (#342) 모바일 안드로이드, IOS에서 접속했을 경우 하단에 설치를 해달라는 문구 보이도록 구현 * style: (#342) 볼더 탑 연하게 수정, 큰 화면에서도 자연스럽게 보이도록 수정 * 사이트를 웹앱으로 실행되도록 하고, meta, favicon 설정 (#320) * feat: (#319) favicon 및 디바이스별로 보여줄 보투게더 로고 이미지 적용 * feat: (#319) 모바일 즐겨찾기 후 사용시 웹앱 네이티브로 보이도록 선언 아이패드가 켜질 때 로딩중 화면 설정 * feat: (#319) 라인, 카카오톡 공유시 사이트 정보를 미리볼 수 있도록 설정 * feat: (#319) 모바일 환경에서 사이트에 접근할 경우 홈으로 즐겨찾기 여부를 묻는 기능 구현 * refactor: (#319) 모바일 사용자에게 즐겨찾기를 묻는 함수 코드 가독성 개선 * fix: (#319) 모바일 디바이스에 물어보도록 수정 * feat: (#310) PWA(프로그레시브 웹 앱) 요소를 충족시키는 조건 설정 * chore: (#319) 사용하지 않는 코드 삭제 * chore: (#319) EOL을 위한 개행 추가 * refactor: (#342) beforeinstallprompt 이벤트에 대한 타입 선언 및 적용 * refactor: (#342) 사용자에게 보여주는 문구 수정 및 사용하지 않는 코드 삭제 * 성별, 나이 수정 기능 구현 (#339) * feat: (#360) 전체 게시글 목록 조회 시 카테고리도 함께 조회할 수 있도록 변경 (#361) * 내가 쓴 게시글 목록 조회 기능 (#295) * feat : (#289) QueryDSl 적용 (다즐 코드 복사) * feat : (#289) 회원 본인이 작성한 게시글 목록 조회 api 구현 * test : (#289) 테스트 코드 추가 * feat : (#289) swagger 추가 * refactor : (#289) final 추가 * style: (#289) 개행 수정 * refactor: (#289) swagger 수정 * refactor: (#289) 개행 수정 * refactor: (#289) any()에 클래스 명시 * refactor: (#289) result 개수 검증 추가 * refactor: (#289) 개행 추가 * refactor: (#289) thread sleep 제거 * refactor: (#289) 개행 수정 * refactor: (#289) assertAll 묶기 * feat: (#289) 카테고리 정렬 추가 * refactor: (#289) thread sleep 관련 throws InterruptedException 제거 * test: (#289) 테스트코드 추가 * refactor: (#289) 메서드 이름 수정 * refactor: (#289) 테스트 코드 검증 추가 * test: (#290) 충돌 해결 * (회원) 게시글 검색 기능 (#314) * refactor : (#290) (회원) 게시글 검색 기능 api 추가 * test : (#290) 테스트 코드 추가 * feat : (#290) swagger 추가 * style : (#290) 개행 추가 * refactor: (#289) swagger 예외 응답 어노테이션 추가 * refactor: (#289) 개행, assertAll사용, 클래스이름 대문자, //given 리펙터링 * test: (#289) 제목 + 내용에 둘 다 포함되어있는 키워드 검색 테스트 추가 * test: (#290) 테스트 코드 추가 * refactor: (#290) 충돌 해결 * refactor: (#290) 충돌 해결 * feat: (#313) 비회원으로 게시글 검색하는 api 추가 (#363) * 인증/인가에 따른 라우팅 구현, API 통신 실패 및 존재하지 않는 페이지(Not Found)에 대한 Fallback UI 구현 (#343) * chore: (#183) 불필요한 모듈 삭제 * refactor: (#183)…
- Loading branch information