Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* 프론트엔드 기본 환경 설정 (#3) * chore: 기본 환경설정 (#2) * chore: 필수 의존성 설치 (#2) * Chip 컴포넌트 구현 (#18) * feat: 전역 스타일링 적용(#2) Co-authored-by: SONG WON LEE <[email protected]> * chore: 스토리북 기본설정 Co-authored-by: SONG WON LEE <[email protected]> * chore: svg inline loader 설치 및 적용 Co-authored-by: SONG WON LEE <[email protected]> * feat: Chip 컴포넌트 구현 Co-authored-by: SONG WON LEE <[email protected]> Co-authored-by: SONG WON LEE <[email protected]> * feat: Avatar 컴포넌트 구현 (#13) (#20) * CountIndicator 컴포넌트 구현 (#19) * feat: CountIndicator 컴포넌트 구현 (# 15) * feat: CountIndicator 컴포넌트에 theme 적용 (#15) * chore: styled-components 의 theme 객체에 타입을 부여 (#22) (#23) Co-authored-by: LEESONGWON <[email protected]> * chore: css normalize 적용 (#21) (#24) * type declare error 해결 (#25) * chore: svg-inline-loader를 svgr과 url-loader로 대체 * fix: 오타수정 * fix: type declare오류 수정 - styled components type declare - svg module declare * 스토리북 webpack 에 svgr 적용 (#27) * chore: svg 파일 추가 및 svg 컴포넌트를 하나의 파일에서 import 해올 수 있도록 설정 (#29) Co-authored-by: LEESONGWON <[email protected]> * chore: 백엔드 기본 환경 설정 (#30) * chore: 패키지 구조 분리 및 스켈레톤 코드 작성 (#33) * feat: CricleIcon 컴포넌트 구현 (#12) (#31) * [#6] NavigationHeader 컴포넌트 구현 (#42) * fix: a 태그에 전역으로 부여된 hover 텍스트 color 제거 * chore: 이미지 파일 모듈에 대한 typing 적용 * feat: NavigationHeader 컴포넌트 구현 * feat: NavigationHeader 컴포넌트의 a 태그를 react-router-dom 의 Link 컴포넌트로 교체 - Link 컴포넌트에 경로 prop 할당 * [#17] TextEditor 컴포넌트 구현 (#43) * feat: svg 파일을 react component로 불러와 적용 * feat: TextEditor 컴포넌트 구현 (#17) * chore: s3proxy 기본 환경 설정 (#56) * [#7] StepHeader 컴포넌트 구현 (#47) * feat: StepHeader 컴포넌트 구현 - close #7 * feat: padding, width 값 px -> rem 으로 전환 * [#44] API Layer 추상화 및 profile request 구현 (#59) * chore: axios 설치 Co-authored-by: SONG WON LEE <[email protected]> * chore: 디렉터리 및 파일 이름 변경 Co-authored-by: SONG WON LEE <[email protected]> * feat: useLocalStorage hook 구현 Co-authored-by: LEE SONG WON <[email protected]> * feat: Profile reqest 및 query 구현 Co-authored-by: LEE SONG WON <[email protected]> * fix: 잘못사용한 메서드 수정 * feat: json-server를 통해 resource mocking Co-authored-by: SONG WON LEE <[email protected]> Co-authored-by: LEE SONG WON <[email protected]> * [#8] SearchHeader 컴포넌트 구현 (#60) * chore: StepHeader 컴포넌트 폴더 위치 변경 * feat: SearchHeader 컴포넌트 구현 * feat: Tabs 컴포넌트 구현 (#14) (#64) * feat: ContributionGraph 컴포넌트 구현 (#67) * feat: Input 컴포넌트 구현 (#65) * feat: ImageUploader 컴포넌트 구현 (#66) * feat: Button 컴포넌트 구현 (#41) (#72) * [#71] 초기 패키지 및 세팅을 설정 (#74) * chore: 초기 설정 및 엔티티 맵핑 보완 (#71) * chore: Authentication 패키지 스켈레톤 코드 작성 (#71) * [#46] Github OAuth 2.0을 사용한 로그인 기능 구현 (#75) * feat: pick-git 도메인이 등록된 Github Login URL을 받아오는 기능 구현 * fix: 존재하지 않는 패키지 import로 인해 발생하는 문제 해결 * feat: 사용자가 Github 로그인 후 Github Authorization Server로부터 AccessToken 가져오는 기능 구현 * refactor: application.yml에서 Github관련 구조 수정 * feat: 로그인시 Github Profile 최신화 및 토큰 생성하여 반환하는 기능 구현 * test: 로그인 관련 표현 계층 테스트 추가 * feat: DB로 부터 User 정보가 존재하는지 확인하기 위해 User 도메인 구현 * feat: 회원가입(첫 로그인)과 로그인(두번째 로그인부터)시 DB에 저장하는 기능 구현 - 회원가입(첫 로그인시) Github Profile을 가져와서 DB에 저장한다. - 로그인(두번째 로그인부터) Github Profile과 관련된 정보만 수정한다. * feat: 회원 인증을 위한 인터셉터와 HandlerMethodArgumentResolver 구현 * refactor: OAuth 액세스 토큰 DB에 접근하는 DAO 인터페이스로 분리 및 테스트 코드 추가 * refactor: OAuth로부터 Profile가져오는 코드 분리 * test: OAuthService 슬라이스 테스트 추가 * chore: 애플리케이션 설정 수정 * refactor: rebase과정에서 발생한 문제 해결 및 리팩토링 * feat: Comment 컴포넌트 구현 (#63) (#73) * [#4] ImageSlider 컴포넌트 구현 (#77) * feat: goBack, goForward svg가 currnetColor을 받도록 수정 * feat: useTrottle 구현 * feat: ImageComponent 구현 (#4) * fix: 색상코드 오타 수정 * [#5] PostItem 컴포넌트 구현 (#81) * feat: PostItem 컴포넌트 구현 - svg 아이콘 4개 추가 Co-authored-by: Tanney102 <[email protected]> * refactor: Comment 컴포넌트 props 수정 - name -> authorName - like -> 삭제(authorName을 활용하여 직접 link 생성) * fix: TextEditor 컴포넌트 fontSize prop 이 적용되지 않는 문제 해결 * refactor: Input 컴포넌트 Ref 사용 구문 단순화 Co-authored-by: Tanney102 <[email protected]> * [#76] 로그인 기능 리팩토링 및 테스트 추가 (#80) * refactor: OAuthController 목킹 애노테이션(WebMvcTest) 매개변수 수정 * refactor: Mock을 사용한 OAuthService 리팩토링 및 UserService(JPA)사용한 통합 테스트 작성 * fix: OAuth 관련 URL앞에 /api 없던 문제 수정 * refactor: 로그인 관련 요청 반환값으로 json형식이 반환되도록 리팩토링 * test: 인증 인터셉터 테스트 추가 * test: 인증 핸들러 메서드 아규먼트 리졸버 테스트 추가 * test: JWT 토큰을 통해 AppUser 반환하는 테스트 추가 * test: 로그인 URL 요청 및 로그인 인수 테스트 추가 * test: 로그인 URL 요청 및 로그인 인수 테스트 추가 * fix: OAuthService 통합테스트시 같은 AccessTokenDB를 Bean으로 공유해서 같은 토큰이 발행되는 테스트 문제 해결 * refactor: 인수테스트시 로그인하면 토큰을 주는 메서드 추가 * refactor: 게시물과 프로필 조회시 로그인 상태가 아니여도 인터셉터 통과하도록 리팩토링 * [#40] 게시물 작성 기능 구현 (#68) * feat: 게시물 작성 기능 구현 * fix: rebase conflict 해결 * refactor: @authenticated AppUser 바인딩 추가 * test: 슬라이스 테스트 작성 * refactor: URI.create() 메소드 추출 * refactor: 메소드명 변경 * feat: Bean Validation 예외 핸들링 * test: 메소드명 변경 * test: 슬라이스 테스트 보완 * test: 통합 테스트 작성 * feat: 유효성 검증 로직 추가 * test: 슬라이스 테스트 수정 * style: 필드 선언 순서 변경 * test: 인수 테스트 작성 * test: 인수 테스트 추가 * test: Data JPA 테스트 수정 * [#51 #53] 파일 업로드 기능 구현 (#69) * feat: S3-EC2 파일 업로드 기능 구현 * feat: 파일 업로드 API 구현 * feat: 파일 확장자 확인 기능 구현 (#54) * test: 인수테스트 작성 * refactor: 테스트 이름 재작성 * [#35 #36] 선택한 Github 레포지토리의 사용 언어 태그 추출 및 태그 저장/조회 기능 구현 (#52) * chore: 인수 테스트를 위한 RestAssured 의존성 추가 및 테스트 환경 구성 (#35) * feat: GIthub 특정 Repository에서 Language Tags 추출 (#35) * feat: Github Tag 추출 서비스 구현 (#35) * feat: Github Tag 추출 표현 계층 구현 (#35) * refactor: 태그 추출 기능 중 Github API 호출 부분 인터페이스 분리 (#35) * refactor: stub token으로 변경 * refactor: controlleradvice tag 패키지 범위 지정 * refactor: GithubTagExtractor 구현체 ObjectMapper 주입 (#35) * refactor: TagExtractor 피드백 반영 및 컨트롤러 슬라이싱 테스트 추가 (#35) * refactor: 태그 추출에 로그인 기능 포함 (#35) * feat: Post 저장시 등록된 Tag도 함께 저장 (#36) * feat: 이름에 해당하는 Tag가 없을때만 Tag 생성하는 서비스 구현 (#36) * refactor: 현재 글에 존재하는 Tag와 중복되는 이름의 태그 추가시 예외 발생 (#35) * refactor: Post에 Tag 정상 등록하는 테스트 추가 (#36) * refactor: 태그 unique 제약 추가 및 @transactional 적용 (#36) * refactor: 태그 도메인 생성 유효성 검사 추가 (#36) * refactor: 태그 인수 테스트 추가 및 패키지 구조 변경 (#36) * chore: secret 삭제 * refactor: Rebase 이후 인수 테스트에 로그인 요청 모듈 추가 (#35) * refactor: 잘못된 토큰으로 요청시 예외 확인 인수 테스트 추가 (#35) * fix: rebase 이후 실패하는 테스트 보완 * refactor: 태그 추가 실패 에러 및 플랫폼 에러를 커스텀 예외로 변환 및 TagController 반환타입 변경 (#35) * [#55 #57] 유저 프로필 조회 기능 구현 및 팔로우 팔로잉 기능 구현 (#61) * feat: 유저 프로필 조회 기능 구현 (#55) * feat: 유저 프로필 정보에 github url 추가 및 누락 파일 추가 (#55) * feat: 유저 팔로우 팔로잉 기능 구현 (#57) * test: 유저 프로필 및 팔로우/팔로잉 테스트 구현 (#55 #57) * test: 유저 프로필 및 팔로우/팔로잉 테스트 구현(#55 #57) * refactor: 유저 프로필 및 팔로우/팔로잉 피드백 반영 (#55 #57) * test: verify() 추가 (#55 #57) * [#88] LoginPage 구현 (#98) * fix: 오타 수정 * chore: storybook 설정에 full screen 옵션 추가 * feat: 웹폰트 추가 * feat: GithubIconLarge svg 추가 * fix: button attribute type 오류 해결 * feat: github login mock api 추가 * feat: user context 구현 * fix: ProfileQuery accessToken type error 해결 * feat: github login link 조회 api 구현 * feat: github login 페이지 구현(#88) * fix: UserContextProvider Props 타이핑 간소화 * feat: Provider 분리 및 UserContextProvider 추가 * feat: access token 조회 api 구현(#88) * feat: github OAuth 로그인을 처리하는 페이지 구현 * [#104] merge시 누락된 코드 추가 (#105) * fix: 누락된 interface 정의 추가 * fix: 누락된 prop 추가(commentId) * fix: 누락된 url constants 추가 * feat: 파일 업로드 기능 구현 (#100) * [#108] 예외 처리 전략 구현 (#112) * feat: 예외 처리 전략 구현 * refactor: GlobalExceptionHandler에서 최상위 카테고리인 ApplicationException만 받도록 수정 * refactor: RestControllerAdvice로 수정 * refactor: 예외 로깅용 예외 message 생성자 파라미터 추가 * feat: Button 컴포넌트 kind type 추가(#107) (#111) - SquaredBlock, RoundedInline추가 * [#102] 게시물에 Github Repository 주소 추가 기능 구현 (#109) * feat: post 업로드 시 github repository 주소 함께 저장 (#102) * fix: 불필요한 파일 삭제 (#102) * refactor: 피드백 반영 (#102) * [#34] 댓글 기능 구현 (#84) * feat: Comment 유효성 검증 로직 추가 (#34) * feat: Post 영속시 Comment 함께 영속화하는 기능 추가 (#34) * feat: User가 특정 Post에 Comment 추가하는 기능 구현 (#34) * feat: 등록된 게시물에 Comment 추가하는 서비스 구현 (#34) * test: Service 통합 테스트 추가 (#34) * feat: 댓글 추가 API 단위 및 인수 테스트 추가 (#34) * refactor: CommentFormat 예외 상태코드 변경 및 에러 코드 테스트 검증 (#34) * refactor: ControllerAdvice 이름을 특정 컨트롤러로 명시 (#34) * refactor: 코드 병합으로 인한 테스트 코드 및 설정 수정 (#34) * refactor: rebase 병합 해결 (#34) * [#37] Github Repositories 조회 기능 구현 (#58) * feat: Github Repositories 조회 기능 구현 * test: 슬라이스 테스트 작성 * refactor: get -> show 메소드명 수정 * refactor: 클래스명 수정 * refactor: Repository -> Repositories 클래스명 변경 * fix: rebase conflict 해결 * refactor: application -> domain <- infrastructure 방향으로 의존성 흐르도록 수정 * test: given-when-then 구문 수정 * refactor: HttpEntity -> RequestEntity 변경 * test: given-when-then 구문 수정 * refactor: Github Repositories 조회 기능 수정 * test: 컨트롤러 테스트 수정 * test: 슬라이스 테스트 수정 * test: 슬라이스 테스트 작성 * test: 인수 테스트 작성 * test: 통합 테스트 작성 * test: rebase conflict 해결 * feat: 프로필 조회시 팔로우 여부 판단 기능 구현 (#113) (#117) * [#95] 홈 피드 게시글 조회 (#114) * feat: 페이징을 통해 게시물을 조회하고 DTO로 변환 (#95) * refactor: rebase 병합으로 인한 충돌 해결 (#95) * feat: 게시물 조회 페이징 기능 서비스 테스트 추가 (#95) * refactor: 게시글 목록 조회 기능 인수 테스트 추가 및 태그 DTO 정리 (#95) * refactor: Post 조회 RestAssured 메서드 중복 리팩토링 (#95) * refactor: 병합으로 인한 충돌 해결 (#95) * refactor: batch size를 통한 페이징 쿼리 성능 개선 (#95) * refactor: 페이징 fetch join 추가 (#95) * [#119] 서브모듈 적용 (#120) * chore: 서브모듈 추가 (#119) * chore: 서브모듈 적용 (#119) * chore: 서브모듈 수정 (#119) * [#87] HomeFeedPage 페이지 컴포넌트 구현 (#121) * refactor: Provider 와 Global Style 적용을 App.tsx -> Index.tsx 에서 수행 Co-authored-by: Tanney102 <[email protected]> * feat: Profile 페이지 query 초기화 * refactor: CommentData 타입 변경 & Comment 컴포넌트 Props 의 CommentData 타입 의존성 제거 * fix: PostItem 컴포넌트에 댓글 달기 버튼 추가 & Tag 들을 나타내는 Chip 들 추가 - send.svg 추가 - PostItem 스타일링 변경 * chore: webpack 이미지 파일 로더 룰 추가 * feat: TextEditor 컴포넌트 배경색 prop 제거 - 기본 border-radius 제거 * feat: Button kind 별 padding 변화 적용 * feat: 상속용 Styled Component 제작 * feat: Header 컴포넌트들에 모듈 Styled Component 상속 적용 * chore: .vscode 를 gitignore 목록에 추가 * feat: PostItem 컴포넌트 마크업 구조 수정 - 필요하지 않은 prop 할당 삭제 * feat: Header 컴포넌트에 일괄적으로 적용할 높이값 상수화 * feat: PostItem 스타일 속성 수정 * feat: Feed 컴포넌트 구현 * feat: HomeFeedPage 페이지 구현 * feat: FAILURE_MESSAGE & LIMIT 상수 추가 - LIMIT 는 어플리케이션에서 제한하는 데이터 형식을 나타내는 상수들을 담은 객체 - FAILURE_MESSAGE 는 요청 혹은 동작이 실패했을 때 사용자 피드백에 활용될 메세지들을 담은 객체 * feat: HomeFeedPage 라우팅 적용 Co-authored-by: Tanney102 <[email protected]> * [#118] 예외 처리 전략을 적용 및 Entity에 id 동등성 추가 (#122) * refactor: Authentication 커스텀 예외처리 구현 * refactor: User, Tag 커스텀 예외처리 구현 * refactor: Post, Comment 커스텀 예외처리 구현 * refactor: 엔티티 id 동등성 정의 * refactor: 플랫폼 이니셜 V로 수정 * fix: DataJpaTest에 Date 관련 테스트 설정 추가 (#123) * [#89] Profile Page 구현 (#126) * refactor: Provider 와 Global Style 적용을 App.tsx -> Index.tsx 에서 수행 Co-authored-by: Tanney102 <[email protected]> * feat: Profile 페이지 query 초기화 * feat: Avatar 컴포넌트 name의 fontWeight을 bold로 변경 * feat: storybook dummy token 추가 * feat: mock data 및 routes 추가 * chore: svg 아이콘 추가 * fix: Profile interface 수정 * Revert "feat: mock data 및 routes 추가" This reverts commit ea74c1bfda40c4bacf71283d193fad62927859d7. * feat: ProfileHeader 컴포넌트 구현 (#89) * feat: Profile 컴포넌트의 api로직 및 query 구현 * feat: Profile 컴포넌트 구현(#89) * chore: assets/images의 파일을 .png, .jpg 로 통일 * chore: 이미지 확장자에 대해 url loader추가 * feat: profile 관련 mock api 추가 * feat: default Profile 이미지를 svg에서 png 파일로 변경 * refactor: profile page url을 하나로 통일 * feat: main 태그 추가 * feat: Profile컴포넌트 story 추가 * refactor: Profile url에 userType param 추가 * refactor: isMyProfile 속성을 Profile컴포넌트의 상위로 이동 * feat: Tabs 컴포넌트에 해당 탭에 대한 컨텐츠 추가 * feat: LoggedInWrapper util로 분리 * feat: ProfileFeed 컴포넌트 레이아웃 구현 * feat: mock data 추가 * feat: svg icon 추가 * refactor: 불필요한 코드 제거 및 누락 코드 보충 - 불필요한 의존성 제거 - 누락된 key prop 추가 - tab 스타일 변경 - 중복된 코드 제거 * feat: 프로필 피드에 비동기 로직 추가 * feat: GithubStatistics 컴포넌트 구현 * feat: Profile Page 구현(#89) * refactor: 불필요한 interface 제거 * feat: 로그인 페이지 레이아웃 수정 및 홈 버튼 추가 * feat: 레이아웃 수정 * fix: 누락된 accessToken 추가 * refactor: 불필요한 코드 제거 * feat: 스타일 변경 - main widht를 모바일 사이즈로 고정 - black button 패딩 조정 * feat: 데모를 위해 항상 로그인 상태를 유지하도록 수정 * feat: 반응형 레이아웃 적용 * refactor: optional한 엘리먼트를 JSX로 처리 * refactor: error에 따른 ui 분기를 선언적으로 명시 Co-authored-by: SONG WON LEE <[email protected]> Co-authored-by: Tanney102 <[email protected]> * feat: 젠킨스 설정 파일 생성 (#133) * refactor: 비로그인 유저로도 홈 피드 조회를 하도록 수정 (#134) (#135) * fix: 파라미터 없이 route하도록 url 및 관련 코드 수정 (#131) * fix: s3storage bean 탐색을 하지 못하는 버그 수정 (#136) * [hotfix] CORS 버그 해결 (#138) * fix: CORS 버그 해결 * chore: security 수정 * [#137] 내 프로필 계정의 게시물을 조회한다. (#139) * feat: 내 프로필 계정의 게시물을 조회 기능 구현 (#137) * refactor: Jenkins 빌드 스크립트 sleep을 3에서 10으로 변경 * [chore] api mocking 관련 코드 수정 (#140) * feat: 무한스크롤 구현 전임을 감안하여 posts 조회시 page, limit mock * feat: login mock 제거 * chore: 배포 환경에 따라 api proxy여부 분기 * chore: 운영 환경 설정 서브 모듈을 추가 (#143) (#144) * [#141] 다른 유저의 프로필 계정의 게시물 조회 (#142) * feat: 다른 유저의 프로필 피드를 조회하는 기능 구현 (#141) * refactor: Pageable 사용하도록 수정 (#141) * fix: PostRepository에 @param 추가 (#145) * [#146] 로그인 반환 값에 유저 네임 추가 및 인터셉터 매치 기능 리팩토링 (#147) * refactor: PathPattern 인터셉터 URL과 Method를 통해 매치되도록 리팩토링 * refactor: 로그인후 반환할 때 토큰과 함께 유저 네임도 보내도록 수정 * fix: 응답 파싱 에러 수정 (#148) * [#129] follow 추가, 취소 기능 구현 (#149) * fix: 폰트 import 위치 변경 * feat: follow 추가, 취소 기능 구현(#129) * feat: 어플리케이션 진입시 로그인 상태 확인 * refactor: submodule의 remote branch 기준을 main으로 변경 (#155) master -> main * refactor: 젠킨슨 빌드 유발 방식 변경에 따른 스크립트 수정 (#157) * [#152] 응답 파싱 에러 수정 (#153) * fix: 응답 파싱 에러 수정 * refactor: build.gradle 형식 통일 * fix: 비정상 파일 이름및 확장자 도출 버그 해결 (#160) * [#163] 빌드 에러를 확인하다. (#164) * fix: 비정상 파일 이름및 확장자 도출 버그 해결 * fix: 사용하지 않는 모듈 import로 인한 빌드 에러 수정 * fix: 사용하지 않는 모듈 import로 인한 빌드 에러 수정 (#165) * [#106] request DTO 유효성 검사 추가 (#151) * refactor: Client - Controller DTO명 변경 (#106) * style: 파라미터 개행 수정 (#106) * style: 메소드 개행 수정 (#106) * test: 클래스명 변경 및 패키지 구조 변경 (#106) * test: 불필요한 주석 삭제 (#106) * feat: 서브모듈 추가 (#143) * refactor: 기본 생성자 접근 제어자 변경 (#106) * refactor: application-prod.yml 삭제 (#106) * refactor: 적용되지 않는 Bean Validation 삭제 (#106) * refactor: request DTO에 Bean Validation 추가 (#106) * refactor: application-prod.yml 삭제 (#106) * refactor: 서브모듈 수정 * refactor: 에러 메시지 수정 (#106) * refactor: DTO 네이밍 수정 (#106) * [#169] 파일 주소가 제대로 반환되지 않는 버그 수정 (#170) * fix: 사용하지 않는 모듈 import로 인한 빌드 에러 수정 * fix: 파일 경로가 제대로 반환되지 않는 버그 수정 * refactor:사용하지 않는 import 제거 * [fix] 프론트엔드 이슈 수정 (#171) * fix: 새로고침시 로그인 상태를 유지하도록 수정 * fix: 오타수정 * fix: query에 자기 이름으로 profile페이지 들어올 경우 redirect * feat: 프로필 페이지 빈 게시물 표시 추가 * [fix] 프론트엔드 버그 수정 (#172) * refactor: 불필요한 의존성 제거 * fix: url 오타 수정 * fix: 게시물 태그 문자열 파싱 오류 해결 * [#173] Feature/loader and infinite scroll container (#175) * feat: Loader 컴포넌트 구현 * feat: InfiniteScrollContainer 컴포넌트 구현 * [#90] AddPostPage 페이지 컴포넌트 구현 (#176) * feat: AddPostPage 구성 컴포넌트 구현 - PostAddStepHeader 컴포넌트 구현 - PostContentUploader 컴포넌트 구현 - RepositorySelector 컴포넌트 구현 - TagInputForm 컴포넌트 구현 - githube 아이콘 추가 * feat: separatorColor theme 색상 추가 * feat: AddPostPage 구현 - ImageUploader 컴포넌트 prop 명 변경 - 게시물 업로드에 사용되는 객체들의 타입 추가 - 게시물 업로드에 사용되는 API_URL, GITHUB_URL, STEPS 상수 추가 - PostAddDataContext & PostAddStepContext 추가 * fix: Noto Sans 웹폰트가 로드되지 않는 문제 해결 * feat: requestAddPost 요청 함수 구현 * feat: Input 컴포넌트에 name prop 추가 * feat: LIMIT 상수 객체에 FEED_COUNT_PER_FETCH 속성 추가 * feat: requestGetHomeFeedPosts 요청 함수에 기본 pageIndex 제공 * feat: PostAddDataContextProvider 적용 지점 변경 App -> AddPostPage 컴포넌트 바로 위 * feat: 태그 추가 후 태그 입력 Input 내용이 비워지도록 설정 * [#161] 회원/비회원 모두 받을 수 있는 API 토큰 검증 로직 수정 (#167) * refactor: 표현 계층과 응용 계층의 반환하는 DTO 네이밍 통일 * refactor: 회원/비회원 모두 받을 수 있는 API 토큰 검증 로직을 수정한다. - 기존 로직: 회원/비회원 모두 처리하는 API (ex. /api/posts)에서 토큰이 잘못된 경우 GuestUser로 처리. - 수정 로직: 회원/비회원 모두 처리하는 API (ex. /api/posts)에서 토큰이 잘못된 경우 401 예외 발생. * chore: 설정 수정 * refactor: 상수화 * refactor: 포맷팅 수정 * [#128] Infinite Scroll 기능 구현 (#178) * feat: Infinite Scroll 기능 구현 * feat: 페이지 컴포넌트에서 데이터를 fetch 받도록 수정 * feat: TagFeedPage & UserFeed 페이지 추가 - 기능 구현 X - PAGE_URL 상수 추가 * feat: 기존의 평문으로 제공되던 userName 을 로그인 된 유저 이름이 제공되도록 변경 * [#177] 게시물 시간 형식 추가 (#180) * feat: 게시물 시간 정보 수정 * fix: 시간 형식 수정 * [#181] 요청에 userName 이 동적으로 들어가지 않는 문제를 해결 (#182) * feat: Infinite Scroll 기능 구현 * feat: 페이지 컴포넌트에서 데이터를 fetch 받도록 수정 * feat: TagFeedPage & UserFeed 페이지 추가 - 기능 구현 X - PAGE_URL 상수 추가 * feat: 기존의 평문으로 제공되던 userName 을 로그인 된 유저 이름이 제공되도록 변경 * fix: 요청에 userName 이 동적으로 들어가지 않는 문제 해결 - 필요없는 console.log 제거 * fix: userName 과 repositoryName 이 없을 때 데이터가 fetch 되는 버그를 해결 (#186) - userName 이 파라미터로 들어가지 않은 문제 해결 * refactor: 홈피드를 최신 순으로 조회하도록 수정 (#189) (#191) * [#162] 태그 추출 API 명세 변경 (#166) * refactor: 태그 추출 api에서 name 제외 (#162) * [#106] request DTO 유효성 검사 추가 (#151) * refactor: Client - Controller DTO명 변경 (#106) * style: 파라미터 개행 수정 (#106) * style: 메소드 개행 수정 (#106) * test: 클래스명 변경 및 패키지 구조 변경 (#106) * test: 불필요한 주석 삭제 (#106) * feat: 서브모듈 추가 (#143) * refactor: 기본 생성자 접근 제어자 변경 (#106) * refactor: application-prod.yml 삭제 (#106) * refactor: 적용되지 않는 Bean Validation 삭제 (#106) * refactor: request DTO에 Bean Validation 추가 (#106) * refactor: application-prod.yml 삭제 (#106) * refactor: 서브모듈 수정 * refactor: 에러 메시지 수정 (#106) * refactor: DTO 네이밍 수정 (#106) * [#169] 파일 주소가 제대로 반환되지 않는 버그 수정 (#170) * fix: 사용하지 않는 모듈 import로 인한 빌드 에러 수정 * fix: 파일 경로가 제대로 반환되지 않는 버그 수정 * refactor:사용하지 않는 import 제거 * [fix] 프론트엔드 이슈 수정 (#171) * fix: 새로고침시 로그인 상태를 유지하도록 수정 * fix: 오타수정 * fix: query에 자기 이름으로 profile페이지 들어올 경우 redirect * feat: 프로필 페이지 빈 게시물 표시 추가 * [fix] 프론트엔드 버그 수정 (#172) * refactor: 불필요한 의존성 제거 * fix: url 오타 수정 * fix: 게시물 태그 문자열 파싱 오류 해결 * [#173] Feature/loader and infinite scroll container (#175) * feat: Loader 컴포넌트 구현 * feat: InfiniteScrollContainer 컴포넌트 구현 * [#90] AddPostPage 페이지 컴포넌트 구현 (#176) * feat: AddPostPage 구성 컴포넌트 구현 - PostAddStepHeader 컴포넌트 구현 - PostContentUploader 컴포넌트 구현 - RepositorySelector 컴포넌트 구현 - TagInputForm 컴포넌트 구현 - githube 아이콘 추가 * feat: separatorColor theme 색상 추가 * feat: AddPostPage 구현 - ImageUploader 컴포넌트 prop 명 변경 - 게시물 업로드에 사용되는 객체들의 타입 추가 - 게시물 업로드에 사용되는 API_URL, GITHUB_URL, STEPS 상수 추가 - PostAddDataContext & PostAddStepContext 추가 * fix: Noto Sans 웹폰트가 로드되지 않는 문제 해결 * feat: requestAddPost 요청 함수 구현 * feat: Input 컴포넌트에 name prop 추가 * feat: LIMIT 상수 객체에 FEED_COUNT_PER_FETCH 속성 추가 * feat: requestGetHomeFeedPosts 요청 함수에 기본 pageIndex 제공 * feat: PostAddDataContextProvider 적용 지점 변경 App -> AddPostPage 컴포넌트 바로 위 * feat: 태그 추가 후 태그 입력 Input 내용이 비워지도록 설정 * [#161] 회원/비회원 모두 받을 수 있는 API 토큰 검증 로직 수정 (#167) * refactor: 표현 계층과 응용 계층의 반환하는 DTO 네이밍 통일 * refactor: 회원/비회원 모두 받을 수 있는 API 토큰 검증 로직을 수정한다. - 기존 로직: 회원/비회원 모두 처리하는 API (ex. /api/posts)에서 토큰이 잘못된 경우 GuestUser로 처리. - 수정 로직: 회원/비회원 모두 처리하는 API (ex. /api/posts)에서 토큰이 잘못된 경우 401 예외 발생. * chore: 설정 수정 * refactor: 상수화 * refactor: 포맷팅 수정 * [#128] Infinite Scroll 기능 구현 (#178) * feat: Infinite Scroll 기능 구현 * feat: 페이지 컴포넌트에서 데이터를 fetch 받도록 수정 * feat: TagFeedPage & UserFeed 페이지 추가 - 기능 구현 X - PAGE_URL 상수 추가 * feat: 기존의 평문으로 제공되던 userName 을 로그인 된 유저 이름이 제공되도록 변경 * [#177] 게시물 시간 형식 추가 (#180) * feat: 게시물 시간 정보 수정 * fix: 시간 형식 수정 * [#181] 요청에 userName 이 동적으로 들어가지 않는 문제를 해결 (#182) * feat: Infinite Scroll 기능 구현 * feat: 페이지 컴포넌트에서 데이터를 fetch 받도록 수정 * feat: TagFeedPage & UserFeed 페이지 추가 - 기능 구현 X - PAGE_URL 상수 추가 * feat: 기존의 평문으로 제공되던 userName 을 로그인 된 유저 이름이 제공되도록 변경 * fix: 요청에 userName 이 동적으로 들어가지 않는 문제 해결 - 필요없는 console.log 제거 * fix: userName 과 repositoryName 이 없을 때 데이터가 fetch 되는 버그를 해결 (#186) - userName 이 파라미터로 들어가지 않은 문제 해결 * refactor: 홈피드를 최신 순으로 조회하도록 수정 (#189) (#191) * refactor: 태그 추출 api에서 name 제외 (#162) Co-authored-by: DAEUN LEE <[email protected]> Co-authored-by: Minsung Son <[email protected]> Co-authored-by: Tanney102 <[email protected]> Co-authored-by: SONG WON LEE <[email protected]> Co-authored-by: binghe819 <[email protected]> * [#192] 프로필 페이지 401에러 미처리 이슈 해결 (#196) * refactor: 변수 이름 수정, userName을 username으로 통일 * refactor: localStorage관련 로직 변경 * fix: 유효하지 않은 토큰에 대해 프로필 정보 리패치 * refactor: storage 모듈이 각 함수를 export 하도록 변경 * fix: 유효하지 않은 토큰에 대해 프로필 피드 리패치 * fix: github tas api url 변경 반영 * refactor: 타입가드 추가 * [#179] Github Repositories 조회 기능 수정 (#195) * refactor: 서브모듈 수정 * refactor: Github Repository URL도 함께 응답 (#179) * refactor: htmlUrl -> url 변수명 변경 (#179) * [#197] 레이아웃 및 UI를 개선 (#198) * feat: 더 이상 불러올 데이터가 없으면 Loader 가 사라지도록 Infinite Scroll 기능 수정 - Feed 데이터를 Page 에서 넘겨주도록 재설정 - 세부 기능이 구현되지 않은 TagFeedPage, UserFeedPage 페이지 컴포넌트 추가(HomeFeedPage 와 현재는 기능 동일) - 데이터 로딩 시 화면에 나타낼 PageLoading 컴포넌트 구현 * feat: 모든 ul 태그의 margin을 0으로 하는 전역 스타일링 적용 * feat: 데이터 로딩 시 PageLoading 컴포넌트가 나타나도록 설정 - Profile, RepositorySelector, TagInputForm 컴포넌트에 적용 * feat: PostItem 컴포넌트 padding 값 수정 * feat: 모바일 반응형 break point 재설정 & 각 페이지 컴포넌트의 Container 에 Page 스타일드 컴포넌트 확장 적용 * feat: RepositorySelector 컴포넌트의 RepositoryList 에 고정 높이 값 적용 - 내용물이 높이값을 초과할 시 스크롤이 나타나도록 설정 * feat: 로그아웃 버튼 추가 (#203) * [#194] REST Docs 적용 (#201) * feat: 문서화 코드 작성 * feature: 문서화 로직 및 기반 파일 구성 * [#207] 배포 자동화 버그 수정 (#208) * refactor: 빌드와 테스트를 하나의 stage로 합침. * refactor: 기존 process 제거 시 SIGKILL로 변경 * fix: 누락된 스크립트 추가. * [#91] Snackbar 구현 (#209) * fix: 컴포넌트 이름과 중복되는 interface 이름 변경 * feat: 스낵바 구현 * chore: 배포 환경에 따라 api url 분기 (#211) * chore: 프론트엔드 빌드 커맨드 수정 (#214) * [#200, #205] 태그 관련 이슈 해결 (#216) * fix: 게시글 추가 시, 초기에 불러온 기본 tag 들이 사라지지 않는 문제를 해결 * feat: 게시글 추가 중 태그 삭제 기능 구현 * fix: break point 에 맞게 어플리케이션 최대 너비를 375px -> 425px 로 조정 * [#217, #110] 테스트 패키지 구조 정리 (#218) * chore: 인수/통합 테스트 및 common(픽스쳐 팩토리, mock api) 패키지 분리 (#217) * chore: 기존 도메인 테스트 패키지들을 unit 하위로 이동 (#217) * refactor: Tag 관련 Github 플랫폼 클래스 이름에 Tag 명시 (#217) * chore: Test 관련 Configuration 통일 및 Github API 관련 클래스 프로필 설정 (#217) * chore: 롬복 의존성 추가 (#217) * refactor: TestConfiguration 클래스명에 Infrastructure 명시 (#217) * refactor: PostFactory 빌더 패턴 적용하여 가독성 향상 * refactor: 실패하는 테스트 리팩토링 * refactor: UserFactory 빌더 패턴 적용하여 가독성 향상 * refactor: PostFactory 의미 없는 메서드 제거 * refactor: Test Configuration 이름 변경 * refactor: user fixture setUp로직 위치 변경 * refactor: DTO Builder 어노테이션 적용 및 Builder 제공 클래스 제거 * refactor: gradle.build 파일 정리 * style: 의미없는 공백 제거 Co-authored-by: Minsung <[email protected]> * [#223, #229] API 변경사항 반영 및 Post 중복제거 (#235) * fix: API 명세 변경 사항 반영 - image와 imageUrl에 대한 키값 구분 - public repo를 가져오는 api 명에서 username 제거 * refactor: 불필요한 의존성 제거 * feat: 새로 패치된 post 중복제거 * fix: InfiniteScrollContainer effect 의존성 수정 * refactor: Snackbar 컴포넌트의 위치를 @layout으로 변경 * fix: post interface 수정 * refactor: 스낵바 메시지를 push 하는 메서드 이름을 더 명시적으로 변경 * fix: 중복된 key prop 수정 * feat: http error 처리 유틸 구현 * refactor: HomeFeedPage의 상태로직을 훅으로 분리 * [#204] Issue 및 PR Template 수정 (#239) * docs: PR 템플릿 수정 * docs: 이슈 템플릿 등록 * docs: 이슈 템플릿 수정 * docs: 이슈 템플릿 수정 * [#222] 프로필 페이지 피드 버그 수정 (#242) * refactor: 중복된 게시물을 제거하는 로직을 util로 분리 * feat: 프로필 피드에 무한 스크롤 기능 추가 * refactor: profile page의 상태를 context로 분리 * feat: 팔로우 버튼에 로딩 애니메이션 추가 * refactor: 불필요한 컨테이너 제거 * refactor: ProfilePage 구조 개선 - 훅을 끌어올리는 수준을 작은 범위로 수정 - context를 제거하고 컨테이너 역할을 하는 컴포넌트를 추가 * [#219] 게시글 추가 중 발생하는 에러에 대한 피드백, 핸들링 구현 (#241) * feat: BackDrop & MessageModalPortal 컴포넌트 구현 - index.html 에 div#modal 태그 추가 - MessageModalPortal 은 리액트 포털을 적용하여 구현 - 해당 컴포넌트를 사용하기 편하도록 useMessageModal 커스텀 훅 제작 * refactor: 필요 없는 import 구문 삭제 * feat: PostContentUploader 컴포넌트 안의 ImageSlider & ImageUploader 와 TextEditor 간의 margin 추가 * feat: 새로운 limits, messages 상수 추가 - message -> messages 로 파일 이름 변경 * feat: 게시글 추가 step 라우팅 path 에 한글이 들어가는 문제 해결 * fix: 필요한 변수 import 경로 수정 * feat: 게시글 추가 중 각각의 에러에 대한 이용자 피드백 구현 - PostAddFormData -> PostUploadData으로 변경 - 이용자의 깃허브 상에 올라와 있는 public repository 가 없으면 피드백 후 이전 페이지로 리다이렉트 시킨다. - repository 를 선택하지 않고 이미지 & 글 작성으로 넘어가려 한다면 이를 피드백한다. - 업로드한 이미지가 정해진 용량을 초과할 경우 피드백한다. - 업로드한 이미지 개수가 정해진 개수를 초과할 경우 피드백한다. - 이미지 개수가 정해진 개수를 초과할 경우 피드백한다. - 텍스트 길이가 정해진 길이를 초과할 경우 피드백한다. - 들어간 태그들 중 중복이 있으면 피드백한다. - 태그에 '-', '_' 를 제외한 특수문자가 들어갔다면 이를 피드백한다. * feat: ErrorResponse 타입 생성 및 적용 * feat: API 요청 에러 핸들링 구현 * [#232] 유저 테스트 코드 리팩토링 (#249) * refactor: 코드 정리 (#232) * refactor: 사용자 유효성 검증 추가 (#232) - 게스트인 경우 UnauthorizedException 발생 * refactor: DTO 관련 네이밍 정리 (#232) * test: 컨트롤러 테스트 리팩토링 (#232) * test: 서비스 테스트 리팩토링 (#232) * test: Data JPA 테스트 리팩토링 (#232) * test: 불필요한 상수 삭제 (#232) * test: 유저 이름 변경 (#232) - loginUser/guestUser -> testUser로 통일 * test: 서비스 테스트 추가 (#232) * test: 서비스 테스트 리팩토링 (#232) * test: 통합 테스트 리팩토링 (#232) * test: 인수 테스트 리팩토링 (#232) * refactor: Builder 사용 (#232) * refactor: Follow 객체에 책임 위임 (#232) * test: 접근 제어자 수정 (#232) * refactor: DTO 리팩토링 (#232) * test: 불필요한 필드 삭제 (#232) * test: WebEnvironment 옵션을 RANDOM_PORT -> NONE으로 변경 (#232) * test: @SpringBootTest -> @DataJpaTest 변경 (#232) * refactor: API 명세에 맞게 필드명 변경 (#232) - image -> imageUrl 변경 * [#240] Authentication 관련 테스트 코드 리팩토링 (#247) * test: authentication 관련 테스트 코드 리팩토링 (#240) * test: 테스트 코드 리팩토링 (#240) * refactor: 깃헙 인증 예외 변경 (#240) * test: Authentication 테스트 코드 피드백 적용 (#240) * test: HttpHeaders.AUTHORIZATION 으로 변경 (#240) * [#226, #227] 프로필 수정 모달 구현 (#255) * feat: Button 컴포넌트에 padding prop 추가 * feat: cancel-no-circle 아이콘 추가 * refactpr: BackDrop을 스타일드 컴포넌트로 수정 * refactor: textEditor 배경을 투명하게 수정 * chore: eslint no empty function 옵션 off * refactor: css keyframes 파일로 분리 * feat: 카메라 아이콘 추가 * feat: TextEditor 컴포넌트에 indicator 추가(#226) * refactor: z-index를 컨벤션에 맞게 수정 * feat: 프로필 수정 모달 구현(#227) * [#246] 댓글 테스트 코드를 리팩토링 (#250) * refactor: 댓글 관련 테스트 리팩토링 * refactor: 케빈 피드백 반영 * refactor: 댓글 조회 반환시 프로필 이미지 나오도록 수정 * [#220, #226] 네비게이션 ui 수정 및 이미지 인디케이터 추가 (#256) * refactor: 비로그인 시에도 홈네이게이션 노출 * fix: header와 image slider의 쌓임 순서 버그 해결 * feat: 이미지 인디케이터 구현 * [#234] 태그 테스트 코드를 리팩토링 (#245) * refactor: 태그 도메인 부분 테스트 리팩토링 * refactor: 태그 슬라이싱 테스트 리팩토링 * refactor: 태그 통합 테스트 리팩토링 * refactor: 태그 인수 테스트 리팩토링 * refactor: connection pool 사용하는 커스텀 RestTemplate 적용 * refactor: Post와 Tag 연관관계 부분 프로덕션 및 테스트 코드 리팩토링 * refactor: 케빈 피드백 적용 - ParameterizedTest 이용하도록 수정 - 중복된 테스트 제거 * refactor: 피드백 반영 * refactor: 소문자로 자동 변환되도록 수정 * refactor: 너잘 피드백 적용 * refactor: 깃헙에서 태그 가져올 때 소문자로 변환되도록 리팩토링 * [#221, #225] 프로필 피드 클릭시 유저 피드 페이지로 이동 (#260) * fix: 헤더에서 height가 큰 요소들의 레이아웃이 깨지는 버그 해결 * fix: slideButtonKind 복구 * refactor: 타입 단언 제거 * feat: 프로필피드에서 포스트 클릭시 유저 피드 페이지로 이동 * [#251] Post 테스트 코드를 리팩토링 (#252) * refactor: infrastructure 유닛테스트, comment 유닛테스트 리팩토링 * test: Post 관련 유닛테스트 리팩토링 * test: Post application 레이어 관련 테스트 리팩토링 * test: Post 인수 테스트 리팩토링 * test: PostControllerTest 리팩토링 추가 * test: post builder를 사용하도록 변경 * refactor: 리베이스 후 깨지는 테스트 수정 및 누락된 테스트 추가 * [#183] 게시글 댓글 기능을 구현 (#265) * feat: Feed 컴포넌트 명칭을 HomeFeed 로 변경 * feat: HomeFeed 컴포넌트에서 로그인 된 상태에서 자신의 개시글만 수정 아이콘이 뜨도록 변경 * feat: BottomSliderPortal 컴포넌트 구현 * feat: CommentSlider 컴포넌트 구현 * chore: Layout 상수 객체 이름 LAYOUT 으로 변경 * feat: getLastHash util 함수 구현 * feat: getTabTextColor util 함수 구현 * feat: useBottomSlider 훅 구현 * refactor: PostItem 컴포넌트 수정 - 해당 컴포넌트에서 댓글 입력 값 저장 및 수정을 담당하지 않도록 수정 - 댓글 추가 아이콘 버튼 삭제 - Post, CommentData 타입의 id 속성 타입을 string -> number 로 수정 * feat: 댓글 추가 기능 구현 - Tabs 컴포넌트가 tabIndicatorKind 값에 따라 다른 indicator 를 사용하도록 수정 - useFeed -> useFeedMutation 으로 수정 - HomeFeedPage 상에서 useFeed 를 사용하는 것을 useHomeFeed 를 사용하도록 수정 - COMMENT_INPUT_HEIGHT 레이아웃 상수 추가 - 임시용 UserFeedPage 와 TagFeedPage 업데이트 (여전히 임시용) * fix: CommentSlider 해시 라우팅으로 인해 특정 UserFeedPage 렌더링이 되지 않는 문제 해결 - CommentSlider 를 토글할 때도 history.location 의 state 와 query param 을 그대로 사용하도록 수정 - NavigationHeader 컴포넌트의 height: content-fit 속성 삭제 & 로그아웃 버튼의 padding 값 수정 - HomeFeed -> Feed 로 컴포넌트 이름 수정 * feat: 댓글 저장 시 예외 처리 추가 * [#199, #248, #184] 게시글 삭제 & 게시글 기본 이미지 구현 (#271) * feat: Feed 컴포넌트 명칭을 HomeFeed 로 변경 * feat: 게시글 삭제 기능 구현 & 이미지가 없을 시 기본 이미지 보여주기 구현 - 삭제 버튼을 나타나게 만들기 위한 ButtonDrawer 컴포넌트 구현 * feat: TagInputForm 상에서 Tag 입력 중 모바일 가상 키보드가 레이아웃을 깨뜨리는 문제 해결 - 에러 발생시 tag input 을 blur 처리 * [#243] s3 proxy 관련 테스트 리팩토링 (#244) * chore: s3-proxy properties 포맷을 yaml로 수정 (#243) * chore: 프로덕션 패키지명 컨벤션맞게 수정 (#243) * test: S3Storage 슬라이싱 테스트 추가 (#243) * test: StorageService 슬라이싱 테스트 케이스 추가 (#243) * refactor: StorageController 슬라이싱 테스트 불필요한 given절 삭제 (#243) * refactor: 인수 테스트 불필요한 throws절 삭제 (#243) * refactor: 커스텀 예외 컨벤션에 맞게 에러 코드 추가 (#243) * refactor: 패키지명 변경 및 구글 컨벤션에 맞게 수정 (#243) * refactor: 1장이라도 업로드 실패시 예외 발생하도록 변경 (#243) * [#230] 검색페이지 구현 (#274) * feat: 검색 mock data 추가 * fix: LoginWrapper children 타입 수정 * feat: search context 추가 * feat: SearchHeader에 SearchContext 적용 * feat: SearchPage 및 검색 기능 구현 * fix: 오타수정 * 추가 * refactor: 불필요한 의존성 제거 * refactor: useFollow분리 및 follow mutation 에러처리 수준 변경 * feat: 유저 검색 결과에서 팔로우 기능 구현 * fix: 검색페이지 진입시 이전 검색 기록 초기화 * [#253] Github 통계 조회 기능 구현 (#263) * feat: Github 통계 조회 기능 구현 (#253) * test: 컨트롤러 테스트 작성 (#253) * test: 서비스 테스트 작성 (#253) * test: 통합 테스트 작성 (#253) * test: 인수 테스트 작성 (#253) * test: 단위 테스트 작성 (#253) * style: 개행 추가 (#253) * refactor: 클래스명 변경 (#253) - PlatformExtractor -> PlatformContributionExtractor - PlatformApiRequester -> PlatformContributionApiRequester * refactor: @Profile 추가 (#253) * refactor: 상수 -> @value 변경 (#253) * refactor: 커스텀 예외 추가 (#253) * test: 단위 테스트 추가 (#253) * refactor: Calculator 객체로 비즈니스 로직 분리 (#253) - Service에 있던 비즈니스 로직을 Calculator 객체로 이동 - 단위 테스트 추가 * test: 불필요한 import 삭제 * refactor: 패키지 위치 변경 (#253) - 인터페이스는 domain, 구현체는 infrastructure에 위치 * style: 접근 제어자 삭제 (#253) * refactor: Calculator 인터페이스 메소드 반환 타입 변경 (#253) * refactor: try-catch 문으로 예외 핸들링 (#253) * test: 단위 테스트 수정 (#253) * refactor: Calculator 인터페이스 메소드 반환 타입 변경 (#253) - DTO -> Domain Object * [#277] useFollow 테스트 작성 (#278) * feat: SearchPage 및 검색 기능 구현 * refactor: useFollow분리 및 follow mutation 에러처리 수준 변경 * refactor: acceessToken이 없는 경우에 대한 에러코드 추가 * chore: hook 테스트를 위한 라이브러리 설치 및 설정 * refactor: ErrorCode 타입 추가 * refactor: handleHTTPError 모듈 분리 - handleHTTPError 함수를 utils/error.ts로 이동 - 상수 및 타입 분리 * test: useFollow 테스트 코드 작성 * refactor: 파일이름 변경 - constants/httpError.ts 를 constants/error.ts 로 변경 * refactor: useFollow 에러처리 - accesstoken이 없을 경우에 대한 에러처리 추가 - client error를 처리하기 위한 객체 구현 * [#124, #262, #275, #276] 요청 관련 이슈 해결 (#280) * fix: 프로필 수정 api 형식 변경 - put메서드에서 post메서드로 변경 - 변경된 이미지가 없을경우 빈 파일 객체 전송 - 한 줄 소개가 변경되지 않아도 그대로 보내기 * fix: 검색 api url 변경 * fix: github stats 요소 및 api url 변경 * refactor: 최초 페이지 진입시 토큰이 유효하지 않으면 로그아웃 * fix: 내 게시물의 프로필 영역을 클릭하면 내 프로필 페이지로 이동하도록 수정 * refactor: 유저프로필, 내프로필 분기를 ProfilePage에게 위임 * feat: 최초 진입 이펙트 app으로 분리 * [#257] 게시물 좋아요 기능 구현 (#264) * feat: 게시물 좋아요 기능 구현 (#257) * feat: 게시물 좋아요 및 좋아요 취소 기능 테스트 구현 (#257) * refactor : 피드백 반영 (#257) * [#236] 로깅 기능 세팅 (#237) * chore: 활성 프로필에 따른 logback 환경 설정 (#236) * feat: 전역 예외 어드바이저에 로거 추가 및 DB / 런타임 예외 바인딩 (#236) * chore: s3proxy directory logback 설정 추가 (#236) * feat: s3proxy 예외 어드바이저 추가 (#236) * refactor: applicationException 핸들러 어드바이저 메서드명 수정 (#236) * refactor: 백엔드 프로젝트 로깅 전략 수정 (#236) - 테스트 로깅 전략 콘솔로 수정 - DB 관련 로거 종류 프로필별 재정의 - 부모 로거가 찍히지 않도록 additivity false 추가 - 글로벌 예외 어드바이저에 로깅 양식 정의 * chore: logback-access 설정 추가 및 프로필별 설정 구성 (#236) * chore: s3proxy 프로젝트 logback-access 설정 추가 (#236) * refactor: s3proxy, backend 프로젝트 log 포맷 변경 (#236) * chore: backend logger DB, Access 등 용도별 분리 (#236) * chore: s3proxy logger DB, Access 등 용도별 분리 (#236) * [#254] 유저 검색 기능을 구현 (#266) * feat: User 검색 기능 구현 * refactor: 피드백 반영 리팩토링 * refactor: 프론트측과 협의한 부분 리팩토링 * fix: 검색 요청시 user와 tag 분리 (#283) * [#267] 프로필 수정 기능을 구현 (#279) * feat: 유저 프로필 수정 기능 구현 * refactor: 피드백 적용 * refactor: 피드백 리팩토링 * [#269] 게시물 수정 및 삭제 기능 구현 (#272) * feat: 게시물 수정 및 삭제 기능 구현 (#269) * fix: 게시물 수정 기능 버그 해결 (#269) * test: 게시물 수정 기능 통합 테스트 작성 (#269) * fix: 게시물 삭제 기능 버그 해결 (#269) * test: 게시물 삭제 기능 통합 테스트 작성 (#269) * test: 게시물 수정 기능 서비스 테스트 작성 (#269) * test: 게시물 삭제 기능 서비스 테스트 작성 (#269) * test: 게시물 수정 기능 컨트롤러 테스트 작성 (#269) * test: 게시물 삭제 기능 컨트롤러 테스트 작성 (#269) * test: 게시물 수정 기능 인수 테스트 작성 (#269) * test: 게시물 삭제 기능 인수 테스트 작성 (#269) * refactor: 정적 팩토리 메소드 삭제 (#269) * test: 불필요한 테스트 삭제 (#269) * refactor: Command, Query 분리 (CQS) (#269) * test: verify() 값 지정 (#269) * refactor: 상태별로 update() 분리 (#269) * fix: 해당하는 사용자의 게시물인지 확인하는 로직 추가 (#269) * [#284] 게시물 수정 및 삭제 버그 해결 (#285) * test: 통합 테스트 버그 해결 (#284) * test: 불필요한 테스트 삭제 (#284) * fix: Github 통계 조회 버그 해결 (#287) (#288) * refactor: like 관련 DTO 필드명 번경 (#289) (#291) * fix: restDocs 필드명 수정 및 Boolean으로 변경 (#292) (#297) * [#228] 게시글 수정 기능 구현 (#286) * feat: Feed 컴포넌트 명칭을 HomeFeed 로 변경 * refactor: 게시글 추가 과정에서 필요한 데이터를 일반 컴포넌트에서 불러오지 않고 Page 컴포넌트에서 내려주도록 수정 * feat: 게시글 추가 기능 구현 - 컨벤션에 맞게 useGithubTagsQuery 메서드 수정 - EditPostPage 페이지 컴포넌트 구현 - PostEditDataContext, PostEditStepContext 추가 - usePostEdit, usePostStep 훅 추가 * [#258] 유저 프로덕션 코드 및 테스트 리팩토링 (#268) * refactor: User 도메인 부족한 팔로우, 언팔로우 등 테스트 추가 (#258) * refactor: User equals & hashCode 정의시 getter 사용 (#258) * refactor: Follow 도메인 equals & hashCode 정의시 getter 사용 (#258) * refactor: Following, Follwers 메서드명 및 선언 순서 변경 (#258) * refactor: Followings, Followers 테스트 추가 및 생성자 추가 (#258) * refactor: User.profile 관련 도메인 코드 포맷팅 및 setter 삭제 (#258) * refacotr: User 내부 Posts에 생성자 변경 및 UserRepository 영속성 테스트 추가 (#258) * refactor: User 응용 계층 메서드 추출 리팩토링 및 DTO getter 추가 (#258) * refactor: AppUser의 UserService 침투 제거 및 테스트 코드 계층 분리 (#258) - AppUser가 서비스 코드에 침투하는 것을 막기 위해 AppUser 추상 클래스에 별도의 이름 호출 메서드를 추가함 * refactor: UserService 통합 테스트 계층적으로 리팩토링 (#258) * refactor: AuthUserRequest 안쓰는 DTO 및 생성자 삭제와 메서드 파라미터명 통일 (#258) * refactor: User 테스트 메서드 nested 적용 (#258) * refactor: User 불필요한 임베디드 타입 getter 삭제 및 테스트 리팩토링 (#258) * refactor: User 엔티티 내부 임베디드 타입 클래스의 기본 생성자를 protected로 변경 (#258) * refactor: UserRepository 테스트 nested 적용 (#258) * refactor: UserService 슬라이싱 테스트 verify 구체화 및 메서드 분리 (#258) * refactor: UserService 통합 테스트 반복되는 given 부분 메서드 추출 (#258) * refactor: UserController 슬라이싱 테스트 로그인여부 분리 및 DTO Getter 추가 (#258) * refactor: User 인수 테스트 반복되는 api 호출 메서드 통일 (#258) * refactor: 병합 충돌 해결 (#258) * refactor: UserDataJpaTest Nested C-D-I 명세 변경 (#258) * refactor: 유저 컨트롤러 슬라이싱 테스트 verify 추가 및 테스트 오류 수정 (#258) - 기존 unfollow 테스트가 잘못 진행되고 있었던 부분을 해결 * chore: UserService 헬퍼 메서드 위치 수정 (#258) * refactor: UserController 응답 생성 헬퍼 메서드 위치 이동 (#258) * refactor: Follow, Unfollow시 두 유저 동등성 비교 로직 Follow 클래스로 이동 (#258) * refactor: User의 팔로우, 언팔로우 조건 검사 로직을 Followers, Followings로 이동 (#258) * chore: User.addComment 테스트 삭제 (#258) * refactor: AuthUserRequestDto의 AppUser에 대한 정적 팩토리 메서드 추가 (#258) * refactor: User 컨트롤러 테스트 anyString given/verify 인자 변경 (#258) * fix: 프로덕션 및 테스트 코드 순서 변경 및 SpringBoot 통합테스트로 인한 Nested 제거 (#258) * refactor: 병합 충돌 해결 및 AppUser를 서비스에서 사용못하도록 변경 (#258) * chore: 프로덕션 코드 순서 정렬 및 DTO 필드명 변경 (#258) * chore: User 관련 테스트 코드 순서 정렬 및 포맷팅 (#258) * [#293] Logback 인식 불가 버그 해결 (#299) * fix: logback appender 경로 수정 (#293) * chore: rest docs 문서 변경 * [#273, #301] profile page 에러처리 수준 수정 및 기타 버그 해결 (#302) * refactor: 프로필 수정 페이지 서비스로직 분리 및 에러처리 수준 수정 * refactor: 중복되는 validation 제거 * refactor: 불필요한 의존성 제거 * feat: 유저 검색 결과에 유저 프로필 페이지 링크 추가 * fix: 프로필 수정 후 반영이 안되는 이슈 해결 * refactor: api url 변경 * fix: 로그인으로 게시글 조회시 게스트로 인식하던 문제 해결 (#298) * [#295] 게시물 수정 및 삭제 DB 버그 해결 (#300) * refactor: findPostByUser -> findPostByIdAndUser 변경 (#295) * test: Data JPA 테스트 추가 (#295) * refactor: 생성자 수정 (#295) * test: 예외 발생 -> Optional.empty() 검증 변경 (#295) * refactor: 불필요한 코드 삭제 (#295) * refactor: 해당하는 사용자의 게시물이 맞는지 확인하는 과정 수정 (#295) - DB에서 처리 -> 비즈니스 로직에서 처리로 변경 * refactor: 불필요한 코드 삭제 (#295) * test: 불필요한 import 삭제 (#295) * [#290] 중간 데모 버그를 해결 (#303) * feat: Feed 컴포넌트 명칭을 HomeFeed 로 변경 * fix: 중간 데모 버그 해결 - 게시글 데이터 속성 중 isLiked -> liked 로 변경 - 로그인 했을 때만 좋아요 버튼이 나타나도록 수정 - 로그인 했을 때만 댓글 달기 버튼이 나타나도록 수정 - 좋아요, 좋아요 취소 상태 반영 로그인 버튼 padding 수정 - 댓글을 추가했을 때 바로 추가된 댓글을 화면에서 확인할 수 있게 수정 - 댓글이 게시글 조회시에는 최대 10개만 나올 수 있도록 수정 - 기존의 댓글 달기 input 을 댓글 슬라이더 토글 버튼으로 변환 * fix: api url 수정 (#305) * fix: Post - Comments 영속성 전이 버그 해결 (#306) (#307) * [#308] 게시물 수정 버그 해결 (#309) * fix: orphanremoval = true 옵션 추가 (#308) * test: 통합 테스트 추가 (#308) * [#310] 팀데모 결과 반영 - 프로필 페이지 (#311) * fix: api url 오타 수정 * fix: 누락된 key prop 추가 * fix: 깃헙통계 기능 임시 api로 수정 * 프로필 페이지 하단 레이아웃 버그 수정 * [#312] 두번째 팀 데모에서 발견된 버그 해결 (#313) * feat: Feed 컴포넌트 명칭을 HomeFeed 로 변경 * fix: 두번째 팀 데모에서 발견된 버그 해결 - 댓글 추가 시 최근 댓글로 스크롤이 되지 않는 문제 해결 - 게시글 추가, 삭제 시 스낵바를 통해 피드백 - 게시글 좋아요 & 좋아요 취소 결과가 화면에 나타나지 않는 문제 해결 - 게시글 tags 정보 파싱 문제 해결 (보낼 땐 , 기반 join 문자열로, 받을 때는 일반 문자열 배열로) * fix: 모바일 상의 레이아웃 및 그래픽 문제 해결 - 모바일 상에서 버튼이나 링크 클릭시 나타나는 기본 하이라이트 컬러 제거 - 댓글 input 패딩 조정 - 프로필 잔디 배경 투명 -> 흰색으로 변경 - kind 가 pills 인 Tabs 컴포넌트의 hover 이펙트 제거(모바일 상에서 클릭된 글씨가 희미해지는 문제 해결) * [#314] 세번째 팀 데모에서 발견된 버그 해결 (#315) * feat: Feed 컴포넌트 명칭을 HomeFeed 로 변경 * fix: 2차 데모 세번째 버그 수정 - 댓글 프로필 이미지, 유저 이름이 고정되어 있는 문제 해결 - 게시글 추가 시 레포지터리 목록을 불러오기 위한 계정이 하나로 고정되어 있는 문제 해결 - 임시 레포목록 검색 기능 추가 * [#316] 3차데모 검색 페이지 및 UI 관련 이슈 해결 (#317) * fix: 검색 결과 리스트에서 팔로우시 깜박거리는 버그 해결 * feat: 게시물 삭제시 컨펌 추가 * fix: 이미지 및 텍스트 인디케이터 사이즈 고정 * feat: 간략히 버튼 추가 * [#318] 네번째 팀 데모에서 발견된 버그 해결 (#319) * feat: Feed 컴포넌트 명칭을 HomeFeed 로 변경 * fix: 네번째 팀 데모에서 발견된 버그 해결 - 댓글 슬라이더 가로 스크롤링 되는 문제 해결 - 이미지들 총 용량 제한 1MB 로 수정 - 게시글 내용의 개행이 실제로 반영되도록 수정 - 게시글 추가 중 태그 입력 후 tagInputLength 가 0 으로 초기화 되도록 수정 * [#320] 게시물 추가 시 이미지가 없으면 alert처리 (#321) * fix: 게시물 추가 시 이미지가 없으면 alert 처리 * refactor: 더보기, 간략히 정책 변경 * [#322] 게시글 수정 시 추가 되었다는 메세지가 아닌 수정 되었다는 메세지가 뜨도록 변경 (#323) * feat: Feed 컴포넌트 명칭을 HomeFeed 로 변경 * fix: 게시글 수정 시 추가 되었다는 메세지가 아닌 수정 되었다는 메세지가 뜨도록 변경 * [#324] 다른 이용자의 UserFeed 좋아요가 동작하지 않는 문제를 해결 (#325) * feat: Feed 컴포넌트 명칭을 HomeFeed 로 변경 * fix: 다른 이용자의 UserFeed 좋아요가 동작하지 않는 문제 해결 - currentUsername(접속한 이용자) -> username(이용자 피드 페이지의 대상 이용자) 으로 대상 변경 * [#259] 포스트 프로덕션 코드 리팩토링 (#270) * refactor: Post 프로덕션 코드 리팩토링 (#252) * refactor: infrastructure 유닛테스트, comment 유닛테스트 리팩토링 * test: Post 관련 유닛테스트 리팩토링 * test: Post application 레이어 관련 테스트 리팩토링 * test: Post 인수 테스트 리팩토링 * test: PostControllerTest 리팩토링 추가 * test: post builder를 사용하도록 변경 * refactor: 리베이스 후 깨지는 테스트 수정 및 누락된 테스트 추가 refactor: Post의 Tag관련 비즈니스 로직 PostTags로 이동 (#259) 이동과 함께 Post의 Build 패턴 적용과 리팩토링. refactor: PostService와 PostController의 책임 분리. 및 s3Storage 파일 저장 방식 추가 (#259) feed관련과, 게시물 관련으로 분리하여 관심사를 맞춤. refactor: 전체적인 import 정리 (#259) refactor: 패키지 정리 (#259) refactor: Post의 getImageUrl 중복 메서드 제거 (#259) refactor: CommentResponse의 도메인 참조 제거 및 DtoAssembler 리팩토링 (#259) refactor: Feed관련 컨트롤러, 서비스, PostDto어셈블러 리팩토링, 레이어에 맞지 않는 DTO 이동 (#259) refactor: CommentRequestDto 패키지 변경 및 PostController 리팩토링 (#259) refactor: PostResponseDto가 presentation~presentation까지 사용되던것을 분리 (#259) refactor: showRepositories -> userRepositories 메서드명 변경 (#259) refactor: RepositoryResponse, domain -> controller까지 사용 되던것을 분리 (#259) style: domain을 제외한 레이어의 구글 컨벤션 체크 (#259) refactor: PostImageUrlResponseDto Builder 사용하도록 변경 refactor: Post 컨벤션 및 메서드 순서 정리 (#259) refactor: Post user 관련 메서드명 author로 변경 및 필드, 메서드 정리 (#249) refactor: PostTag equals getId()로 변경 및 필드 순서 정리 (#249) refactor: Like를 VO로 취급, Likes를 컨테이너로 취급하도록 변경 (#249) refactor: Image VO로 취급 및 도움 메서드 네이밍 변경, PostContent validation로직 변경 (#249) refactor: CommentContent VO 취급, comment 도움메서드 이름 변경 및 책임 변경 (#249) refactor: Post equals getter를 사용하도록 변경 (#249) refactor: 연관관계 도움 메서드 반환깂 없도록 변경 (#249) style: 구글 컨벤션 적용 (#249) refactor: 추상화 수준 평탄화 작업 (#249) * refactor: 리베이스 후 깨지는 파일 수정 * fix: User 비교 로직 버그 해결 * refactor: 메서드의 네이밍 변경 * refactor: 디미터의 원칙 준수 * refactor: 사용하지 않는 메서드 제거 * refactor: 깨지는 테스트 수정 * refactor: 타입 추론 변수를 타입형으로 변경 * refactor: 의미가 없는 변수명 제거 like -> 메서드참조 * style: 팀 컨벤션 적용 Co-authored-by: Tanney102 <[email protected]> Co-authored-by: SONG WON LEE <[email protected]> Co-authored-by: SONG WON LEE <[email protected]> Co-authored-by: LEESONGWON <[email protected]> Co-authored-by: Minsung Son <[email protected]> Co-authored-by: Jinhong <[email protected]> Co-authored-by: binghe819 <[email protected]> Co-authored-by: Tanney102 <[email protected]> Co-authored-by: YunTroubleshooter <[email protected]>
- Loading branch information