-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
회원 정보 조회 기능 구현 #137
회원 정보 조회 기능 구현 #137
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
저문 전체적으로 깔끔하게 코드를 짜주셨네요 고생하셨어요 :)
테스트와 관련해서 몇가지 코멘트 남겼습니다!
given(memberService.register(member)).willReturn(member); | ||
Member registeredMember = memberService.register(member); | ||
String token = tokenProcessor.generateToken(registeredMember); | ||
|
||
given(memberService.findMemberInfo(any(Member.class))).willReturn(memberInfoResponse); | ||
|
||
// when | ||
MemberInfoResponse response = RestAssuredMockMvc | ||
.given().log().all() | ||
.headers(HttpHeaders.AUTHORIZATION, "Bearer " + token) | ||
.when().get("/members/me") | ||
.then().log().all() | ||
.extract() | ||
.as(MemberInfoResponse.class); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
P2
맨 위의 3줄이랑 //when 에서 헤더에 토큰 값 설정해주는 코드가 없어도 테스트가 통과하더라구요
@WebMvcTest에서는 알규먼트리졸브랑 필터가 안사용되어지는거 같은데 어떡하면 좋을까요
.+ MemberService계층에 대한 테스트가 추가되면 좋을거같아요
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
와우... 처음 알았어요...! 루쿠신...
엄청난걸 배워가네요!
삭제하면 좋을 것 같네요.
추가적으로 MemberService에 대한 테스트는 repository에 있는 내용을 단순 response객체에 담아주는 역할 밖에 없어서 따로 작성하지 않았어요. 이에 대해 루쿠는 어떻게 생각하시는지 궁금해요!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
좋아요~ repository에 대한 테스트도 있으니 충분한거같습니다
// when | ||
Post savedPost = postRepository.save(post); | ||
final Post savedPost = postRepository.save(post); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
P3
해당 테스트에서 final키워드가 몇군데추가되었어요~
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
이거 아벨의 코드인데 아마 conflict해결하면서 파일 자체가 포함된 것 같네요.
제가 따로 수정하지 않고 나중에 아벨이 post에 대한 테스트 수정하시면서 한꺼번에 하는게 더 좋아보여서 그대로 두겠습니다~
conflict를 잘못 해결했는지 제가 작성한 테스트가 날아가버렸네요..ㅠㅠ 수정해서 추가할게요..!
.postOption(postOption) | ||
.build(); | ||
|
||
memberRepository.save(member); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
P3
저장된 멤버를 다시 저장하고있어요~
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
헉.. 그러네요 수정했습니다~
@@ -252,4 +252,39 @@ void findVoteCountByPostOptionIdGroupByAgeRangeAndGender() { | |||
); | |||
} | |||
|
|||
@Test | |||
@DisplayName("해당 회원이 투표한 개수를 반환한다.") | |||
void countByMember() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Q
해당 회원이 작성한 게시글을 반환하는 테스트는 없나요?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
해당 회원이 작성한 게시글 수를 검증하는 테스트를 말씀하신거라면
위에 적은 것처럼 conflict해결하다가 날려먹은 것 같네요... 추가하겠습니다!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
수고하셨습니다 저문 🙇🏻♂️
제가 리뷰하고자 했던 부분을 루쿠가 다 말해주셔서 제가 적을 부분이 없네요 .. ㅎ
루쿠 리뷰 반영해주시면 될 것 같아요 :)
저는 approve 하도록 하겠습니다~
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
피드백 반영 확인했습니다~ 고생하셨어요
* 통계페이지 등 전체 스타일 수정하기_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이 머지될 때 스토리북 배포 되도록 설정 * test * 게시글 작성 기능 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) 이미지 경로 수정 --------- Co-authored-by: chsua <[email protected]> Co-authored-by: 김영길/KIM YOUNG GIL <[email protected]> Co-authored-by: 최우창 <[email protected]> Co-authored-by: JeongHun Yu <[email protected]> Co-authored-by: jero_kang <[email protected]> Co-authored-by: Jun-Hyeok Sin <[email protected]> Co-authored-by: Gilpop8663 <[email protected]> Co-authored-by: chsua <[email protected]>
* PR 이슈 템플릿 작성 (#2) * docs: (#1) 깃 이슈 템플릿 작성 * docs: (#1) 깃 PR 메세지 템플릿 작성 * chore: 파트 별 디렉터리 생성 * 백엔드 프로젝트 생성 (#5) * chore: (#4) gitignore 생성 * feat: (#4) 스프링 프로젝트 생성 * docs: (#4) EOL 수정 * 멤버의 Entity, Repository 구현 (#9) * feat: (#7) Member, MemberCategory 엔티티 추가 * feat: (#7) Vote 엔티티 추가 * 게시글의 Entity, Repository 구현 (#10) * feat: (#8) 카테고리 Entity, Repository 작성 * feat: (#8) 게시글 Entity, Repository 작성 * feat: (#8) 게시글 카테고리 Entity, Repository 작성 * feat: (#8) 게시글 선택지 Entity, Repository 작성 * refactor: (#8) Entity, Repository 팀 컨벤션에 맞게 수정 * 프론트엔드 프로젝트 설정 (#11) * chore: (#6) 프론트엔드 프로젝트 초기 개발 환경 구축 webpack, react, typescript, eslint 절대 경로 설정 * chore: (#6) styled-components 설치 및 global style 세팅 * chore: storybook 설치 및 세팅 styled-component 관련 세팅 * chore: 테스트 환경 구축 모의 테스트(단위 테스트, hook 테스트) 실행 * 전체 Entity 연관관계 매핑, Auditing 기능 추가 (#13) * feat: (#12) 전체 Entity 연관관계 매핑, Auditing 기능 추가 * refactor: (#12) DB의 MySQL 방언 설정을 MySQL57Dialect 대신 MySQLDialect를 설정하는 것으로 개선 * feat: (#12) JPA를 통해 insert되는 값을 확인하기 위한 설정 추가 Co-authored-by: jeomxon <[email protected]> Co-authored-by: woo-chang <[email protected]> Co-authored-by: aiaiaiai1 <[email protected]> * 불필요한 파일 삭제 및 버튼 컴포넌트를 스토리북 예제 파일로 변경 (#25) * chore: (#21) 불필요한 폴더 삭제 * chore: (#21) 버튼 컴포넌트를 스토리북 예제 파일로 수정 * Jpa Auditing, Swagger 설정 (#27) * feat: (#26) JPA Auditing 설정 추가 * feat: (#26) Swagger 설정 추가 * feat: (#26) 헬스 체크 기능 구현 * chore: (#26) 코드 정렬 * refactor: (#26) 스프링 프로퍼티 불변으로 수정 * 공통 모달 컴포넌트 구현 (#28) * refactor: (#17) App.tsx에서 Example 컴포넌트 import Button 컴포넌트 대신 Example 컴포넌트 import * feat: (#17) Modal 컴포넌트 구현 및 스토리 작성 Modal 컴포넌트는 3가지 상태 - Default, Wide(디바이스 width가 넓은 경우), With Close Button(모달 안에 취소 버튼이 있는 경우)로 구성된다 * chore: (#17) Modal 컴포넌트 common 폴더로 이동 * chore: (#17) Modal 컴포넌트 css property 정렬 * design: (#17) Modal 컴포넌트 내 Body, Description css 수정 * refactor: (#17) 파일 간 순환참조 코드 삭제 * refactor: (#17) Modal 컴포넌트 onModalClose props에 setStateAction 대신 일반함수(closeModal) 전달하도록 수정 * chore: (#17) 오타 수정 * refactor: (#17) story에서만 사용하는 style들 stories.tsx 로 이동 * refactor: (#17) size props의 타입 분리 대신 컴포넌트 파일 내에 명시 * refactor: (#17) 모달 사이즈 상수화 * chore: (#17) 불필요한 export 삭제 * 공통 버튼 컴포넌트 구현 (#31) * feat: (#15) 추가 버튼(글쓰기, 선택지 추가용) 구현 * test: (#15) 추가 버튼(글쓰기, 선택지 추가용) 크기별 테스트 생성 * feat: (#15) 네모버튼 구현 * test: (#15) 네모버튼 테마별 테스트 생성 * feat: (#15) 헤더에 들어갈 글자버튼 구현 * test: (#15) 헤더에 들어갈 글자버튼 테스트 생성 * design: (#15) 더하기버튼, 네모버튼 컴포넌트 cursor를 포인터로 수정 * feat: (#15) 아이콘, 로고, 프로젝트 이름 svg파일 생성 - 아이콘: 뒤로가기, 카테고리 사이드 바, 검색 * chore: svg import를 위한 설정 * feat: (#15) 아이콘 버튼 구현 * test: (#15) 아이콘버튼 테스트 생성 * feat: (#15) 웹 접근성을 위한 aria-label 속성 추가 * chore: npm 설치하기 * refactor: 삭제된 컴포넌트 코드에서 제거 * feat: (#15) 클릭이벤트를 인자로 받아 속성 부여 * test: (#15) 클릭이벤트 프롭스추가, 테스트에 반영 * refactor: (#15) 추가 버튼 스타일 컴포넌트 중 사이즈 상수화 - 추가로 가로, 세로 길이 통일 * test: 중복되는 아이콘 버튼 테스트명 생략 * design: (#15) 헤더글씨버튼 굵기 수정 * refactor: (#15) 아이콘 관련 타입 정의 및 상수 분리 * design: (#15) 네모버튼 outline -> border로 수정 * refactor: (#15) 웹접근성 향상을 위한 aria-label, alt 수정 * refactor: (#15) 버튼 컴포넌트 프롭스가 버튼 엘리먼트 상속 받도록 수정 * refactor: (#15) 사이즈 단위 타입 파일로 분리 및 이름 수정 - 이름 수정: s/m/l -> sm/md/lg * test: (#15) 버튼 컴포넌트 프롭스 변경에 따른 테스트 코드 수정 * refactor: (#15) 추가 버튼 코드 리팩토링 * refactor: (#15) 웹접근성 향상을 위한 aria-label, alt 수정 * 게시글에서 보는 투표 선택지 컴포넌트 UI 구현 (#30) * feat: (#18) 게시글에서 보는 투표 선택지 컴포넌트 UI 구현 * refactor: (#18) 가독성 좋은 코드가 되도록 변수명 수정 및 CSS 속성 변경 글 목록에서 이미지 안 보이도록 수정 * refactor: (#18) 불필요한 코드 삭제 및 퍼센트 소수점 1자리 보이도록 수정 * PR 진행 시 테스트 통과 선행 기능 구현 (#37) * chore: (#33) .gitignore 수정 * feat: (#33) PR시 테스트 선행 기능 구현 * TimePickerOption, TimePickerOptionList 컴포넌트 구현 (#35) * feat: (#19) TimePickerOption 컴포넌트 구현 및 스토리 작성 * design: (#19) 폰트 스타일 수정 * refactor: (#19) 이벤트 관련 함수명 맨 앞에 handle 추가 * chore: (#19) 컴포넌트 폴더 구조 변경 TimePickerOptionList 폴더 생성, 해당 폴더 하위에 TimePickerOption 컴포넌트 위치 * refactor: (#19) TimePickerOption 에서 TimePickerOptionList의 스토리 및 스타일 분리 * design: (#19) Wrapper style 추가, Container width 퍼센트로 수정 * refactor: (#19) 변수명 수정 * fix: (#19) 최상단으로 스크롤 안되는 이슈 해결 border style 추가 * chore: (#19) 불필요한 export 코드 제거 * chore: (#19) 오타 수정 * refactor: (#19) TimeBox 하위의 child 높이값 상수화 및 중복된 변수 제거 * refactor: (#19) early return 추가 및 useEffect의 의존성 배열에 인자 추가 * 헤더 컴포넌트 구현_Feat/#16 (#39) * feat: (#16) 검색 아이콘 색상(검/흰) 분리 * feat: (#16) 검색바 컴포넌트 생성 * test: (#16) 검색바 컴포넌트 크기별 테스트 * feat: (#16) 탭, 모니터용 긴 헤더 컴포넌트 생성 * test: (#16) 탭, 모니터용 긴 헤더 컴포넌트 테스트 생성 * feat: (#16) 로고, 프로젝트명 버튼 컴포넌트 생성 * test: (#16) 로고, 프로젝트명 버튼 컴포넌트 테스트 생성 * refactor: 로고 버튼으로 기존 코드 변경 * feat: (#16) 모바일 버전 메인페이지 헤더 컴포넌트 생성 * test: (#16) 모바일 버전 메인페이지 헤더 컴포넌트 테스트 생성 * feat: (#16) 모바일용 짧은 헤더 템플릿 컴포넌트 생성 - 내용을 children 프롭스로 전달받도록 구현 - 상단 고정 등 공동의 스타일 공유하기 위해 컴포넌트 제작 * test: (#16) 모바일용 짧은 헤더 템플릿 컴포넌트 테스트 * design: (#16) 검색바 버튼 커서를 포인터로 수정 * test: (#16) 스토리명 파스칼케이스로 수정 * refactor: (#15) 로고 컴포넌트 프롭스명 수정 * test: (#15) 로고 컴포넌트 프롭스명 수정에 따른 테스트 수정 * style: (#15) 코드 컨벤션에 맞게 CSS 순서 정렬 * refactor: 짧은 기본 헤더 이름 수정 - NarrowOriginHeader > NarrowMainHeader * 리액트 쿼리, msw 설치 및 셋팅 (#48) * feat: (#46) msw, react-query, .env 적용 - 스토리북에도 적용 * feat: (#46) react-query 앱 컴포넌트에 적용 * refactor: (#46) env파일 삭제 * chore: (#46) env파일 gitignore에 추가 * fetch 유틸 함수 구현, 예시 useQuery 훅 구현 , 예시 api 함수 구현 (#51) * feat: (#49) fetch 유틸 함수 구현 (GET, POST, PUT, PATCH, DELETE) * feat: (#49) api 폴더 안에 컨벤션이 될 예시 함수 구현 * feat: (#49) 컨벤션이 될 예시 useQuery 훅 구현 * 투표 작성 페이지의 투표 선택지 컴포넌트 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 형식 수정에 따른 반영 --------- Co-authored-by: 김영길/KIM YOUNG GIL <[email protected]> Co-authored-by: Gilpop8663 <[email protected]> Co-authored-by: 최우창 <[email protected]> Co-authored-by: Jun-Hyeok Sin <[email protected]> Co-authored-by: jero_kang <[email protected]> Co-authored-by: jeomxon <[email protected]> Co-authored-by: chsua <[email protected]> Co-authored-by: 김영길/KIM YOUNG GIL <[email protected]> Co-authored-by: jero_kang <[email protected]> Co-authored-by: chsua <[email protected]>
* PR 이슈 템플릿 작성 (#2) * docs: (#1) 깃 이슈 템플릿 작성 * docs: (#1) 깃 PR 메세지 템플릿 작성 * chore: 파트 별 디렉터리 생성 * 백엔드 프로젝트 생성 (#5) * chore: (#4) gitignore 생성 * feat: (#4) 스프링 프로젝트 생성 * docs: (#4) EOL 수정 * 멤버의 Entity, Repository 구현 (#9) * feat: (#7) Member, MemberCategory 엔티티 추가 * feat: (#7) Vote 엔티티 추가 * 게시글의 Entity, Repository 구현 (#10) * feat: (#8) 카테고리 Entity, Repository 작성 * feat: (#8) 게시글 Entity, Repository 작성 * feat: (#8) 게시글 카테고리 Entity, Repository 작성 * feat: (#8) 게시글 선택지 Entity, Repository 작성 * refactor: (#8) Entity, Repository 팀 컨벤션에 맞게 수정 * 프론트엔드 프로젝트 설정 (#11) * chore: (#6) 프론트엔드 프로젝트 초기 개발 환경 구축 webpack, react, typescript, eslint 절대 경로 설정 * chore: (#6) styled-components 설치 및 global style 세팅 * chore: storybook 설치 및 세팅 styled-component 관련 세팅 * chore: 테스트 환경 구축 모의 테스트(단위 테스트, hook 테스트) 실행 * 전체 Entity 연관관계 매핑, Auditing 기능 추가 (#13) * feat: (#12) 전체 Entity 연관관계 매핑, Auditing 기능 추가 * refactor: (#12) DB의 MySQL 방언 설정을 MySQL57Dialect 대신 MySQLDialect를 설정하는 것으로 개선 * feat: (#12) JPA를 통해 insert되는 값을 확인하기 위한 설정 추가 Co-authored-by: jeomxon <[email protected]> Co-authored-by: woo-chang <[email protected]> Co-authored-by: aiaiaiai1 <[email protected]> * 불필요한 파일 삭제 및 버튼 컴포넌트를 스토리북 예제 파일로 변경 (#25) * chore: (#21) 불필요한 폴더 삭제 * chore: (#21) 버튼 컴포넌트를 스토리북 예제 파일로 수정 * Jpa Auditing, Swagger 설정 (#27) * feat: (#26) JPA Auditing 설정 추가 * feat: (#26) Swagger 설정 추가 * feat: (#26) 헬스 체크 기능 구현 * chore: (#26) 코드 정렬 * refactor: (#26) 스프링 프로퍼티 불변으로 수정 * 공통 모달 컴포넌트 구현 (#28) * refactor: (#17) App.tsx에서 Example 컴포넌트 import Button 컴포넌트 대신 Example 컴포넌트 import * feat: (#17) Modal 컴포넌트 구현 및 스토리 작성 Modal 컴포넌트는 3가지 상태 - Default, Wide(디바이스 width가 넓은 경우), With Close Button(모달 안에 취소 버튼이 있는 경우)로 구성된다 * chore: (#17) Modal 컴포넌트 common 폴더로 이동 * chore: (#17) Modal 컴포넌트 css property 정렬 * design: (#17) Modal 컴포넌트 내 Body, Description css 수정 * refactor: (#17) 파일 간 순환참조 코드 삭제 * refactor: (#17) Modal 컴포넌트 onModalClose props에 setStateAction 대신 일반함수(closeModal) 전달하도록 수정 * chore: (#17) 오타 수정 * refactor: (#17) story에서만 사용하는 style들 stories.tsx 로 이동 * refactor: (#17) size props의 타입 분리 대신 컴포넌트 파일 내에 명시 * refactor: (#17) 모달 사이즈 상수화 * chore: (#17) 불필요한 export 삭제 * 공통 버튼 컴포넌트 구현 (#31) * feat: (#15) 추가 버튼(글쓰기, 선택지 추가용) 구현 * test: (#15) 추가 버튼(글쓰기, 선택지 추가용) 크기별 테스트 생성 * feat: (#15) 네모버튼 구현 * test: (#15) 네모버튼 테마별 테스트 생성 * feat: (#15) 헤더에 들어갈 글자버튼 구현 * test: (#15) 헤더에 들어갈 글자버튼 테스트 생성 * design: (#15) 더하기버튼, 네모버튼 컴포넌트 cursor를 포인터로 수정 * feat: (#15) 아이콘, 로고, 프로젝트 이름 svg파일 생성 - 아이콘: 뒤로가기, 카테고리 사이드 바, 검색 * chore: svg import를 위한 설정 * feat: (#15) 아이콘 버튼 구현 * test: (#15) 아이콘버튼 테스트 생성 * feat: (#15) 웹 접근성을 위한 aria-label 속성 추가 * chore: npm 설치하기 * refactor: 삭제된 컴포넌트 코드에서 제거 * feat: (#15) 클릭이벤트를 인자로 받아 속성 부여 * test: (#15) 클릭이벤트 프롭스추가, 테스트에 반영 * refactor: (#15) 추가 버튼 스타일 컴포넌트 중 사이즈 상수화 - 추가로 가로, 세로 길이 통일 * test: 중복되는 아이콘 버튼 테스트명 생략 * design: (#15) 헤더글씨버튼 굵기 수정 * refactor: (#15) 아이콘 관련 타입 정의 및 상수 분리 * design: (#15) 네모버튼 outline -> border로 수정 * refactor: (#15) 웹접근성 향상을 위한 aria-label, alt 수정 * refactor: (#15) 버튼 컴포넌트 프롭스가 버튼 엘리먼트 상속 받도록 수정 * refactor: (#15) 사이즈 단위 타입 파일로 분리 및 이름 수정 - 이름 수정: s/m/l -> sm/md/lg * test: (#15) 버튼 컴포넌트 프롭스 변경에 따른 테스트 코드 수정 * refactor: (#15) 추가 버튼 코드 리팩토링 * refactor: (#15) 웹접근성 향상을 위한 aria-label, alt 수정 * 게시글에서 보는 투표 선택지 컴포넌트 UI 구현 (#30) * feat: (#18) 게시글에서 보는 투표 선택지 컴포넌트 UI 구현 * refactor: (#18) 가독성 좋은 코드가 되도록 변수명 수정 및 CSS 속성 변경 글 목록에서 이미지 안 보이도록 수정 * refactor: (#18) 불필요한 코드 삭제 및 퍼센트 소수점 1자리 보이도록 수정 * PR 진행 시 테스트 통과 선행 기능 구현 (#37) * chore: (#33) .gitignore 수정 * feat: (#33) PR시 테스트 선행 기능 구현 * TimePickerOption, TimePickerOptionList 컴포넌트 구현 (#35) * feat: (#19) TimePickerOption 컴포넌트 구현 및 스토리 작성 * design: (#19) 폰트 스타일 수정 * refactor: (#19) 이벤트 관련 함수명 맨 앞에 handle 추가 * chore: (#19) 컴포넌트 폴더 구조 변경 TimePickerOptionList 폴더 생성, 해당 폴더 하위에 TimePickerOption 컴포넌트 위치 * refactor: (#19) TimePickerOption 에서 TimePickerOptionList의 스토리 및 스타일 분리 * design: (#19) Wrapper style 추가, Container width 퍼센트로 수정 * refactor: (#19) 변수명 수정 * fix: (#19) 최상단으로 스크롤 안되는 이슈 해결 border style 추가 * chore: (#19) 불필요한 export 코드 제거 * chore: (#19) 오타 수정 * refactor: (#19) TimeBox 하위의 child 높이값 상수화 및 중복된 변수 제거 * refactor: (#19) early return 추가 및 useEffect의 의존성 배열에 인자 추가 * 헤더 컴포넌트 구현_Feat/#16 (#39) * feat: (#16) 검색 아이콘 색상(검/흰) 분리 * feat: (#16) 검색바 컴포넌트 생성 * test: (#16) 검색바 컴포넌트 크기별 테스트 * feat: (#16) 탭, 모니터용 긴 헤더 컴포넌트 생성 * test: (#16) 탭, 모니터용 긴 헤더 컴포넌트 테스트 생성 * feat: (#16) 로고, 프로젝트명 버튼 컴포넌트 생성 * test: (#16) 로고, 프로젝트명 버튼 컴포넌트 테스트 생성 * refactor: 로고 버튼으로 기존 코드 변경 * feat: (#16) 모바일 버전 메인페이지 헤더 컴포넌트 생성 * test: (#16) 모바일 버전 메인페이지 헤더 컴포넌트 테스트 생성 * feat: (#16) 모바일용 짧은 헤더 템플릿 컴포넌트 생성 - 내용을 children 프롭스로 전달받도록 구현 - 상단 고정 등 공동의 스타일 공유하기 위해 컴포넌트 제작 * test: (#16) 모바일용 짧은 헤더 템플릿 컴포넌트 테스트 * design: (#16) 검색바 버튼 커서를 포인터로 수정 * test: (#16) 스토리명 파스칼케이스로 수정 * refactor: (#15) 로고 컴포넌트 프롭스명 수정 * test: (#15) 로고 컴포넌트 프롭스명 수정에 따른 테스트 수정 * style: (#15) 코드 컨벤션에 맞게 CSS 순서 정렬 * refactor: 짧은 기본 헤더 이름 수정 - NarrowOriginHeader > NarrowMainHeader * 리액트 쿼리, msw 설치 및 셋팅 (#48) * feat: (#46) msw, react-query, .env 적용 - 스토리북에도 적용 * feat: (#46) react-query 앱 컴포넌트에 적용 * refactor: (#46) env파일 삭제 * chore: (#46) env파일 gitignore에 추가 * fetch 유틸 함수 구현, 예시 useQuery 훅 구현 , 예시 api 함수 구현 (#51) * feat: (#49) fetch 유틸 함수 구현 (GET, POST, PUT, PATCH, DELETE) * feat: (#49) api 폴더 안에 컨벤션이 될 예시 함수 구현 * feat: (#49) 컨벤션이 될 예시 useQuery 훅 구현 * 투표 작성 페이지의 투표 선택지 컴포넌트 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]> …
* PR 이슈 템플릿 작성 (#2) * docs: (#1) 깃 이슈 템플릿 작성 * docs: (#1) 깃 PR 메세지 템플릿 작성 * chore: 파트 별 디렉터리 생성 * 백엔드 프로젝트 생성 (#5) * chore: (#4) gitignore 생성 * feat: (#4) 스프링 프로젝트 생성 * docs: (#4) EOL 수정 * 멤버의 Entity, Repository 구현 (#9) * feat: (#7) Member, MemberCategory 엔티티 추가 * feat: (#7) Vote 엔티티 추가 * 게시글의 Entity, Repository 구현 (#10) * feat: (#8) 카테고리 Entity, Repository 작성 * feat: (#8) 게시글 Entity, Repository 작성 * feat: (#8) 게시글 카테고리 Entity, Repository 작성 * feat: (#8) 게시글 선택지 Entity, Repository 작성 * refactor: (#8) Entity, Repository 팀 컨벤션에 맞게 수정 * 프론트엔드 프로젝트 설정 (#11) * chore: (#6) 프론트엔드 프로젝트 초기 개발 환경 구축 webpack, react, typescript, eslint 절대 경로 설정 * chore: (#6) styled-components 설치 및 global style 세팅 * chore: storybook 설치 및 세팅 styled-component 관련 세팅 * chore: 테스트 환경 구축 모의 테스트(단위 테스트, hook 테스트) 실행 * 전체 Entity 연관관계 매핑, Auditing 기능 추가 (#13) * feat: (#12) 전체 Entity 연관관계 매핑, Auditing 기능 추가 * refactor: (#12) DB의 MySQL 방언 설정을 MySQL57Dialect 대신 MySQLDialect를 설정하는 것으로 개선 * feat: (#12) JPA를 통해 insert되는 값을 확인하기 위한 설정 추가 Co-authored-by: jeomxon <[email protected]> Co-authored-by: woo-chang <[email protected]> Co-authored-by: aiaiaiai1 <[email protected]> * 불필요한 파일 삭제 및 버튼 컴포넌트를 스토리북 예제 파일로 변경 (#25) * chore: (#21) 불필요한 폴더 삭제 * chore: (#21) 버튼 컴포넌트를 스토리북 예제 파일로 수정 * Jpa Auditing, Swagger 설정 (#27) * feat: (#26) JPA Auditing 설정 추가 * feat: (#26) Swagger 설정 추가 * feat: (#26) 헬스 체크 기능 구현 * chore: (#26) 코드 정렬 * refactor: (#26) 스프링 프로퍼티 불변으로 수정 * 공통 모달 컴포넌트 구현 (#28) * refactor: (#17) App.tsx에서 Example 컴포넌트 import Button 컴포넌트 대신 Example 컴포넌트 import * feat: (#17) Modal 컴포넌트 구현 및 스토리 작성 Modal 컴포넌트는 3가지 상태 - Default, Wide(디바이스 width가 넓은 경우), With Close Button(모달 안에 취소 버튼이 있는 경우)로 구성된다 * chore: (#17) Modal 컴포넌트 common 폴더로 이동 * chore: (#17) Modal 컴포넌트 css property 정렬 * design: (#17) Modal 컴포넌트 내 Body, Description css 수정 * refactor: (#17) 파일 간 순환참조 코드 삭제 * refactor: (#17) Modal 컴포넌트 onModalClose props에 setStateAction 대신 일반함수(closeModal) 전달하도록 수정 * chore: (#17) 오타 수정 * refactor: (#17) story에서만 사용하는 style들 stories.tsx 로 이동 * refactor: (#17) size props의 타입 분리 대신 컴포넌트 파일 내에 명시 * refactor: (#17) 모달 사이즈 상수화 * chore: (#17) 불필요한 export 삭제 * 공통 버튼 컴포넌트 구현 (#31) * feat: (#15) 추가 버튼(글쓰기, 선택지 추가용) 구현 * test: (#15) 추가 버튼(글쓰기, 선택지 추가용) 크기별 테스트 생성 * feat: (#15) 네모버튼 구현 * test: (#15) 네모버튼 테마별 테스트 생성 * feat: (#15) 헤더에 들어갈 글자버튼 구현 * test: (#15) 헤더에 들어갈 글자버튼 테스트 생성 * design: (#15) 더하기버튼, 네모버튼 컴포넌트 cursor를 포인터로 수정 * feat: (#15) 아이콘, 로고, 프로젝트 이름 svg파일 생성 - 아이콘: 뒤로가기, 카테고리 사이드 바, 검색 * chore: svg import를 위한 설정 * feat: (#15) 아이콘 버튼 구현 * test: (#15) 아이콘버튼 테스트 생성 * feat: (#15) 웹 접근성을 위한 aria-label 속성 추가 * chore: npm 설치하기 * refactor: 삭제된 컴포넌트 코드에서 제거 * feat: (#15) 클릭이벤트를 인자로 받아 속성 부여 * test: (#15) 클릭이벤트 프롭스추가, 테스트에 반영 * refactor: (#15) 추가 버튼 스타일 컴포넌트 중 사이즈 상수화 - 추가로 가로, 세로 길이 통일 * test: 중복되는 아이콘 버튼 테스트명 생략 * design: (#15) 헤더글씨버튼 굵기 수정 * refactor: (#15) 아이콘 관련 타입 정의 및 상수 분리 * design: (#15) 네모버튼 outline -> border로 수정 * refactor: (#15) 웹접근성 향상을 위한 aria-label, alt 수정 * refactor: (#15) 버튼 컴포넌트 프롭스가 버튼 엘리먼트 상속 받도록 수정 * refactor: (#15) 사이즈 단위 타입 파일로 분리 및 이름 수정 - 이름 수정: s/m/l -> sm/md/lg * test: (#15) 버튼 컴포넌트 프롭스 변경에 따른 테스트 코드 수정 * refactor: (#15) 추가 버튼 코드 리팩토링 * refactor: (#15) 웹접근성 향상을 위한 aria-label, alt 수정 * 게시글에서 보는 투표 선택지 컴포넌트 UI 구현 (#30) * feat: (#18) 게시글에서 보는 투표 선택지 컴포넌트 UI 구현 * refactor: (#18) 가독성 좋은 코드가 되도록 변수명 수정 및 CSS 속성 변경 글 목록에서 이미지 안 보이도록 수정 * refactor: (#18) 불필요한 코드 삭제 및 퍼센트 소수점 1자리 보이도록 수정 * PR 진행 시 테스트 통과 선행 기능 구현 (#37) * chore: (#33) .gitignore 수정 * feat: (#33) PR시 테스트 선행 기능 구현 * TimePickerOption, TimePickerOptionList 컴포넌트 구현 (#35) * feat: (#19) TimePickerOption 컴포넌트 구현 및 스토리 작성 * design: (#19) 폰트 스타일 수정 * refactor: (#19) 이벤트 관련 함수명 맨 앞에 handle 추가 * chore: (#19) 컴포넌트 폴더 구조 변경 TimePickerOptionList 폴더 생성, 해당 폴더 하위에 TimePickerOption 컴포넌트 위치 * refactor: (#19) TimePickerOption 에서 TimePickerOptionList의 스토리 및 스타일 분리 * design: (#19) Wrapper style 추가, Container width 퍼센트로 수정 * refactor: (#19) 변수명 수정 * fix: (#19) 최상단으로 스크롤 안되는 이슈 해결 border style 추가 * chore: (#19) 불필요한 export 코드 제거 * chore: (#19) 오타 수정 * refactor: (#19) TimeBox 하위의 child 높이값 상수화 및 중복된 변수 제거 * refactor: (#19) early return 추가 및 useEffect의 의존성 배열에 인자 추가 * 헤더 컴포넌트 구현_Feat/#16 (#39) * feat: (#16) 검색 아이콘 색상(검/흰) 분리 * feat: (#16) 검색바 컴포넌트 생성 * test: (#16) 검색바 컴포넌트 크기별 테스트 * feat: (#16) 탭, 모니터용 긴 헤더 컴포넌트 생성 * test: (#16) 탭, 모니터용 긴 헤더 컴포넌트 테스트 생성 * feat: (#16) 로고, 프로젝트명 버튼 컴포넌트 생성 * test: (#16) 로고, 프로젝트명 버튼 컴포넌트 테스트 생성 * refactor: 로고 버튼으로 기존 코드 변경 * feat: (#16) 모바일 버전 메인페이지 헤더 컴포넌트 생성 * test: (#16) 모바일 버전 메인페이지 헤더 컴포넌트 테스트 생성 * feat: (#16) 모바일용 짧은 헤더 템플릿 컴포넌트 생성 - 내용을 children 프롭스로 전달받도록 구현 - 상단 고정 등 공동의 스타일 공유하기 위해 컴포넌트 제작 * test: (#16) 모바일용 짧은 헤더 템플릿 컴포넌트 테스트 * design: (#16) 검색바 버튼 커서를 포인터로 수정 * test: (#16) 스토리명 파스칼케이스로 수정 * refactor: (#15) 로고 컴포넌트 프롭스명 수정 * test: (#15) 로고 컴포넌트 프롭스명 수정에 따른 테스트 수정 * style: (#15) 코드 컨벤션에 맞게 CSS 순서 정렬 * refactor: 짧은 기본 헤더 이름 수정 - NarrowOriginHeader > NarrowMainHeader * 리액트 쿼리, msw 설치 및 셋팅 (#48) * feat: (#46) msw, react-query, .env 적용 - 스토리북에도 적용 * feat: (#46) react-query 앱 컴포넌트에 적용 * refactor: (#46) env파일 삭제 * chore: (#46) env파일 gitignore에 추가 * fetch 유틸 함수 구현, 예시 useQuery 훅 구현 , 예시 api 함수 구현 (#51) * feat: (#49) fetch 유틸 함수 구현 (GET, POST, PUT, PATCH, DELETE) * feat: (#49) api 폴더 안에 컨벤션이 될 예시 함수 구현 * feat: (#49) 컨벤션이 될 예시 useQuery 훅 구현 * 투표 작성 페이지의 투표 선택지 컴포넌트 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]>…
* fix: (#121) 사용자 닉네임이 정확하기 반환되지 않는 오류 수정 * feat: (#81) 회원 정보 조회 기능 구현 * test: (#81) post,vote 개수에 대한 repository 검증 추가 * refactor: (#81) 회원정보 dto 변수명 변경 * test: (#81) 회원 정보 조회를 위한 컨트롤러 검증 추가 * refactor: (#81) swagger 설정용 어노테이션 추가 * refactor: (#81) 회원 정보 조회 검증에서 불필요한 코드 제거 * refactor: (#81) 불필요한 코드 제거 및 conflict 해결 도중 삭제된 테스트 추가
* PR 이슈 템플릿 작성 (#2) * docs: (#1) 깃 이슈 템플릿 작성 * docs: (#1) 깃 PR 메세지 템플릿 작성 * chore: 파트 별 디렉터리 생성 * 백엔드 프로젝트 생성 (#5) * chore: (#4) gitignore 생성 * feat: (#4) 스프링 프로젝트 생성 * docs: (#4) EOL 수정 * 멤버의 Entity, Repository 구현 (#9) * feat: (#7) Member, MemberCategory 엔티티 추가 * feat: (#7) Vote 엔티티 추가 * 게시글의 Entity, Repository 구현 (#10) * feat: (#8) 카테고리 Entity, Repository 작성 * feat: (#8) 게시글 Entity, Repository 작성 * feat: (#8) 게시글 카테고리 Entity, Repository 작성 * feat: (#8) 게시글 선택지 Entity, Repository 작성 * refactor: (#8) Entity, Repository 팀 컨벤션에 맞게 수정 * 프론트엔드 프로젝트 설정 (#11) * chore: (#6) 프론트엔드 프로젝트 초기 개발 환경 구축 webpack, react, typescript, eslint 절대 경로 설정 * chore: (#6) styled-components 설치 및 global style 세팅 * chore: storybook 설치 및 세팅 styled-component 관련 세팅 * chore: 테스트 환경 구축 모의 테스트(단위 테스트, hook 테스트) 실행 * 전체 Entity 연관관계 매핑, Auditing 기능 추가 (#13) * feat: (#12) 전체 Entity 연관관계 매핑, Auditing 기능 추가 * refactor: (#12) DB의 MySQL 방언 설정을 MySQL57Dialect 대신 MySQLDialect를 설정하는 것으로 개선 * feat: (#12) JPA를 통해 insert되는 값을 확인하기 위한 설정 추가 Co-authored-by: jeomxon <[email protected]> Co-authored-by: woo-chang <[email protected]> Co-authored-by: aiaiaiai1 <[email protected]> * 불필요한 파일 삭제 및 버튼 컴포넌트를 스토리북 예제 파일로 변경 (#25) * chore: (#21) 불필요한 폴더 삭제 * chore: (#21) 버튼 컴포넌트를 스토리북 예제 파일로 수정 * Jpa Auditing, Swagger 설정 (#27) * feat: (#26) JPA Auditing 설정 추가 * feat: (#26) Swagger 설정 추가 * feat: (#26) 헬스 체크 기능 구현 * chore: (#26) 코드 정렬 * refactor: (#26) 스프링 프로퍼티 불변으로 수정 * 공통 모달 컴포넌트 구현 (#28) * refactor: (#17) App.tsx에서 Example 컴포넌트 import Button 컴포넌트 대신 Example 컴포넌트 import * feat: (#17) Modal 컴포넌트 구현 및 스토리 작성 Modal 컴포넌트는 3가지 상태 - Default, Wide(디바이스 width가 넓은 경우), With Close Button(모달 안에 취소 버튼이 있는 경우)로 구성된다 * chore: (#17) Modal 컴포넌트 common 폴더로 이동 * chore: (#17) Modal 컴포넌트 css property 정렬 * design: (#17) Modal 컴포넌트 내 Body, Description css 수정 * refactor: (#17) 파일 간 순환참조 코드 삭제 * refactor: (#17) Modal 컴포넌트 onModalClose props에 setStateAction 대신 일반함수(closeModal) 전달하도록 수정 * chore: (#17) 오타 수정 * refactor: (#17) story에서만 사용하는 style들 stories.tsx 로 이동 * refactor: (#17) size props의 타입 분리 대신 컴포넌트 파일 내에 명시 * refactor: (#17) 모달 사이즈 상수화 * chore: (#17) 불필요한 export 삭제 * 공통 버튼 컴포넌트 구현 (#31) * feat: (#15) 추가 버튼(글쓰기, 선택지 추가용) 구현 * test: (#15) 추가 버튼(글쓰기, 선택지 추가용) 크기별 테스트 생성 * feat: (#15) 네모버튼 구현 * test: (#15) 네모버튼 테마별 테스트 생성 * feat: (#15) 헤더에 들어갈 글자버튼 구현 * test: (#15) 헤더에 들어갈 글자버튼 테스트 생성 * design: (#15) 더하기버튼, 네모버튼 컴포넌트 cursor를 포인터로 수정 * feat: (#15) 아이콘, 로고, 프로젝트 이름 svg파일 생성 - 아이콘: 뒤로가기, 카테고리 사이드 바, 검색 * chore: svg import를 위한 설정 * feat: (#15) 아이콘 버튼 구현 * test: (#15) 아이콘버튼 테스트 생성 * feat: (#15) 웹 접근성을 위한 aria-label 속성 추가 * chore: npm 설치하기 * refactor: 삭제된 컴포넌트 코드에서 제거 * feat: (#15) 클릭이벤트를 인자로 받아 속성 부여 * test: (#15) 클릭이벤트 프롭스추가, 테스트에 반영 * refactor: (#15) 추가 버튼 스타일 컴포넌트 중 사이즈 상수화 - 추가로 가로, 세로 길이 통일 * test: 중복되는 아이콘 버튼 테스트명 생략 * design: (#15) 헤더글씨버튼 굵기 수정 * refactor: (#15) 아이콘 관련 타입 정의 및 상수 분리 * design: (#15) 네모버튼 outline -> border로 수정 * refactor: (#15) 웹접근성 향상을 위한 aria-label, alt 수정 * refactor: (#15) 버튼 컴포넌트 프롭스가 버튼 엘리먼트 상속 받도록 수정 * refactor: (#15) 사이즈 단위 타입 파일로 분리 및 이름 수정 - 이름 수정: s/m/l -> sm/md/lg * test: (#15) 버튼 컴포넌트 프롭스 변경에 따른 테스트 코드 수정 * refactor: (#15) 추가 버튼 코드 리팩토링 * refactor: (#15) 웹접근성 향상을 위한 aria-label, alt 수정 * 게시글에서 보는 투표 선택지 컴포넌트 UI 구현 (#30) * feat: (#18) 게시글에서 보는 투표 선택지 컴포넌트 UI 구현 * refactor: (#18) 가독성 좋은 코드가 되도록 변수명 수정 및 CSS 속성 변경 글 목록에서 이미지 안 보이도록 수정 * refactor: (#18) 불필요한 코드 삭제 및 퍼센트 소수점 1자리 보이도록 수정 * PR 진행 시 테스트 통과 선행 기능 구현 (#37) * chore: (#33) .gitignore 수정 * feat: (#33) PR시 테스트 선행 기능 구현 * TimePickerOption, TimePickerOptionList 컴포넌트 구현 (#35) * feat: (#19) TimePickerOption 컴포넌트 구현 및 스토리 작성 * design: (#19) 폰트 스타일 수정 * refactor: (#19) 이벤트 관련 함수명 맨 앞에 handle 추가 * chore: (#19) 컴포넌트 폴더 구조 변경 TimePickerOptionList 폴더 생성, 해당 폴더 하위에 TimePickerOption 컴포넌트 위치 * refactor: (#19) TimePickerOption 에서 TimePickerOptionList의 스토리 및 스타일 분리 * design: (#19) Wrapper style 추가, Container width 퍼센트로 수정 * refactor: (#19) 변수명 수정 * fix: (#19) 최상단으로 스크롤 안되는 이슈 해결 border style 추가 * chore: (#19) 불필요한 export 코드 제거 * chore: (#19) 오타 수정 * refactor: (#19) TimeBox 하위의 child 높이값 상수화 및 중복된 변수 제거 * refactor: (#19) early return 추가 및 useEffect의 의존성 배열에 인자 추가 * 헤더 컴포넌트 구현_Feat/#16 (#39) * feat: (#16) 검색 아이콘 색상(검/흰) 분리 * feat: (#16) 검색바 컴포넌트 생성 * test: (#16) 검색바 컴포넌트 크기별 테스트 * feat: (#16) 탭, 모니터용 긴 헤더 컴포넌트 생성 * test: (#16) 탭, 모니터용 긴 헤더 컴포넌트 테스트 생성 * feat: (#16) 로고, 프로젝트명 버튼 컴포넌트 생성 * test: (#16) 로고, 프로젝트명 버튼 컴포넌트 테스트 생성 * refactor: 로고 버튼으로 기존 코드 변경 * feat: (#16) 모바일 버전 메인페이지 헤더 컴포넌트 생성 * test: (#16) 모바일 버전 메인페이지 헤더 컴포넌트 테스트 생성 * feat: (#16) 모바일용 짧은 헤더 템플릿 컴포넌트 생성 - 내용을 children 프롭스로 전달받도록 구현 - 상단 고정 등 공동의 스타일 공유하기 위해 컴포넌트 제작 * test: (#16) 모바일용 짧은 헤더 템플릿 컴포넌트 테스트 * design: (#16) 검색바 버튼 커서를 포인터로 수정 * test: (#16) 스토리명 파스칼케이스로 수정 * refactor: (#15) 로고 컴포넌트 프롭스명 수정 * test: (#15) 로고 컴포넌트 프롭스명 수정에 따른 테스트 수정 * style: (#15) 코드 컨벤션에 맞게 CSS 순서 정렬 * refactor: 짧은 기본 헤더 이름 수정 - NarrowOriginHeader > NarrowMainHeader * 리액트 쿼리, msw 설치 및 셋팅 (#48) * feat: (#46) msw, react-query, .env 적용 - 스토리북에도 적용 * feat: (#46) react-query 앱 컴포넌트에 적용 * refactor: (#46) env파일 삭제 * chore: (#46) env파일 gitignore에 추가 * fetch 유틸 함수 구현, 예시 useQuery 훅 구현 , 예시 api 함수 구현 (#51) * feat: (#49) fetch 유틸 함수 구현 (GET, POST, PUT, PATCH, DELETE) * feat: (#49) api 폴더 안에 컨벤션이 될 예시 함수 구현 * feat: (#49) 컨벤션이 될 예시 useQuery 훅 구현 * 투표 작성 페이지의 투표 선택지 컴포넌트 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]> * 비회원 게시글 …
* PR 이슈 템플릿 작성 (#2) * docs: (#1) 깃 이슈 템플릿 작성 * docs: (#1) 깃 PR 메세지 템플릿 작성 * chore: 파트 별 디렉터리 생성 * 백엔드 프로젝트 생성 (#5) * chore: (#4) gitignore 생성 * feat: (#4) 스프링 프로젝트 생성 * docs: (#4) EOL 수정 * 멤버의 Entity, Repository 구현 (#9) * feat: (#7) Member, MemberCategory 엔티티 추가 * feat: (#7) Vote 엔티티 추가 * 게시글의 Entity, Repository 구현 (#10) * feat: (#8) 카테고리 Entity, Repository 작성 * feat: (#8) 게시글 Entity, Repository 작성 * feat: (#8) 게시글 카테고리 Entity, Repository 작성 * feat: (#8) 게시글 선택지 Entity, Repository 작성 * refactor: (#8) Entity, Repository 팀 컨벤션에 맞게 수정 * 프론트엔드 프로젝트 설정 (#11) * chore: (#6) 프론트엔드 프로젝트 초기 개발 환경 구축 webpack, react, typescript, eslint 절대 경로 설정 * chore: (#6) styled-components 설치 및 global style 세팅 * chore: storybook 설치 및 세팅 styled-component 관련 세팅 * chore: 테스트 환경 구축 모의 테스트(단위 테스트, hook 테스트) 실행 * 전체 Entity 연관관계 매핑, Auditing 기능 추가 (#13) * feat: (#12) 전체 Entity 연관관계 매핑, Auditing 기능 추가 * refactor: (#12) DB의 MySQL 방언 설정을 MySQL57Dialect 대신 MySQLDialect를 설정하는 것으로 개선 * feat: (#12) JPA를 통해 insert되는 값을 확인하기 위한 설정 추가 * 불필요한 파일 삭제 및 버튼 컴포넌트를 스토리북 예제 파일로 변경 (#25) * chore: (#21) 불필요한 폴더 삭제 * chore: (#21) 버튼 컴포넌트를 스토리북 예제 파일로 수정 * Jpa Auditing, Swagger 설정 (#27) * feat: (#26) JPA Auditing 설정 추가 * feat: (#26) Swagger 설정 추가 * feat: (#26) 헬스 체크 기능 구현 * chore: (#26) 코드 정렬 * refactor: (#26) 스프링 프로퍼티 불변으로 수정 * 공통 모달 컴포넌트 구현 (#28) * refactor: (#17) App.tsx에서 Example 컴포넌트 import Button 컴포넌트 대신 Example 컴포넌트 import * feat: (#17) Modal 컴포넌트 구현 및 스토리 작성 Modal 컴포넌트는 3가지 상태 - Default, Wide(디바이스 width가 넓은 경우), With Close Button(모달 안에 취소 버튼이 있는 경우)로 구성된다 * chore: (#17) Modal 컴포넌트 common 폴더로 이동 * chore: (#17) Modal 컴포넌트 css property 정렬 * design: (#17) Modal 컴포넌트 내 Body, Description css 수정 * refactor: (#17) 파일 간 순환참조 코드 삭제 * refactor: (#17) Modal 컴포넌트 onModalClose props에 setStateAction 대신 일반함수(closeModal) 전달하도록 수정 * chore: (#17) 오타 수정 * refactor: (#17) story에서만 사용하는 style들 stories.tsx 로 이동 * refactor: (#17) size props의 타입 분리 대신 컴포넌트 파일 내에 명시 * refactor: (#17) 모달 사이즈 상수화 * chore: (#17) 불필요한 export 삭제 * 공통 버튼 컴포넌트 구현 (#31) * feat: (#15) 추가 버튼(글쓰기, 선택지 추가용) 구현 * test: (#15) 추가 버튼(글쓰기, 선택지 추가용) 크기별 테스트 생성 * feat: (#15) 네모버튼 구현 * test: (#15) 네모버튼 테마별 테스트 생성 * feat: (#15) 헤더에 들어갈 글자버튼 구현 * test: (#15) 헤더에 들어갈 글자버튼 테스트 생성 * design: (#15) 더하기버튼, 네모버튼 컴포넌트 cursor를 포인터로 수정 * feat: (#15) 아이콘, 로고, 프로젝트 이름 svg파일 생성 - 아이콘: 뒤로가기, 카테고리 사이드 바, 검색 * chore: svg import를 위한 설정 * feat: (#15) 아이콘 버튼 구현 * test: (#15) 아이콘버튼 테스트 생성 * feat: (#15) 웹 접근성을 위한 aria-label 속성 추가 * chore: npm 설치하기 * refactor: 삭제된 컴포넌트 코드에서 제거 * feat: (#15) 클릭이벤트를 인자로 받아 속성 부여 * test: (#15) 클릭이벤트 프롭스추가, 테스트에 반영 * refactor: (#15) 추가 버튼 스타일 컴포넌트 중 사이즈 상수화 - 추가로 가로, 세로 길이 통일 * test: 중복되는 아이콘 버튼 테스트명 생략 * design: (#15) 헤더글씨버튼 굵기 수정 * refactor: (#15) 아이콘 관련 타입 정의 및 상수 분리 * design: (#15) 네모버튼 outline -> border로 수정 * refactor: (#15) 웹접근성 향상을 위한 aria-label, alt 수정 * refactor: (#15) 버튼 컴포넌트 프롭스가 버튼 엘리먼트 상속 받도록 수정 * refactor: (#15) 사이즈 단위 타입 파일로 분리 및 이름 수정 - 이름 수정: s/m/l -> sm/md/lg * test: (#15) 버튼 컴포넌트 프롭스 변경에 따른 테스트 코드 수정 * refactor: (#15) 추가 버튼 코드 리팩토링 * refactor: (#15) 웹접근성 향상을 위한 aria-label, alt 수정 * 게시글에서 보는 투표 선택지 컴포넌트 UI 구현 (#30) * feat: (#18) 게시글에서 보는 투표 선택지 컴포넌트 UI 구현 * refactor: (#18) 가독성 좋은 코드가 되도록 변수명 수정 및 CSS 속성 변경 글 목록에서 이미지 안 보이도록 수정 * refactor: (#18) 불필요한 코드 삭제 및 퍼센트 소수점 1자리 보이도록 수정 * PR 진행 시 테스트 통과 선행 기능 구현 (#37) * chore: (#33) .gitignore 수정 * feat: (#33) PR시 테스트 선행 기능 구현 * TimePickerOption, TimePickerOptionList 컴포넌트 구현 (#35) * feat: (#19) TimePickerOption 컴포넌트 구현 및 스토리 작성 * design: (#19) 폰트 스타일 수정 * refactor: (#19) 이벤트 관련 함수명 맨 앞에 handle 추가 * chore: (#19) 컴포넌트 폴더 구조 변경 TimePickerOptionList 폴더 생성, 해당 폴더 하위에 TimePickerOption 컴포넌트 위치 * refactor: (#19) TimePickerOption 에서 TimePickerOptionList의 스토리 및 스타일 분리 * design: (#19) Wrapper style 추가, Container width 퍼센트로 수정 * refactor: (#19) 변수명 수정 * fix: (#19) 최상단으로 스크롤 안되는 이슈 해결 border style 추가 * chore: (#19) 불필요한 export 코드 제거 * chore: (#19) 오타 수정 * refactor: (#19) TimeBox 하위의 child 높이값 상수화 및 중복된 변수 제거 * refactor: (#19) early return 추가 및 useEffect의 의존성 배열에 인자 추가 * 헤더 컴포넌트 구현_Feat/#16 (#39) * feat: (#16) 검색 아이콘 색상(검/흰) 분리 * feat: (#16) 검색바 컴포넌트 생성 * test: (#16) 검색바 컴포넌트 크기별 테스트 * feat: (#16) 탭, 모니터용 긴 헤더 컴포넌트 생성 * test: (#16) 탭, 모니터용 긴 헤더 컴포넌트 테스트 생성 * feat: (#16) 로고, 프로젝트명 버튼 컴포넌트 생성 * test: (#16) 로고, 프로젝트명 버튼 컴포넌트 테스트 생성 * refactor: 로고 버튼으로 기존 코드 변경 * feat: (#16) 모바일 버전 메인페이지 헤더 컴포넌트 생성 * test: (#16) 모바일 버전 메인페이지 헤더 컴포넌트 테스트 생성 * feat: (#16) 모바일용 짧은 헤더 템플릿 컴포넌트 생성 - 내용을 children 프롭스로 전달받도록 구현 - 상단 고정 등 공동의 스타일 공유하기 위해 컴포넌트 제작 * test: (#16) 모바일용 짧은 헤더 템플릿 컴포넌트 테스트 * design: (#16) 검색바 버튼 커서를 포인터로 수정 * test: (#16) 스토리명 파스칼케이스로 수정 * refactor: (#15) 로고 컴포넌트 프롭스명 수정 * test: (#15) 로고 컴포넌트 프롭스명 수정에 따른 테스트 수정 * style: (#15) 코드 컨벤션에 맞게 CSS 순서 정렬 * refactor: 짧은 기본 헤더 이름 수정 - NarrowOriginHeader > NarrowMainHeader * 리액트 쿼리, msw 설치 및 셋팅 (#48) * feat: (#46) msw, react-query, .env 적용 - 스토리북에도 적용 * feat: (#46) react-query 앱 컴포넌트에 적용 * refactor: (#46) env파일 삭제 * chore: (#46) env파일 gitignore에 추가 * fetch 유틸 함수 구현, 예시 useQuery 훅 구현 , 예시 api 함수 구현 (#51) * feat: (#49) fetch 유틸 함수 구현 (GET, POST, PUT, PATCH, DELETE) * feat: (#49) api 폴더 안에 컨벤션이 될 예시 함수 구현 * feat: (#49) 컨벤션이 될 예시 useQuery 훅 구현 * 투표 작성 페이지의 투표 선택지 컴포넌트 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 명시 --------- * 작성된 게시글 컴포넌트 구현_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) 셀렉트 컴포넌트에서 제네릭 타입을 받아서 사용하도록 수정 타입스크립트의 제네릭을 통해 안정성을 더하였음 --------- * 게시글 통계 컴포넌트 제작_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 브런치와 병합을 위한 머지 --------- * 홈페이지에서 사용할 전체 게시글 리스트 컴포넌트 구현 (#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) 게시글 내용을 눌렀을 때 상세 페이지로 가도록 구현 상세 페이지에서는 동작하지 않도록 구현 --------- * 배포를 위해 현재 발생한 오류 해결 및 페이지 생성_Feat/#106 (#117) * fix: (#106) 제거된 게시글 삭제 api, 조기마감 api 재생성 * fix: (#106) 게시글 get하는 api 함수명 수정이 미적용되어 발생하는 오류 해결 * fix: (#106) type이 불분명하여 발생하는 오류 해결 - string -> Size * fix: (#106) Size 타입 이동으로 인한 오류 해결 - 경로 수정 * fix: 머지에 따른 오류 해결 * feat: (#106) 컴포넌트 페이지 연결 --------- * 카테고리 정보를 불러오는 패치 api 함수 구현 및 msw mocking 구현 (#90) * test: (#64) 카테고리애 대한 통신 테스트 코드 작성 * feat: (#64) 카테고리 리스트 mock 데이터 선언 * feat: (#64) 카테고리에 대한 통신 함수 구현 * feat: (#61) 카테고리 리스트 관련된 msw 코드 작성 서버에서 오는 카테고리 리스트 타입 선언 * refactor: (#64) 테스트에 대한 설명하는 문장 수정 * refactor: (#64) 코드 가독성을 위해 타입 이름 변경 --------- * 유저 정보를 불러오는 패치 api 함수 구현 및 msw mocking 구현 (#107) * feat: (#63) 유저 정보를 불러오는 패치 api 함수 구현 및 msw mocking 구현 * test: (#63) 유저 정보 테스트 코드 추가 * refactor: (#63) 코드 가독성을 위해 타입 이름 변경 --------- * 카카오에 엑세스 토큰 요청 시 타입 설정 및 회원 닉네임 반환 오류 수정 (#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 형식 변경에 따른 수정 --------- * 회원 정보 조회 기능 구현 (#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 그리드 속성 변경 --------- * 댓글 작성 폼, 리스트 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 규칙에 따라 수정 --------- * 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 속성 값 변경 --------- * utils의 fetch 함수 리팩터링, ErrorBoundary 구현, query를 이용한 에러핸들링 (#294) * refactor: (#158) try-catch 구문으로 변경 * 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) 검색했을 때 전체 옵션이 아닌 경우 '현재 조건에는'이라는 접두사를 붙혀줌 --------- * (비회원) 게시글 목록 조회 (#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) 테스트 오류 수정 --------- * 비회원 게시글 목록 조회 추가 기능 구현 (#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) 검색했을 때 전체 옵션이 아닌 경우 '현재 조건에는'이라는 접두사를 붙혀줌 --------- * (비회원) 게시글 목록 조회 (#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: 김영길/KIM YOUNG GIL <[email protected]> Co-authored-by: Gilpop8663 <[email protected]> Co-authored-by: 최우창 <[email protected]> Co-authored-by: jero_kang <[email protected]> Co-authored-by: jeomxon <[email protected]> Co-authored-by: aiaiaiai1 <[email protected]> Co-authored-by: chsua <[email protected]> Co-authored-by: lookh <[email protected]> Co-authored-by: 김영길/KIM YOUNG GIL <[email protected]> Co-authored-by: jero_kang <[email protected]> Co-authored-by: chsua <[email protected]>
* PR 이슈 템플릿 작성 (#2) * docs: (#1) 깃 이슈 템플릿 작성 * docs: (#1) 깃 PR 메세지 템플릿 작성 * chore: 파트 별 디렉터리 생성 * 백엔드 프로젝트 생성 (#5) * chore: (#4) gitignore 생성 * feat: (#4) 스프링 프로젝트 생성 * docs: (#4) EOL 수정 * 멤버의 Entity, Repository 구현 (#9) * feat: (#7) Member, MemberCategory 엔티티 추가 * feat: (#7) Vote 엔티티 추가 * 게시글의 Entity, Repository 구현 (#10) * feat: (#8) 카테고리 Entity, Repository 작성 * feat: (#8) 게시글 Entity, Repository 작성 * feat: (#8) 게시글 카테고리 Entity, Repository 작성 * feat: (#8) 게시글 선택지 Entity, Repository 작성 * refactor: (#8) Entity, Repository 팀 컨벤션에 맞게 수정 * 프론트엔드 프로젝트 설정 (#11) * chore: (#6) 프론트엔드 프로젝트 초기 개발 환경 구축 webpack, react, typescript, eslint 절대 경로 설정 * chore: (#6) styled-components 설치 및 global style 세팅 * chore: storybook 설치 및 세팅 styled-component 관련 세팅 * chore: 테스트 환경 구축 모의 테스트(단위 테스트, hook 테스트) 실행 * 전체 Entity 연관관계 매핑, Auditing 기능 추가 (#13) * feat: (#12) 전체 Entity 연관관계 매핑, Auditing 기능 추가 * refactor: (#12) DB의 MySQL 방언 설정을 MySQL57Dialect 대신 MySQLDialect를 설정하는 것으로 개선 * feat: (#12) JPA를 통해 insert되는 값을 확인하기 위한 설정 추가 Co-authored-by: jeomxon <[email protected]> Co-authored-by: woo-chang <[email protected]> Co-authored-by: aiaiaiai1 <[email protected]> * 불필요한 파일 삭제 및 버튼 컴포넌트를 스토리북 예제 파일로 변경 (#25) * chore: (#21) 불필요한 폴더 삭제 * chore: (#21) 버튼 컴포넌트를 스토리북 예제 파일로 수정 * Jpa Auditing, Swagger 설정 (#27) * feat: (#26) JPA Auditing 설정 추가 * feat: (#26) Swagger 설정 추가 * feat: (#26) 헬스 체크 기능 구현 * chore: (#26) 코드 정렬 * refactor: (#26) 스프링 프로퍼티 불변으로 수정 * 공통 모달 컴포넌트 구현 (#28) * refactor: (#17) App.tsx에서 Example 컴포넌트 import Button 컴포넌트 대신 Example 컴포넌트 import * feat: (#17) Modal 컴포넌트 구현 및 스토리 작성 Modal 컴포넌트는 3가지 상태 - Default, Wide(디바이스 width가 넓은 경우), With Close Button(모달 안에 취소 버튼이 있는 경우)로 구성된다 * chore: (#17) Modal 컴포넌트 common 폴더로 이동 * chore: (#17) Modal 컴포넌트 css property 정렬 * design: (#17) Modal 컴포넌트 내 Body, Description css 수정 * refactor: (#17) 파일 간 순환참조 코드 삭제 * refactor: (#17) Modal 컴포넌트 onModalClose props에 setStateAction 대신 일반함수(closeModal) 전달하도록 수정 * chore: (#17) 오타 수정 * refactor: (#17) story에서만 사용하는 style들 stories.tsx 로 이동 * refactor: (#17) size props의 타입 분리 대신 컴포넌트 파일 내에 명시 * refactor: (#17) 모달 사이즈 상수화 * chore: (#17) 불필요한 export 삭제 * 공통 버튼 컴포넌트 구현 (#31) * feat: (#15) 추가 버튼(글쓰기, 선택지 추가용) 구현 * test: (#15) 추가 버튼(글쓰기, 선택지 추가용) 크기별 테스트 생성 * feat: (#15) 네모버튼 구현 * test: (#15) 네모버튼 테마별 테스트 생성 * feat: (#15) 헤더에 들어갈 글자버튼 구현 * test: (#15) 헤더에 들어갈 글자버튼 테스트 생성 * design: (#15) 더하기버튼, 네모버튼 컴포넌트 cursor를 포인터로 수정 * feat: (#15) 아이콘, 로고, 프로젝트 이름 svg파일 생성 - 아이콘: 뒤로가기, 카테고리 사이드 바, 검색 * chore: svg import를 위한 설정 * feat: (#15) 아이콘 버튼 구현 * test: (#15) 아이콘버튼 테스트 생성 * feat: (#15) 웹 접근성을 위한 aria-label 속성 추가 * chore: npm 설치하기 * refactor: 삭제된 컴포넌트 코드에서 제거 * feat: (#15) 클릭이벤트를 인자로 받아 속성 부여 * test: (#15) 클릭이벤트 프롭스추가, 테스트에 반영 * refactor: (#15) 추가 버튼 스타일 컴포넌트 중 사이즈 상수화 - 추가로 가로, 세로 길이 통일 * test: 중복되는 아이콘 버튼 테스트명 생략 * design: (#15) 헤더글씨버튼 굵기 수정 * refactor: (#15) 아이콘 관련 타입 정의 및 상수 분리 * design: (#15) 네모버튼 outline -> border로 수정 * refactor: (#15) 웹접근성 향상을 위한 aria-label, alt 수정 * refactor: (#15) 버튼 컴포넌트 프롭스가 버튼 엘리먼트 상속 받도록 수정 * refactor: (#15) 사이즈 단위 타입 파일로 분리 및 이름 수정 - 이름 수정: s/m/l -> sm/md/lg * test: (#15) 버튼 컴포넌트 프롭스 변경에 따른 테스트 코드 수정 * refactor: (#15) 추가 버튼 코드 리팩토링 * refactor: (#15) 웹접근성 향상을 위한 aria-label, alt 수정 * 게시글에서 보는 투표 선택지 컴포넌트 UI 구현 (#30) * feat: (#18) 게시글에서 보는 투표 선택지 컴포넌트 UI 구현 * refactor: (#18) 가독성 좋은 코드가 되도록 변수명 수정 및 CSS 속성 변경 글 목록에서 이미지 안 보이도록 수정 * refactor: (#18) 불필요한 코드 삭제 및 퍼센트 소수점 1자리 보이도록 수정 * PR 진행 시 테스트 통과 선행 기능 구현 (#37) * chore: (#33) .gitignore 수정 * feat: (#33) PR시 테스트 선행 기능 구현 * TimePickerOption, TimePickerOptionList 컴포넌트 구현 (#35) * feat: (#19) TimePickerOption 컴포넌트 구현 및 스토리 작성 * design: (#19) 폰트 스타일 수정 * refactor: (#19) 이벤트 관련 함수명 맨 앞에 handle 추가 * chore: (#19) 컴포넌트 폴더 구조 변경 TimePickerOptionList 폴더 생성, 해당 폴더 하위에 TimePickerOption 컴포넌트 위치 * refactor: (#19) TimePickerOption 에서 TimePickerOptionList의 스토리 및 스타일 분리 * design: (#19) Wrapper style 추가, Container width 퍼센트로 수정 * refactor: (#19) 변수명 수정 * fix: (#19) 최상단으로 스크롤 안되는 이슈 해결 border style 추가 * chore: (#19) 불필요한 export 코드 제거 * chore: (#19) 오타 수정 * refactor: (#19) TimeBox 하위의 child 높이값 상수화 및 중복된 변수 제거 * refactor: (#19) early return 추가 및 useEffect의 의존성 배열에 인자 추가 * 헤더 컴포넌트 구현_Feat/#16 (#39) * feat: (#16) 검색 아이콘 색상(검/흰) 분리 * feat: (#16) 검색바 컴포넌트 생성 * test: (#16) 검색바 컴포넌트 크기별 테스트 * feat: (#16) 탭, 모니터용 긴 헤더 컴포넌트 생성 * test: (#16) 탭, 모니터용 긴 헤더 컴포넌트 테스트 생성 * feat: (#16) 로고, 프로젝트명 버튼 컴포넌트 생성 * test: (#16) 로고, 프로젝트명 버튼 컴포넌트 테스트 생성 * refactor: 로고 버튼으로 기존 코드 변경 * feat: (#16) 모바일 버전 메인페이지 헤더 컴포넌트 생성 * test: (#16) 모바일 버전 메인페이지 헤더 컴포넌트 테스트 생성 * feat: (#16) 모바일용 짧은 헤더 템플릿 컴포넌트 생성 - 내용을 children 프롭스로 전달받도록 구현 - 상단 고정 등 공동의 스타일 공유하기 위해 컴포넌트 제작 * test: (#16) 모바일용 짧은 헤더 템플릿 컴포넌트 테스트 * design: (#16) 검색바 버튼 커서를 포인터로 수정 * test: (#16) 스토리명 파스칼케이스로 수정 * refactor: (#15) 로고 컴포넌트 프롭스명 수정 * test: (#15) 로고 컴포넌트 프롭스명 수정에 따른 테스트 수정 * style: (#15) 코드 컨벤션에 맞게 CSS 순서 정렬 * refactor: 짧은 기본 헤더 이름 수정 - NarrowOriginHeader > NarrowMainHeader * 리액트 쿼리, msw 설치 및 셋팅 (#48) * feat: (#46) msw, react-query, .env 적용 - 스토리북에도 적용 * feat: (#46) react-query 앱 컴포넌트에 적용 * refactor: (#46) env파일 삭제 * chore: (#46) env파일 gitignore에 추가 * fetch 유틸 함수 구현, 예시 useQuery 훅 구현 , 예시 api 함수 구현 (#51) * feat: (#49) fetch 유틸 함수 구현 (GET, POST, PUT, PATCH, DELETE) * feat: (#49) api 폴더 안에 컨벤션이 될 예시 함수 구현 * feat: (#49) 컨벤션이 될 예시 useQuery 훅 구현 * 투표 작성 페이지의 투표 선택지 컴포넌트 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]> * 비회원 게시…
* PR 이슈 템플릿 작성 (#2) * docs: (#1) 깃 이슈 템플릿 작성 * docs: (#1) 깃 PR 메세지 템플릿 작성 * chore: 파트 별 디렉터리 생성 * 백엔드 프로젝트 생성 (#5) * chore: (#4) gitignore 생성 * feat: (#4) 스프링 프로젝트 생성 * docs: (#4) EOL 수정 * 멤버의 Entity, Repository 구현 (#9) * feat: (#7) Member, MemberCategory 엔티티 추가 * feat: (#7) Vote 엔티티 추가 * 게시글의 Entity, Repository 구현 (#10) * feat: (#8) 카테고리 Entity, Repository 작성 * feat: (#8) 게시글 Entity, Repository 작성 * feat: (#8) 게시글 카테고리 Entity, Repository 작성 * feat: (#8) 게시글 선택지 Entity, Repository 작성 * refactor: (#8) Entity, Repository 팀 컨벤션에 맞게 수정 * 프론트엔드 프로젝트 설정 (#11) * chore: (#6) 프론트엔드 프로젝트 초기 개발 환경 구축 webpack, react, typescript, eslint 절대 경로 설정 * chore: (#6) styled-components 설치 및 global style 세팅 * chore: storybook 설치 및 세팅 styled-component 관련 세팅 * chore: 테스트 환경 구축 모의 테스트(단위 테스트, hook 테스트) 실행 * 전체 Entity 연관관계 매핑, Auditing 기능 추가 (#13) * feat: (#12) 전체 Entity 연관관계 매핑, Auditing 기능 추가 * refactor: (#12) DB의 MySQL 방언 설정을 MySQL57Dialect 대신 MySQLDialect를 설정하는 것으로 개선 * feat: (#12) JPA를 통해 insert되는 값을 확인하기 위한 설정 추가 Co-authored-by: jeomxon <[email protected]> Co-authored-by: woo-chang <[email protected]> Co-authored-by: aiaiaiai1 <[email protected]> * 불필요한 파일 삭제 및 버튼 컴포넌트를 스토리북 예제 파일로 변경 (#25) * chore: (#21) 불필요한 폴더 삭제 * chore: (#21) 버튼 컴포넌트를 스토리북 예제 파일로 수정 * Jpa Auditing, Swagger 설정 (#27) * feat: (#26) JPA Auditing 설정 추가 * feat: (#26) Swagger 설정 추가 * feat: (#26) 헬스 체크 기능 구현 * chore: (#26) 코드 정렬 * refactor: (#26) 스프링 프로퍼티 불변으로 수정 * 공통 모달 컴포넌트 구현 (#28) * refactor: (#17) App.tsx에서 Example 컴포넌트 import Button 컴포넌트 대신 Example 컴포넌트 import * feat: (#17) Modal 컴포넌트 구현 및 스토리 작성 Modal 컴포넌트는 3가지 상태 - Default, Wide(디바이스 width가 넓은 경우), With Close Button(모달 안에 취소 버튼이 있는 경우)로 구성된다 * chore: (#17) Modal 컴포넌트 common 폴더로 이동 * chore: (#17) Modal 컴포넌트 css property 정렬 * design: (#17) Modal 컴포넌트 내 Body, Description css 수정 * refactor: (#17) 파일 간 순환참조 코드 삭제 * refactor: (#17) Modal 컴포넌트 onModalClose props에 setStateAction 대신 일반함수(closeModal) 전달하도록 수정 * chore: (#17) 오타 수정 * refactor: (#17) story에서만 사용하는 style들 stories.tsx 로 이동 * refactor: (#17) size props의 타입 분리 대신 컴포넌트 파일 내에 명시 * refactor: (#17) 모달 사이즈 상수화 * chore: (#17) 불필요한 export 삭제 * 공통 버튼 컴포넌트 구현 (#31) * feat: (#15) 추가 버튼(글쓰기, 선택지 추가용) 구현 * test: (#15) 추가 버튼(글쓰기, 선택지 추가용) 크기별 테스트 생성 * feat: (#15) 네모버튼 구현 * test: (#15) 네모버튼 테마별 테스트 생성 * feat: (#15) 헤더에 들어갈 글자버튼 구현 * test: (#15) 헤더에 들어갈 글자버튼 테스트 생성 * design: (#15) 더하기버튼, 네모버튼 컴포넌트 cursor를 포인터로 수정 * feat: (#15) 아이콘, 로고, 프로젝트 이름 svg파일 생성 - 아이콘: 뒤로가기, 카테고리 사이드 바, 검색 * chore: svg import를 위한 설정 * feat: (#15) 아이콘 버튼 구현 * test: (#15) 아이콘버튼 테스트 생성 * feat: (#15) 웹 접근성을 위한 aria-label 속성 추가 * chore: npm 설치하기 * refactor: 삭제된 컴포넌트 코드에서 제거 * feat: (#15) 클릭이벤트를 인자로 받아 속성 부여 * test: (#15) 클릭이벤트 프롭스추가, 테스트에 반영 * refactor: (#15) 추가 버튼 스타일 컴포넌트 중 사이즈 상수화 - 추가로 가로, 세로 길이 통일 * test: 중복되는 아이콘 버튼 테스트명 생략 * design: (#15) 헤더글씨버튼 굵기 수정 * refactor: (#15) 아이콘 관련 타입 정의 및 상수 분리 * design: (#15) 네모버튼 outline -> border로 수정 * refactor: (#15) 웹접근성 향상을 위한 aria-label, alt 수정 * refactor: (#15) 버튼 컴포넌트 프롭스가 버튼 엘리먼트 상속 받도록 수정 * refactor: (#15) 사이즈 단위 타입 파일로 분리 및 이름 수정 - 이름 수정: s/m/l -> sm/md/lg * test: (#15) 버튼 컴포넌트 프롭스 변경에 따른 테스트 코드 수정 * refactor: (#15) 추가 버튼 코드 리팩토링 * refactor: (#15) 웹접근성 향상을 위한 aria-label, alt 수정 * 게시글에서 보는 투표 선택지 컴포넌트 UI 구현 (#30) * feat: (#18) 게시글에서 보는 투표 선택지 컴포넌트 UI 구현 * refactor: (#18) 가독성 좋은 코드가 되도록 변수명 수정 및 CSS 속성 변경 글 목록에서 이미지 안 보이도록 수정 * refactor: (#18) 불필요한 코드 삭제 및 퍼센트 소수점 1자리 보이도록 수정 * PR 진행 시 테스트 통과 선행 기능 구현 (#37) * chore: (#33) .gitignore 수정 * feat: (#33) PR시 테스트 선행 기능 구현 * TimePickerOption, TimePickerOptionList 컴포넌트 구현 (#35) * feat: (#19) TimePickerOption 컴포넌트 구현 및 스토리 작성 * design: (#19) 폰트 스타일 수정 * refactor: (#19) 이벤트 관련 함수명 맨 앞에 handle 추가 * chore: (#19) 컴포넌트 폴더 구조 변경 TimePickerOptionList 폴더 생성, 해당 폴더 하위에 TimePickerOption 컴포넌트 위치 * refactor: (#19) TimePickerOption 에서 TimePickerOptionList의 스토리 및 스타일 분리 * design: (#19) Wrapper style 추가, Container width 퍼센트로 수정 * refactor: (#19) 변수명 수정 * fix: (#19) 최상단으로 스크롤 안되는 이슈 해결 border style 추가 * chore: (#19) 불필요한 export 코드 제거 * chore: (#19) 오타 수정 * refactor: (#19) TimeBox 하위의 child 높이값 상수화 및 중복된 변수 제거 * refactor: (#19) early return 추가 및 useEffect의 의존성 배열에 인자 추가 * 헤더 컴포넌트 구현_Feat/#16 (#39) * feat: (#16) 검색 아이콘 색상(검/흰) 분리 * feat: (#16) 검색바 컴포넌트 생성 * test: (#16) 검색바 컴포넌트 크기별 테스트 * feat: (#16) 탭, 모니터용 긴 헤더 컴포넌트 생성 * test: (#16) 탭, 모니터용 긴 헤더 컴포넌트 테스트 생성 * feat: (#16) 로고, 프로젝트명 버튼 컴포넌트 생성 * test: (#16) 로고, 프로젝트명 버튼 컴포넌트 테스트 생성 * refactor: 로고 버튼으로 기존 코드 변경 * feat: (#16) 모바일 버전 메인페이지 헤더 컴포넌트 생성 * test: (#16) 모바일 버전 메인페이지 헤더 컴포넌트 테스트 생성 * feat: (#16) 모바일용 짧은 헤더 템플릿 컴포넌트 생성 - 내용을 children 프롭스로 전달받도록 구현 - 상단 고정 등 공동의 스타일 공유하기 위해 컴포넌트 제작 * test: (#16) 모바일용 짧은 헤더 템플릿 컴포넌트 테스트 * design: (#16) 검색바 버튼 커서를 포인터로 수정 * test: (#16) 스토리명 파스칼케이스로 수정 * refactor: (#15) 로고 컴포넌트 프롭스명 수정 * test: (#15) 로고 컴포넌트 프롭스명 수정에 따른 테스트 수정 * style: (#15) 코드 컨벤션에 맞게 CSS 순서 정렬 * refactor: 짧은 기본 헤더 이름 수정 - NarrowOriginHeader > NarrowMainHeader * 리액트 쿼리, msw 설치 및 셋팅 (#48) * feat: (#46) msw, react-query, .env 적용 - 스토리북에도 적용 * feat: (#46) react-query 앱 컴포넌트에 적용 * refactor: (#46) env파일 삭제 * chore: (#46) env파일 gitignore에 추가 * fetch 유틸 함수 구현, 예시 useQuery 훅 구현 , 예시 api 함수 구현 (#51) * feat: (#49) fetch 유틸 함수 구현 (GET, POST, PUT, PATCH, DELETE) * feat: (#49) api 폴더 안에 컨벤션이 될 예시 함수 구현 * feat: (#49) 컨벤션이 될 예시 useQuery 훅 구현 * 투표 작성 페이지의 투표 선택지 컴포넌트 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]> …
* 투표 작성 페이지의 투표 선택지 컴포넌트 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)…
* feat: (#366) 빌드 시 public/icons에 있는 favicon, 아이콘 등을 빌드하도록 설정 (#373) * 게시글 수정을 할 때 마감시간이 설정되도록 구현 (#382) * feat: (#370) 시작시간과 마감시간으로 몇일, 몇시간, 몇분을 반환하는 함수 구현 * feat: (#370) 선택된 시간 문자 반환하는 함수 구현 및 적용 * feat: (#369) usePostDetail에서 로그인 정보를 키 값으로 추가하여 새로고침시에도 올바르게 나오도록 수정 및 적용 (#383) * 카테고리가 길 경우 스크롤이 되도록 변경, 리다이렉션 페이지에서 멤버 아이디를 설정하도록 수정 (#385) * style: (#384) 카테고리 목록이 길 때 스크롤이 가능하도록 CSS 수정 * fix: (#358, #381) 리다이렉션 페이지를 통한 로그인 시에도 memberId를 AuthContext 전역변수에 추가 * 로그 설정 파일 추가 (#390) * feat: (#388) log4j2 의존성 추가 Co-authored-by: jeomxon <[email protected]> Co-authored-by: aiaiaiai1 <[email protected]> Co-authored-by: tjdtls690 <[email protected]> * feat: (#388) 로컬 로그 설정 파일 추가 Co-authored-by: jeomxon <[email protected]> Co-authored-by: aiaiaiai1 <[email protected]> Co-authored-by: tjdtls690 <[email protected]> * feat: (#388) 개발 로그 설정 파일 추가 Co-authored-by: jeomxon <[email protected]> Co-authored-by: aiaiaiai1 <[email protected]> Co-authored-by: tjdtls690 <[email protected]> * feat: (#388) 운영 로그 설정 파일 추가 Co-authored-by: jeomxon <[email protected]> Co-authored-by: aiaiaiai1 <[email protected]> Co-authored-by: tjdtls690 <[email protected]> --------- Co-authored-by: jeomxon <[email protected]> Co-authored-by: aiaiaiai1 <[email protected]> Co-authored-by: tjdtls690 <[email protected]> * [BUG] 현재 api me 가 무한으로 요청됨 외 1건 (#386) * fix: (#371) me가 무한으로 불리는 오류 수정 Co-authored-by: jero_kang <[email protected]> * refactor: 투표통계 페이지 폴더명 수정(-Page 붙이기) * feat: 에러페이지 문구 수정 및 모바일 헤더 에러바운더리 적용, 로딩스피너 > 스켈레톤 * refactor: API fetch 함수에서 react query로 대체 * feat: (#376) 로그인 후 개인정보 등록 페이지로 라우팅 * refactor: 에러 바운더리에서 핸들러를 넣을 수 없어 핸들러 코드 각주로 임시처리 * feat: (#371) 에러바운더리에 에러(페이지) 컴포넌트 연결 * feat: 통계페이지 UI 수정, 통신 실패시 에러컴포넌트 등장, 토글 열리지 않도록 수정 * feat: 서비스 최상단에 전용 에러바운더리 적용 - 최상단에는 nav/global style사용할 수 없어 새로 제작 * feat: (#376) 로그인 후 필수정보가 입력되어있지 않으면 입력페이지로 리다이렉트 * fix: 로그인을 하지 않았는데 개인정보 입력 페이지로 넘어가는 오류 수정 --------- Co-authored-by: jero_kang <[email protected]> * 게시글 수정 시 이미지가 사용자에게 보이도록 수정 (#377) * fix: (#368) 게시글 수정 시 이미지가 사용자에게 보이도록 수정 * feat: (#347) 설정 환경변수 설정 (#378) * feat: (#379) MySQL 의존성 추가 (#380) * feat: (#366) 빌드 시 public/icons에 있는 favicon, 아이콘 등을 빌드하도록 설정 (#373) * 게시글 수정을 할 때 마감시간이 설정되도록 구현 (#382) * feat: (#370) 시작시간과 마감시간으로 몇일, 몇시간, 몇분을 반환하는 함수 구현 * feat: (#370) 선택된 시간 문자 반환하는 함수 구현 및 적용 * feat: (#369) usePostDetail에서 로그인 정보를 키 값으로 추가하여 새로고침시에도 올바르게 나오도록 수정 및 적용 (#383) * 카테고리가 길 경우 스크롤이 되도록 변경, 리다이렉션 페이지에서 멤버 아이디를 설정하도록 수정 (#385) * style: (#384) 카테고리 목록이 길 때 스크롤이 가능하도록 CSS 수정 * fix: (#358, #381) 리다이렉션 페이지를 통한 로그인 시에도 memberId를 AuthContext 전역변수에 추가 * 로그 설정 파일 추가 (#390) * feat: (#388) log4j2 의존성 추가 Co-authored-by: jeomxon <[email protected]> Co-authored-by: aiaiaiai1 <[email protected]> Co-authored-by: tjdtls690 <[email protected]> * feat: (#388) 로컬 로그 설정 파일 추가 Co-authored-by: jeomxon <[email protected]> Co-authored-by: aiaiaiai1 <[email protected]> Co-authored-by: tjdtls690 <[email protected]> * feat: (#388) 개발 로그 설정 파일 추가 Co-authored-by: jeomxon <[email protected]> Co-authored-by: aiaiaiai1 <[email protected]> Co-authored-by: tjdtls690 <[email protected]> * feat: (#388) 운영 로그 설정 파일 추가 Co-authored-by: jeomxon <[email protected]> Co-authored-by: aiaiaiai1 <[email protected]> Co-authored-by: tjdtls690 <[email protected]> --------- Co-authored-by: jeomxon <[email protected]> Co-authored-by: aiaiaiai1 <[email protected]> Co-authored-by: tjdtls690 <[email protected]> * [BUG] 현재 api me 가 무한으로 요청됨 외 1건 (#386) * fix: (#371) me가 무한으로 불리는 오류 수정 Co-authored-by: jero_kang <[email protected]> * refactor: 투표통계 페이지 폴더명 수정(-Page 붙이기) * feat: 에러페이지 문구 수정 및 모바일 헤더 에러바운더리 적용, 로딩스피너 > 스켈레톤 * refactor: API fetch 함수에서 react query로 대체 * feat: (#376) 로그인 후 개인정보 등록 페이지로 라우팅 * refactor: 에러 바운더리에서 핸들러를 넣을 수 없어 핸들러 코드 각주로 임시처리 * feat: (#371) 에러바운더리에 에러(페이지) 컴포넌트 연결 * feat: 통계페이지 UI 수정, 통신 실패시 에러컴포넌트 등장, 토글 열리지 않도록 수정 * feat: 서비스 최상단에 전용 에러바운더리 적용 - 최상단에는 nav/global style사용할 수 없어 새로 제작 * feat: (#376) 로그인 후 필수정보가 입력되어있지 않으면 입력페이지로 리다이렉트 * fix: 로그인을 하지 않았는데 개인정보 입력 페이지로 넘어가는 오류 수정 --------- Co-authored-by: jero_kang <[email protected]> * refactor: (#368) 매 렌더링마다 state의 초기값을 계산하는 것이 비효율적이라고 생각들어서 직접 useState의 초기값으로 설정 --------- Co-authored-by: 최우창 <[email protected]> Co-authored-by: jeomxon <[email protected]> Co-authored-by: aiaiaiai1 <[email protected]> Co-authored-by: tjdtls690 <[email protected]> Co-authored-by: chsua <[email protected]> Co-authored-by: jero_kang <[email protected]> * [BUG] 모바일일때 검색 input 없음/ 로고버튼 이벤트 없음/ 마이페이지 이동 불가 (#389) * fix: (#367) 카테고리별 글이 보이지 않음 - url 오타 수정 * feat: (#387) 모바일 로고버튼에 홈이동 이벤트 붙이기 * fix: 모바일에서 검색바가 없어지는 문제 수정 - 검색 아이콘 클릭시 검색바 등장 - 검색바 오픈 후 배경 클릭했을 때 검색바 사라짐 * feat: 마이페이지로 이동하는 트리거 생성 * design: 어색한 디자인 수정 - 사용자 정보 컴포넌트 수정 - 마이페이지 헤더 탭 사이즈에서 2개가 겹치는 오류 수정 * 비회원인데 신고가 가능한 버그, 비회원이 투표한 경우 토스트 띄우기 (#395) * fix: (#393) 비회원이 투표 시 로그인 후 투표가 가능하다는 토스트를 보여주도록 수정 * fix: (#393) 비회원이 신고 기능을 이용하려고 할 때 토스트로 안내 문구 출력되도록 구현 * 로그인했는데 마이페이지로 리다이렉트되는 버그, 회원탈퇴에 실패하는 버그 해결 (#397) * fix: (#394) 로그인했는데 마이페이지로 리다이렉트되는 버그 해결 * refactor: (#394) 회원탈퇴 쿼리에서 쿼리키에 로그인 여부 추가 * refactor: (#394) 마이페이지에서 회원탈퇴 모달 컴포넌트 분리 * refactor: (#394) 댓글 로그인 섹션 컴포넌트의 텍스트 변경 * refactor: (#394) 로그인 여부에 대한 쿼리 키 값 상수화 * refactor: (#394) clearCookie 로직을 기존의 clearLoggedInfo 에서 하도록 수정 * 본문과 내용에 사진을 추가할 때 안될 때가 있다 (#398) * fix: (#280) 본문사진 등록-삭제 후 동일한 사진 업드시 업로드되지 않는 문제 해결 * feat: mock url 실제 서버 url로 수정 * 회원이 마감 완료된 게시글에 투표할 때 failed to Fetch가 나타나요, 마감된 게시글 투표 통계 보이도록 수정 (#401) * fix: (#399) 마감된 게시글에 투표했을 때 사용자에게 투표할 수 없다는 문구 출력 * fix: (#399) 마감된 게시글은 투표 통계가 보이도록 수정 isWriter라는 변수명을 더 넓은 범위를 뜻하는 isStatisticsVisible로 변경 * 회원 탈퇴 기능 수정 (#400) * refactor: (#396) 댓글의 isHidden 필드를 기본 생성 시 false로 적용하도록 변경 * refactor: (#396) 게시글의 isHidden 필드를 기본 생성 시 false로 적용하도록 변경 * refactor: (#396) 회원 탈퇴 시 연관된 데이터들도 삭제해주는 기능 추가 * 모바일에서 검색창 눌러서 검색이 가능하도록 수정 (#404) * fix: (#403) 모바일에서 검색창을 눌러도 닫히지 않도록 수정 * feat: (#403) 모바일에서 검색창이 열릴 때 오토 포커스 기눙 추가 * style: (#403) 홈페이지 위로가기 버튼, 글 작성 버튼에 padding-right 10px 속성 추가 * 로그인 페이지 UI 구현 및 적용 (피그마 시안) (#406) * feat: (#405) 모바일 로그인 UI 구현 * feat: (#405) 보투게더를 이용해보세요 UI 구현 png 파일 타입스크립트가 인식하도록 선언, svg.d.ts => assets.d.ts로 변경 * feat: (#405) 로그인 페이지 UI 구현 및 반응형 CSS 적용 웹팩에서 여러 이미지 파일을 사용할 수 있도록 설정 수정 * chore: (#405) 웹팩 설정에서 svg 파일은 빌드 시 코드에 포함되도록 수정 * chore: (#405) 필요없는 파일 삭제 및 EOL을 위한 개행 추가 * style: 사용자 화면 높이에 따라 소개하는 휴대폰 이미지 사이즈를 다르게 보이도록 수정 StartUsingOurService 에서 ServiceIntroductionSection 으로 컴포넌트 이름 변경 * style: CSS 속성 개행 * refactor: (#413) deleteAllByIdInBatch -> deleteAllById로 변경 (#414) Co-authored-by: aiaiaiai1 <[email protected]> Co-authored-by: woo-chang <[email protected]> Co-authored-by: tjdtls690 <[email protected]> * 패키지 구조 개선 및 swagger 설정 통일 (#428) * refactor: (#392) 패키지 구조 통일 Co-authored-by: jeomxon <[email protected]> Co-authored-by: woo-chang <[email protected]> Co-authored-by: tjdtls690 <[email protected]> * refactor: (#392) Swagger 설정 Co-authored-by: jeomxon <[email protected]> Co-authored-by: woo-chang <[email protected]> Co-authored-by: tjdtls690 <[email protected]> --------- Co-authored-by: jeomxon <[email protected]> Co-authored-by: woo-chang <[email protected]> Co-authored-by: tjdtls690 <[email protected]> * 전체 게시글 목록을 조회할 때 중복된 컬럼으로 인해 default page size에 맞지 않게 조회가 되는 문제 수정, 총 투표 수가 0일 때 투표 퍼센트가 NaN으로 반환되는 오류 수정 (#439) * refactor: (#436) 투표 통계 퍼센트가 NaN으로 나오는 오류 수정 Co-authored-by: woo-chang <[email protected]> * refactor: (#436) PostCreateRequest의 example에 categoryId를 [0, 2] -> [1, 3]으로 수정 Co-authored-by: woo-chang <[email protected]> * refactor: (#436) 전체 게시글 목록을 조회할 때 중복된 컬럼으로 인해 default page size에 맞지 않게 조회가 되는 문제 수정 Co-authored-by: woo-chang <[email protected]> --------- Co-authored-by: woo-chang <[email protected]> * 게시글 수정 디버깅 (#434) * fix: (#416) 게시글 수정 디버깅 * refactor: (#416) update 메서드 파라미터 개행 * fix: (#438) 게시글과 댓글이 신고 5번 이상이어도 보이는 버그 픽스 (#441) * fix: (#444) PostOption이 수정할 때 전부 지워지도록 개선 (#445) * 본문글 개행 적용, 모달 외부 누르면 모달 닫히기 적용, 즐겨찾기 아이콘 수정, API 통신 실패 시 Toast에 띄울 메시지 가공 (#440) * fix: (#417) 게시글 본문에 공백이 보이도록 css 수정 * fix: (#416) 글 수정 시 image url 가공 없이 전송 * fix: (#418) TwoButtonModal 외부를 누르면 닫히도록 수정 * feat: (#421) 작성자가 투표하는 경우 toast 띄우기 * refactor: (#424) 카테고리 토글 버튼을 별모양 아이콘으로 변경 * fix: (#433) API 통신 실패의 응답, 오류 메시지를 toast에 띄우기 * fix: (#416) 글 수정 시 선택지에서 기존의 이미지 보이도록 수정 * fix: (#416) 글수정 시 imageUrl 앞의 주소 제거 * fix: (#417) API 통신 실패 시 Toast가 무한으로 띄워지는 에러 해결 * fix: (#442) 투표가 된 게시글은 수정 페이지로 라우팅 못하게 early return 하기 * fix: (#417) 이미지 url 값 변경 * fix: (#443) 비회원이 즐겨찾기하는 경우 적절한 에러 메시지 띄우도록 수정 * 글을 작성하면 리스트 정렬기준이 "최신순"으로 바꾸기, 라우팅 시 스크롤 최상단으로 이동하기 (#435) * feat: (#420) 스크롤을 탑으로 이동시키는 유틸함수 제작 및 적용용 컴포넌트 제작 * feat: (#420) 스크롤 위로 올리는 컴포넌트 적용 * feat: (#419) 글 작성/수정 시 글목록 필터/정렬 기준 초기화 * refactor: 중복되는 스크롤 기능 삭제 * 게시글 수정 시, PostOption 테이블 유니크 값 충돌 문제 해결 (#449) * fix: (#448) 게시글 수정 시, PostOption 테이블 유니크 값 충돌 문제 해결 * fix: (#448) 게시글 수정 디버깅 * refactor: (#448) EntityMaager 안쓰고 flush해서 delete 쿼리가 잘 동작하도록 개선 * refactor: (#448) import문 정리 * NarrowMainHeader, Select, Searchbar, Skeleton 컴포넌트 웹접근성 개선 / 닉네임 변경 및 신고 API 실패 시 Toast 띄우기 (#454) * design: (#407) 전역 서비스 색상 코드 변경 및 댓글 닉네임 font-weight 변경 * feat: (#407) Skeleton 컴포넌트 aria-label 추가 * refactor: (#407) LogoButton 컴포넌트 aria-label 수정 * feat: (#407) NarrowMainHeader, SearchBar, Select 컴포넌트에 aria-label 및 aria-polite 추가하여 웹접근성 개선 * refactor: (#349) 신고 API 실패 응답 메시지 Toast로 띄우기 * refactor: (#349) 닉네임 변경 및 회원 탈퇴 API 실패 시 응답으로 오는 에러 메시지를 Toast에 띄우기 * refactor: (#407) aria-label, tabIndex 속성 추가 * Drawer, ErrorMessage, HeaderTextButton, IconButton, Layout 컴포넌트 웹접근성 높이기 (#450) * fix: (#411)등록사진을 수정안하고 수정api 요청시 undefined 발생하는 오류 * feat: (#411) 웹접근성 향상 - Drawer, ErrorMessage, HeaderTextButton, IconButton, Layout * feat: (#411) 웹접근성 향상 - LoadingSpinner, LogoButton, MultiSelect * fix: 게시글 수정 후 이미지가 보이지 않는 오류 수정 - 수정하는 과정에서 서버 url이 한번 더 붙는 오류 수정 --------- Co-authored-by: jero_kang <[email protected]> * README.md 작성 (#462) * docs: (#461) 보투게더 소개글 리드미에 입력 * docs: (#461) 보투게더 소개글 개행 수정 * fix: (#461) 이미지 수정이 즉시 적용되지 않는 오류 수정 (#465) - queryClient.invalidateQueries 키 수정 * fix: (#464) 토스트가 계속해서 뜨는 문제 수정 (#466) * PostForm/ReportModal/WritingVoteOptionList 웹 접근성 도입 및 정책안내문구 적용 (#459) * feat: 정책 안내 문구 적용 - 닉네임 변경 아코디언 - 글작성 페이지 * feat: (#453) 글작성 폼에서 인터렉션하는 태그는 tab되도록 수정 * feat: (#453) 글작성 폼 내 태그에 부연설명 추가 * [BUG] 모바일/데스크탑에서 사진을 2번씩 눌러야 이미지 첨부가 돼요 (#469) * feat: (#468) 이미지 업로드 시 파일창이 두번 나오는 오류 수정 - 기본 이벤트로 인한 호출 오류 * feat: 사용자에게 보여지는 안내문구 수정 * 인터넷 익스플로어로 접속 시 브라우저를 업데이트 해달라는 기능 구현 (#452) * feat: (#447) 인터넷 익스플로어로 접속 시 브라우저를 업데이트 해달라는 기능 구현 * chore: (#447) 사진 정책 변경 * chore: (#447) 사진 이미지를 프론트에서 1.5MB로 제한하도록 수정 * fix: (#447) 존재하지 않는 role 삭제 * docs: (#471) 잘못 작성한 리드미 수정 (#472) * feat: (#456) 타임 픽커 웹 접근성 향상 (#458) * Accordion, AddButton, Modal, TwoButtonModal, DeleteModal 웹접근성 높이기 (#455) * feat: (#410) 아코디언 웹 접근성 향상 * feat: (#410) 더하기 버튼 스토리북에 aria-label 예시 코드 작성 * feat: (#410) Modal 컴포넌트 웹 접근성 향상 * feat: (#410) TwoButtonModal, DeleteModal 웹 접근성 향상 * feat: (#410) 모달의 title을 설명할 때 추가적인 정보를 주도록 구현 * 랭킹 시스템 패치 함수 및 훅 만들기 (#506) * feat: (#504) 랭킹 관련 fetch하는 함수 만들기 * feat: (#504) 랭킹 관련 쿼리키 추가 * feat: (#504) 랭킹 관련 리액트쿼리 훅 제작 - 열정유저, 인기글, 사용자랭킹 get * feat: (#504) 랭킹 관련 타입 정의 * feat: (#504) 확정된 랭킹 관련 api url 설정 * feat: (#504) 확정된 랭킹 관련 type을 api, query hook에 적용 * 구글 태그 및 채널톡 버튼 추가, 코드리뷰 마감시간 알림 슬랙봇 구현 (#503) * feat: (#492) 채널톡 버튼 추가 * feat: (#492) 구글 태그 추가 * feat: (#494) 프론트엔드 PR의 마감시간 및 코멘트 슬랙봇 구현 * chore: (#494) channel id 수정 * fix: (#494) workflow가 실행되지 않는 오류 해결 * chore: (#494) 주석 삭제 * refactor: (#494) 마크다운 형식으로 슬랙 메시지 구성 * feat: (#494) 백엔드 pr에 대한 슬랙 알림 기능 추가 * refactor: (#494) 근무시간이 아닌 경우 포함 * feat: (#494) 프론트/백 슬랙 채널에 각각 메시지 전송하도록 구현 * chore: (#494) 불필요한 코드 삭제 * refactor: (#494) 오늘/내일 키워드 삭제 * refactor: (#494) yml 파일 분리 * refactor: (#494) working-directory 추가 * refactor: (#494) pr url에서 https 제거 * refactor: (#494) 공백 추가 * refactor: (#494) http 추가 * refactor: (#494) yml 파일 name 구체화 * refactor: (#492) 채널톡 script 분리 * refactor: (#492) 구글 태그 id, 채널톡 key 환경변수로 분리 * chore: (#494) 불필요한 코드 삭제 * chore: (#494) working-directory 추가 * chore: (#492) ChannelTalk 컴포넌트 pages에서 compoenents 폴더로 이동 * test: (#492) 월요일, 금요일 오전에 대한 테스트 추가 * chore: (#492) type 제거, 누락된 코드 복구 * chore: (#494) defaults 속성 추가 * 대시보드 컴포넌트, 통계 컴포넌트, UpButton 웹접근성 높이기 (#460) * refactor: (#408) 투표 통계 관련 컴포넌트 웹접근성 개선 * refactor: (#408) 대시보드 프로필 웹접근성 개선 * refactor: (#408) UpButton 웹접근성 개선 * refactor: (#408) Toast 웹접근성 개선 * chore: (#408) 불필요한 코드 삭제 * refactor: (#408) 선택지 통계가 닫혀있는 경우 스크린리더가 읽어주도록 메시지 추가 * refactor: (#408) 스크린리더가 첫번째 span에서 연령대와 인원을 모두 읽도록 수정 * refactor: (#408) TwoLineGraph에서 스크린리더가 첫번째 span에서 연령대와 인원을 모두 읽도록 수정 * refactor: (#408) aria-hidden 태그로 스크린리더가 span 태그가 읽지 않도록 수정 * 랭킹 시스템 UI 구현 및 내정보 페이지로 가는 UI 추가, 랭킹페이지로 이동하는 UI 생성 (#499) * feat: (#488) 스위치 토글 컴포넌트 생성 * test: (#488) 스위치 토글 컴포넌트 테스트 * feat: (#488) 랭킹표 공통 배경 스타일 컴포넌트 생성 * feat: (#488) 열정사용유저용 테이블 컴포넌트 제작 * test: (#488) 열정사용유저용 테이블 컴포넌트 테스트 * feat: (#488) 인기글 작성 유저용 테이블 컴포넌트 제작 * test: (#488) 인기글 작성 유저용 테이블 컴포넌트 테스트 * style: 스타일드 컴포넌트 작성 컨벤션 지키기 * feat: (#488) 랭킹 1~3위 icon 생성 * feat: (#488) 랭킹 1~3위 icon으로 적용 및 열 간격 조절 * refactor: 랭킹표 컴포넌트의 폴더 위치를 컴포넌트폴더에서 페이지폴더로 이동 * refactor: 랭킹표 공통 스타일드 컴포넌트 파일명 수정 * refactor: (#488) 스위치 토글 훅 분리 및 적용 * feat: (#488) 랭킹 페이지 UI 구현 * test: (#488) 랭킹 페이지 UI 테스트 * design: (#488) 열정 유저 테이블 UI 둥글리기 수정 * feat: (#507) 랭킹/내정보 icon svg 추가 및 새로고침 icon 크기 줄이기 * feat: (#507) 랭킹 페이지 PATH 상수 추가 및 라우터 추가 * feat: (#507) 아이콘 버튼 컴포넌트에 유저/랭킹페이지로 가는 아이콘 카테고리 추가 * feat: (#507) 좁은 메인헤더, 넓은헤더에 유저, 랭킹 아이콘 추가 및 프롭스 수정 - 이동 이벤트 프롭스에서 헤더 안으로 옮기기 * design: (#488) 랭킹 페이지 양옆 공백주기 * feat: (#488) 열정유저 type 확정에 따른 수정 및 분리, 적용 - 열정유저 랭킹 컴포넌트의 프롭스로 랭킹정보 전달하도록 수정 * design: (#488) 열정유저 중 사용자가 없는 경우 사용자 랭킹UI 처리 하지 않음 * feat: (#488) 인기글 랭킹 type 확정에 따른 적용 및 상세페이지 링크 활성화 * feat: (#488) 인기글 랭킹 목록 데이터 프롭스로 넘겨주는 방식으로 수정 * style: 스타일드 컴포넌트 컨벤션 따르기 * feat: (#488) 오입력한 랭킹된 인기글 타입 수정 * 게시글 컴포넌트, 댓글 컴포넌트, PostMenu 컴포넌트 웹접근성 높이기 (#451) * feat:(#409) 비회원 유저 게시글 웹 접근성 완료 * feat: (#409) 토스트에서 에러 메세지가 나타날 때 스크린리더기에서 들리도록 수정 * chore: (#409) package.json 맥북에서 휴대폰으로 들어갈 수 있는 로컬 아이피를 반환하는 명령어 추가 * feat: (#409) 비회원 댓글에서 로그인하라는 컴포넌트 스크린 리더기 웹 접근성 완료 * feat: (#409) 댓글 더 보기시 탭 인덱스가 맨 밑으로 이동하는 문제 수정 * feat: (#409) 투표 선택지를 클릭했을 때 투표 완료한 선택지 상태로 나오도록 구현 * feat: (#409) 댓글 메뉴, 게시글 메뉴 등 스크린 리더기에서 더 많은 정보를 주도록 구현 * feat: (#409) 의미있는 태그 사용 및 글자 색상 더 진하게 변경 * feat: (#409) 게시글 신고 메뉴 열기, 닫기가 스크린 리더기로 들리도록 구현 * fix: (#409) 동일하게 button 태그로 보이도록 한 코드 수정 * refactor: (#409) 댓글 작성/수정을 구분 짓는 대상 변경 - 코드 가독성 측면 * refactor: (#409) 댓글 더보기를 성공했을 경우 사용자에게 알려줌(접근성) * refactor: (#409) 없어도 되는 속성 제거 * 컴포넌트 사용성 개선 및 라우팅 제한 추가, github action worflow 오류 해결 등 버그 5건 수정 (#524) * fix: (#518) pr 코멘트 메시지 수정, 채널톡 컴포넌트 경로 수정 * feat: (#477) 개인정보 업데이트 쿼리 및 통신 실패에 대한 toast 띄우기 구현 * fix: (#478) UpButton, AddButton 고정 및 width 조정 * refactor: (#476) 뒤로가기 버튼을 누르면 이전 url로 이동하도록 수정 * design: (#474) 토스트 외부에서 상호작용 가능하도록 style 수정 * fix: (#518) path 수정 * fix: (#518) working directory 삭제 * fix: (#477) path 수정 * chore: (#474) 코드 복구 * 랭킹 UI와 hook 연결 및 msw 도입 (+변경된 랭킹 객체 타입 적용) (#525) * feat: (#521) 변경된 랭킹 관련 타입 속성명 적용 * feat: (#521) 사용자 열정랭킹, 열정유저 랭킹, 인기글 랭킹 api msw 생성 * feat: (#521) 변경된 랭킹 관련 타입 속성명 적용 * fix: 열정유저 랭킹, 인기글 랭킹 api, 쿼리훅에서 타입 오지정 수정 - 배열형태로 수정 * fix: 사용자 랭킹 쿼리훅 함수명이 열정유저 랭킹 쿼리훅 함수명과 동일한 오류 수정 * feat: (#521) 사용자 랭킹정보 서스펜스 및 에러바운더리 적용을 위한 분리 및 적용 * feat: (#521) 열정랭킹 테이블, 인기글랭킹 테이블 에러바운더리, 서스펜스 적용 - 적용을 위해 테이블 컴포넌트로 api 호출 위치 변경 - 이에 따른 테스트 코드 변경 * 닉네임 정책 사용자에게 14일마다 가능하다고 안내 메세지 변경 (#529) * fix: (#528) 닉네임 변경 정책 문구 추가 및 수정 * fix: (#484) 권장하지 않는 코드 삭제 * 앱 설치를 지원하지 않는 브라우저에서 안 나오는 것 수정 및 7일마다 물어보도록 수정하기 (#527) * fix: (#520) ios 사용자에게 보여지도록 수정 * feat: 앱 설치 창을 닫기 눌렀을 때 7일간 보이지 않도록 구현 * refactor: (#520) ios 프롬프트 분리 및 코드 가독성 개선 * style: (#520) 설치 창 높이 css 설정 * chore: BeforeInstallPromptEvent 타입 원상 복구 * style: 웹으로 볼게요 버튼 추가 * refactor: (#520) 컴포넌트 파일명을 ios와 모바일에서 즐겨찾기, 설치로 변경 * 회원의 닉네임을 일정주기를 통해 변경할 수 있도록 구현 (#498) * refactor: (#491) 닉네임 변경 주기 설정 * refactor: (#491) 닉네임 변경 주기에 대한 테스트하기 용이한 구조로 변경 및 도메인 테스트 추가 * refactor: (#491) 불필요한 출력문 제거 * test: (#491) 리플렉션 유틸 클래스를 사용하도록 변경 * refactor: (#491) 닉네임 최초 변경 로직을 prefix로 구분하도록 변경 * refactor: (#491) 닉네임 변경 메서드 분리 및 예외 메시지 수정 * test: (#491) 초기 닉네임이 포함되었을 때 닉네임이 변경되지 않도록 확인하는 검증 추가 * ts-loader를 esbuild-loader로 마이그레이션(빌드 시간 최적화) (#544) * refactor: (#538) ts-loader를 esbulid-loader로 대체 * chore: type checking을 위한 플러그인 설치, target 변경 * 내 랭킹정보 조회 기능 (#522) * feat: (#515) 모든 멤버의 게시글 작성 개수 불러오기 메서드 추가 * feat: (#515) 모든 멤버의 투표 수 불러오기 메서드 추가 * feat: (#515) 랭킹 순위 구하는 클래스 구현 * feat: (#515) 내 랭킹 정보 조회 API 구현 * style: (#515) 주석 수정 * feat: (#515) swagger 추가 * style: (#515) final 키워드 추가 * refactor: (#515) 응답 변수 추출 * refactor: (#515) 메서드 이름 수정 및 순서 변경 * refactor: (#515) 클래스와 메서드 이름 수정 및 상수 추출 * refactor: (#515) 테스트 응답 검증 추가 및 변수 이름 수정 * refactor: (#515) 트랜잭션 어노테이션 추가 * refactor: (#515) score 반환 long으로 변환 * refactor: (#515) getter 메서드 명 수정 * test: (#515) assertAll 로 수정 * refactor: (#515) ranking 도메인 패키지로 변경 * refactor: (#515) 클래스 이름 및 메서드 이름 수정 * refactor: (#515) 클래스,메서드,변수명 수정 * refactor: (#515) 패키지 수정 * refactor: (#515) swagger 어노테이션 명세 수정 * refactor: (#515) uri 수정 * fix: (#515) uri 테스트 수정 * chore: (#561) 불필요한 플러그인 삭제 (#562) * 검색에 관한 설정과 전체 게시글 초기 설정 변경 (#547) * feat: (#530) 페이지 진입 시 전체, 최신순으로 정렬 옵션이 설정되도록 수정 * feat: (#534) 아무런 값이 없으면 검색이 되지 않도록 구현 앞 뒤 공백을 제거하여 검색하도록 구현 검색어를 검색창에 남기도록 수정 * fix: (#530) 왼쪽 카테고리 탭에서 검색어를 보여주던 기능 삭제 * feat: (#530) 검색어와 공백을 제거한 검색어가 다를 때 공백을 제거한 검색어로 state값 변경 * feat: (#530) 검색어 자동완성 기능 해제 * fix: (#530) onKeywordChange에서 handleKeywordChange로 이름 변경 * fix: (#530) onSearchSubmit에서 handleSearchSubmit로 이름 변경 * refactor: (#530) 검색어에서 중간의 공백이 많은 경우도 고려하여 중간 공백 제거 기능 구현 * feat: (#530) 검색어 100글자까지 입력 가능하도록 설정 * refactor: (#530) 기존 hook을 이용하여 기능이 동작하도록 코드 변경 * 인기게시글 랭킹 목록 조회 기능 (#546) * feat: (#539) 응답 dto 생성 * feat: (#539) 인기 게시글 랭킹 조회 api 구현 * feat: (#539) swagger 추가 * refactor: (#539) 필드 순서 변경 * refactor: (#539) 정팩메 메서드 이름 수정 * refactor: (#539) 람다 메서드 수정 * refactor: (#539) 불필요한 정렬 삭제 * refactor: (#539) 개행수정 * test: (#539) 테스트 코드 추가 * test: (#539) 테스트 코드 추가 및 보충 * refactor: (#539) 레코드 이름 수정 * refactor: (#539) 레코드 이름 수정 * refactor: (#539) 테스트 응답 검증 방법 수정 * 열정 유저 랭킹 목록 조회 기능 (#569) * feat: (#565) 상위 10명의 열정 유저 랭킹 목록 조회 기능 * refactor: (#565) 컨벤션 수정 및 dto 정적 팩터리 메서드 적용 * refactor: (#565) test final 키워드 삭제 * chore: (#565) 게시글 이미지 관련 크기 설정 수정 * 리프레시 토큰 기능(로그아웃 포함) 구현 (#545) * chore: (#532) spring data redis 의존성 추가 및 레디스 설정 추가 * feat: (#532) redis port, host config 설정 * feat: (#532) 액세스 토큰 재발급 기능 구현 * chore: (#532) 액세스, 리프레시 토큰 만료시간 설정 분리 * refactor: (#532) 메서드 분리 및 쿠키의 attribute가 아닌 value를 불러오도록 변경 * feat: (#532) 로그아웃(리프레시 토큰 삭제) 기능 구현 * chore: (#532) swagger명세를 위한 어노테이션 추가 * refactor: (#532) 메서드 순서 변경 및 예외 클래스 수정 * chore: (#532) TestContainers 의존성 추가 * chore: (#532) 테스트 토큰 만료 시간 분리 * test: (#532) 인증 토큰 재발급 및 갱신 토큰 삭제에 대한 검증 추가 * test: (#532) 인증 토큰 재발급 및 갱신 토큰 삭제 요청에 대한 검증 추가 * refactor: (#532) 변수명 수정 및 테스트 final키워드 제거 * refactor: (#532) 메서드 위치 수정 및 트랜잭션 NoRollbackFor옵션 추가 * refactor: (#532) RefreshToken record형식으로 변경 * refactor: (#532) dto리네이밍 및 토큰예외 관련 리네이밍 및 코드 수정 * refactor: (#532) 인증 토큰 재발급 request에 @NotBlank검증 추가 및 관련 테스트 추가 * refactor: (#532) 트랜잭션 처리를 위해 RedisTemplate으로 변경 * refactor: (#532) Json관련 예외를 비즈니스 로직에서 처리하도록 변경 * refactor: (#532) 불필요한 클래스 및 인터페이스 제거 * refactor: (#532) RedisConfig에 트랜잭션을 사용하도록 설정 * lighthouse 결과를 알려주는 github action 구현, 웹접근성 개선, 반응형 관련 버그 1건 수정 (#560) * feat: (#542) lighthosue ci 설치, lighthouse 측정 결과를 알려주는 github workflow 구성 * refactor: (#542) EmptyPostList 컴포넌트 시맨틱 태그로 변경, 검색 결과 문구 변경 * chore: (#542) deafults, paths 추가 * fix: (#548) 게시글 작성, 위로가기 버튼이 잘려서 보이는 에러 해결 * chore: (#542) push 대신 pr 로 github action 변경 * chore: (#542) types 추가 * fix: (#542) lighthouse 결과가 comment로 달리지 않는 에러 해결 * refactor: npm install 을 npm ci 로 변경 * refactor: (#457) 게시글 작성 버튼에 aria-label 추가 * chore: (#542) build에 사용될 env 추가 * chore: (#542) env 파일 세팅 * feat: (#457) 페이지 최상단(헤더 아래) 및 게시글 페이지 마지막에서 게시글 작성 페이지로 이동 가능하도록 구현 * feat: (#457) 최상단에 focus하면 tabIndex 초기화하도록 하는 button 추가, UpButton 누르면 최상단 버튼으로 focus 되도록 구현 * chore: (#542) step name 구체화 * chore: (#542) npm ci -> npm install 로 변경, node 버전 낮추기 * refactor: (#574) testcontainer관련 테스트 클래스 삭제 (#575) * 리프레시 토큰 구현 (#517) * fix: (#508) 변수명 오타 수정 * refactor: (#508) 어색한 함수 이름 수정 * refactor: (#508) function 함수에서 const 화살표 함수로 변경 * feat: (#508) 네트워크 요청을 하기 전 리프레시, 액세스 토큰 여부로 리프레시, 액세스 토큰 최신화 구현 * feat: (#508) 로그인, 로그아웃 시 리프레시 토큰 추가, 삭제되도록 코드 추가 * feat: (#508) 쿠키의 만료기간을 2주로 설정 * test: 리프레시 토큰을 post 통신하여 액세스 토큰, 리프레시 토큰을 반환하는 함수 테스트 * test: (#508) 리프레시 토큰과 액세스 토큰의 유효성 검사를 통해 재발급하는 과정 테스트 * feat: (#508) 재발급 시 오류가 났을 때 쿠키에서 토큰을 삭제하도록 함 * refactor: (#508) 로그인 리다이렉트 페이지에서 유저 정보를 패치해오는 로직 코드 가독성 개선 hasEssentialInfo를 쿠키로 저장할 때 문자열 값으로 수정 * refactor: (#508) hasEssentialInfo을 쿠키가 아닌 로컬스토리지로 변경 유효 기간이 없다는 장점과 보안과 상관없는 정보이기 때문에 Secure, HttpOnly 설정이 필요 없어보여서 로컬 스토리지로 변경 * fix: (#516) hasEssentialInfo 정보를 삭제했을 때 개인 정보를 다시 입력할 수 있던 버그 수정 * refactor: (#508) silentLogin 함수를 유틸 파일로 분리 * refactor: (#508) 쿠키의 유효 기간을 설정 할 수 있도록 함수 인자 추가 hasEssentialInfo를 로컬스토리지에서 쿠키로 변경 * feat: 로컬 스토리지 유틸 함수 구현 및 액세스 토큰 키값 작성 변경된 명세에 맞춰 테스트 코드 변경 * feat: 리프레시 토큰 변경된 명세에 맞춰 silentLogin 코드 변경 및 테스트 코드 추가 * refactor: (#508) 쿠키를 가져오고, 설정하는 유틸 함수를 좀 더 범용적으로 수정 any 타입 삭제 및 액세스 토큰을 쿠키에서 로컬스토리지에 설정하고 가져오도록 기존 로직 변경 * fix: (#508) 액세스 토큰의 값과 현재 날짜로 사용하는 숫자의 단위가 다른 부분 수정 테스트 명세와 다르게 테스트가 동작하던 부분 수정 * refactor: (#508) 토큰과 관련된 유틸 함수를 폴더로 분리 액세스 토큰과 리프레시 토큰을 검증하는 로직 중 동일한 로직이 있어서 중복을 제거 액세스 토큰 타입 파일 생성 테스트 코드 가독성이 안좋다고 생각하여서 상수를 사용하여 가독성 개선하고자 함 * feat: (#537) 로그아웃 api 함수 구현 및 적용 msw, 테스트 코드 작성 * chore: (#508) auth 전역 변수에서 사용하지 않는 정보인 액세스 토큰 정보 삭제 * feat: (#508) 쿠키를 서버측에 보내는 Request에 포함하도록 설정 * refactor: (#508) 사용되지 않는 쿠키에 관련된 상수값 제거 * refactor: (#508) 함수에 사용되는 매개변수 이름을 data에서 value로 변경 * refactor: (#508) 일자를 초로 바꾸는 함수를 이용하도록 수정 * response 필드 변수 수정 (#578) * fix: (#576) response 필드 변수 수정 * fix: (#576) response 필드 변수 수정 * feat: (#552) 네이버 소유권 확인용 meta 설정 (#568) * Release 1.0.1 출시 (#581) * PR 이슈 템플릿 작성 (#2) * docs: (#1) 깃 이슈 템플릿 작성 * docs: (#1) 깃 PR 메세지 템플릿 작성 * chore: 파트 별 디렉터리 생성 * 백엔드 프로젝트 생성 (#5) * chore: (#4) gitignore 생성 * feat: (#4) 스프링 프로젝트 생성 * docs: (#4) EOL 수정 * 멤버의 Entity, Repository 구현 (#9) * feat: (#7) Member, MemberCategory 엔티티 추가 * feat: (#7) Vote 엔티티 추가 * 게시글의 Entity, Repository 구현 (#10) * feat: (#8) 카테고리 Entity, Repository 작성 * feat: (#8) 게시글 Entity, Repository 작성 * feat: (#8) 게시글 카테고리 Entity, Repository 작성 * feat: (#8) 게시글 선택지 Entity, Repository 작성 * refactor: (#8) Entity, Repository 팀 컨벤션에 맞게 수정 * 프론트엔드 프로젝트 설정 (#11) * chore: (#6) 프론트엔드 프로젝트 초기 개발 환경 구축 webpack, react, typescript, eslint 절대 경로 설정 * chore: (#6) styled-components 설치 및 global style 세팅 * chore: storybook 설치 및 세팅 styled-component 관련 세팅 * chore: 테스트 환경 구축 모의 테스트(단위 테스트, hook 테스트) 실행 * 전체 Entity 연관관계 매핑, Auditing 기능 추가 (#13) * feat: (#12) 전체 Entity 연관관계 매핑, Auditing 기능 추가 * refactor: (#12) DB의 MySQL 방언 설정을 MySQL57Dialect 대신 MySQLDialect를 설정하는 것으로 개선 * feat: (#12) JPA를 통해 insert되는 값을 확인하기 위한 설정 추가 Co-authored-by: jeomxon <[email protected]> Co-authored-by: woo-chang <[email protected]> Co-authored-by: aiaiaiai1 <[email protected]> * 불필요한 파일 삭제 및 버튼 컴포넌트를 스토리북 예제 파일로 변경 (#25) * chore: (#21) 불필요한 폴더 삭제 * chore: (#21) 버튼 컴포넌트를 스토리북 예제 파일로 수정 * Jpa Auditing, Swagger 설정 (#27) * feat: (#26) JPA Auditing 설정 추가 * feat: (#26) Swagger 설정 추가 * feat: (#26) 헬스 체크 기능 구현 * chore: (#26) 코드 정렬 * refactor: (#26) 스프링 프로퍼티 불변으로 수정 * 공통 모달 컴포넌트 구현 (#28) * refactor: (#17) App.tsx에서 Example 컴포넌트 import Button 컴포넌트 대신 Example 컴포넌트 import * feat: (#17) Modal 컴포넌트 구현 및 스토리 작성 Modal 컴포넌트는 3가지 상태 - Default, Wide(디바이스 width가 넓은 경우), With Close Button(모달 안에 취소 버튼이 있는 경우)로 구성된다 * chore: (#17) Modal 컴포넌트 common 폴더로 이동 * chore: (#17) Modal 컴포넌트 css property 정렬 * design: (#17) Modal 컴포넌트 내 Body, Description css 수정 * refactor: (#17) 파일 간 순환참조 코드 삭제 * refactor: (#17) Modal 컴포넌트 onModalClose props에 setStateAction 대신 일반함수(closeModal) 전달하도록 수정 * chore: (#17) 오타 수정 * refactor: (#17) story에서만 사용하는 style들 stories.tsx 로 이동 * refactor: (#17) size props의 타입 분리 대신 컴포넌트 파일 내에 명시 * refactor: (#17) 모달 사이즈 상수화 * chore: (#17) 불필요한 export 삭제 * 공통 버튼 컴포넌트 구현 (#31) * feat: (#15) 추가 버튼(글쓰기, 선택지 추가용) 구현 * test: (#15) 추가 버튼(글쓰기, 선택지 추가용) 크기별 테스트 생성 * feat: (#15) 네모버튼 구현 * test: (#15) 네모버튼 테마별 테스트 생성 * feat: (#15) 헤더에 들어갈 글자버튼 구현 * test: (#15) 헤더에 들어갈 글자버튼 테스트 생성 * design: (#15) 더하기버튼, 네모버튼 컴포넌트 cursor를 포인터로 수정 * feat: (#15) 아이콘, 로고, 프로젝트 이름 svg파일 생성 - 아이콘: 뒤로가기, 카테고리 사이드 바, 검색 * chore: svg import를 위한 설정 * feat: (#15) 아이콘 버튼 구현 * test: (#15) 아이콘버튼 테스트 생성 * feat: (#15) 웹 접근성을 위한 aria-label 속성 추가 * chore: npm 설치하기 * refactor: 삭제된 컴포넌트 코드에서 제거 * feat: (#15) 클릭이벤트를 인자로 받아 속성 부여 * test: (#15) 클릭이벤트 프롭스추가, 테스트에 반영 * refactor: (#15) 추가 버튼 스타일 컴포넌트 중 사이즈 상수화 - 추가로 가로, 세로 길이 통일 * test: 중복되는 아이콘 버튼 테스트명 생략 * design: (#15) 헤더글씨버튼 굵기 수정 * refactor: (#15) 아이콘 관련 타입 정의 및 상수 분리 * design: (#15) 네모버튼 outline -> border로 수정 * refactor: (#15) 웹접근성 향상을 위한 aria-label, alt 수정 * refactor: (#15) 버튼 컴포넌트 프롭스가 버튼 엘리먼트 상속 받도록 수정 * refactor: (#15) 사이즈 단위 타입 파일로 분리 및 이름 수정 - 이름 수정: s/m/l -> sm/md/lg * test: (#15) 버튼 컴포넌트 프롭스 변경에 따른 테스트 코드 수정 * refactor: (#15) 추가 버튼 코드 리팩토링 * refactor: (#15) 웹접근성 향상을 위한 aria-label, alt 수정 * 게시글에서 보는 투표 선택지 컴포넌트 UI 구현 (#30) * feat: (#18) 게시글에서 보는 투표 선택지 컴포넌트 UI 구현 * refactor: (#18) 가독성 좋은 코드가 되도록 변수명 수정 및 CSS 속성 변경 글 목록에서 이미지 안 보이도록 수정 * refactor: (#18) 불필요한 코드 삭제 및 퍼센트 소수점 1자리 보이도록 수정 * PR 진행 시 테스트 통과 선행 기능 구현 (#37) * chore: (#33) .gitignore 수정 * feat: (#33) PR시 테스트 선행 기능 구현 * TimePickerOption, TimePickerOptionList 컴포넌트 구현 (#35) * feat: (#19) TimePickerOption 컴포넌트 구현 및 스토리 작성 * design: (#19) 폰트 스타일 수정 * refactor: (#19) 이벤트 관련 함수명 맨 앞에 handle 추가 * chore: (#19) 컴포넌트 폴더 구조 변경 TimePickerOptionList 폴더 생성, 해당 폴더 하위에 TimePickerOption 컴포넌트 위치 * refactor: (#19) TimePickerOption 에서 TimePickerOptionList의 스토리 및 스타일 분리 * design: (#19) Wrapper style 추가, Container width 퍼센트로 수정 * refactor: (#19) 변수명 수정 * fix: (#19) 최상단으로 스크롤 안되는 이슈 해결 border style 추가 * chore: (#19) 불필요한 export 코드 제거 * chore: (#19) 오타 수정 * refactor: (#19) TimeBox 하위의 child 높이값 상수화 및 중복된 변수 제거 * refactor: (#19) early return 추가 및 useEffect의 의존성 배열에 인자 추가 * 헤더 컴포넌트 구현_Feat/#16 (#39) * feat: (#16) 검색 아이콘 색상(검/흰) 분리 * feat: (#16) 검색바 컴포넌트 생성 * test: (#16) 검색바 컴포넌트 크기별 테스트 * feat: (#16) 탭, 모니터용 긴 헤더 컴포넌트 생성 * test: (#16) 탭, 모니터용 긴 헤더 컴포넌트 테스트 생성 * feat: (#16) 로고, 프로젝트명 버튼 컴포넌트 생성 * test: (#16) 로고, 프로젝트명 버튼 컴포넌트 테스트 생성 * refactor: 로고 버튼으로 기존 코드 변경 * feat: (#16) 모바일 버전 메인페이지 헤더 컴포넌트 생성 * test: (#16) 모바일 버전 메인페이지 헤더 컴포넌트 테스트 생성 * feat: (#16) 모바일용 짧은 헤더 템플릿 컴포넌트 생성 - 내용을 children 프롭스로 전달받도록 구현 - 상단 고정 등 공동의 스타일 공유하기 위해 컴포넌트 제작 * test: (#16) 모바일용 짧은 헤더 템플릿 컴포넌트 테스트 * design: (#16) 검색바 버튼 커서를 포인터로 수정 * test: (#16) 스토리명 파스칼케이스로 수정 * refactor: (#15) 로고 컴포넌트 프롭스명 수정 * test: (#15) 로고 컴포넌트 프롭스명 수정에 따른 테스트 수정 * style: (#15) 코드 컨벤션에 맞게 CSS 순서 정렬 * refactor: 짧은 기본 헤더 이름 수정 - NarrowOriginHeader > NarrowMainHeader * 리액트 쿼리, msw 설치 및 셋팅 (#48) * feat: (#46) msw, react-query, .env 적용 - 스토리북에도 적용 * feat: (#46) react-query 앱 컴포넌트에 적용 * refactor: (#46) env파일 삭제 * chore: (#46) env파일 gitignore에 추가 * fetch 유틸 함수 구현, 예시 useQuery 훅 구현 , 예시 api 함수 구현 (#51) * feat: (#49) fetch 유틸 함수 구현 (GET, POST, PUT, PATCH, DELETE) * feat: (#49) api 폴더 안에 컨벤션이 될 예시 함수 구현 * feat: (#49) 컨벤션이 될 예시 useQuery 훅 구현 * 투표 작성 페이지의 투표 선택지 컴포넌트 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를 이용하여 가독성 개선 * des…
🔥 연관 이슈
close: #81
📝 작업 요약
회원 정보 조회 API 기능 구현
🔎 작업 상세 설명
없음
🌟 논의 사항
없음