Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* [FEAT] 백엔드 프로젝트 설정 (#3) * feat: backend initial setup * refactor: .gitignore 수정 * refactor: .env 적용 방법 이미지 수정 * Update README.md * Update .env.sample * feat : backend pr 빌드봇 추가 (#6) * feat: swagger 설정 추가 (#13) * feat : springdoc swagger 의존성 추가 * feat : swagger config 추가 * feat: ERD 기반 Entity 정의 (#15) * feat: RSS 기능 구현 (#22) * feat: Entity 재정의 (#26) * feat: 기획 변경에 따른 Entity 재정의 * refactor: 서비스 이름 변경에 따라 linkpick으로 수정 * refactor: 리뷰 반영, 불필요한 클래스, 오타 수정, url BLOB 타입으로 지정 * refactor: linkpick -> techpick 변경 * feat: 엔티티 최종 수정 (#34) * :recycle: refactor: 멀티 모듈을 고려한 디레토리 구조 정리 * :recycle: refactor: 불필요한 디렉토리 제거 * :recycle: refactor: Admin 제거 (User로 통합) * :recycle: refactor: dummy readme 이동 * :recycle: refactor: 최종 Entity 수정 * :recycle: refactor: 최종 Entity 수정 * :recycle: refactor: url을 Blob에서 varchar로 변경 * feat: 디렉토리 구조 및 공통 예외처리 설정 (#43) * :recycle: refactor: 디렉토리 구조 변경 * :recycle: refactor: 디렉토리 구조 추가 및 예시용 코드 작성 * :sparkles: ApiException * :recycle: refactor: Class 이름 변경 * :recycle: 예외 코드를 같이 표시 합니다 * :recycle: 예외 코드를 같이 표시 합니다 * :recycle: 스웨거 interface 분리 * feat: 소셜로그인 구현 (#44) * feat : security 관련 의존성 추가 * feat : Jwt token provider 구현 * feat : jwt 설정 추가 및 oauth 설정 분리 * feat : jwt 관련 의존성 추가 * feat : cookie 관련 유틸 추가 * feat : jwt 관련 유틸 추가 * feat : thymeleaf 의존성 추가 * feat : oauth2 인증을 위한 메소드 추가 * feat : providerId 필드 추가 * feat : Jwt에 role도 포함되도록 수정 * feat : oauth2 config 설정 yaml * feat : oauth2 구현 * feat : oauth 로그인 유저 생성을 위한 user 엔티티 수정 * fix : 토큰 유효성 검증 메소드명 수정 : validateToken->isValidToken * fix : 쿠키 검색 메소드 분리 * fix : 불필요한 주석 삭제 * fix : var -> Object 로 명시적으로 보이게 수정 * fix : 개행 추가 * fix : var -> Object 로 명시적으로 보이게 수정 * fix : User 엔티티 패키지 수정 * fix : 패키지 구조 변경 적용 * fix : User static factory method 파라미터 수정 * feat : OAuth2 exception 및 errorcode 추가 * refactor: 에러 코드 기능별 분리 (#49) * :art: ApiErrorCode 각 기능 별로 분리 * :art: ApiOAuth2ErrorCode 추가 * :recycle: chore: 단순 주석 통일 및 개행 제거 * :recycle: chore: 접근 지정자 제한 * :recycle: feat: 핸들러 함수 위임 * :recycle: chore: env 샘플 업데이트 * :recycle: chore: exception abstract 제거, 주석 추가 * :recycle: chore: exception abstract 제거, 주석 추가 * :bug: fix: servletRequest / Response 받지 않는 것으로 변경 (수형님 리뷰) * feat: 테스트 api 서버 배포 (#64) * Back/feat/#54 (#55) * :rocket: feat: 배포용 action 설정 * :rocket: feat: 배포용 action 설정 * :rocket: feat: 배포용 compose 설정 * :rocket: feat: 배포용 action 설정 * :rocket: feat: 배포용 action 설정 * deploy: api 서버 배포 테스트 (#56) * :rocket: feat: 배포용 action 설정 * :rocket: feat: 배포용 action 설정 * :rocket: feat: 배포용 compose 설정 * :rocket: feat: 배포용 action 설정 * :rocket: feat: 배포용 action 설정 * :rocket: feat: 배포용 action 설정 * deploy: api 서버 배포 테스트 (#57) * :rocket: feat: 배포용 action 설정 * :rocket: feat: 배포용 action 설정 * :rocket: feat: 배포용 compose 설정 * :rocket: feat: 배포용 action 설정 * :rocket: feat: 배포용 action 설정 * :rocket: feat: 배포용 action 설정 * :rocket: feat: 배포용 action 설정 * :rocket: feat: 배포용 action 설정 * deploy: api 서버 배포 테스트 (#58) * :rocket: feat: 배포용 action 설정 * :rocket: feat: 배포용 action 설정 * :rocket: feat: 배포용 compose 설정 * :rocket: feat: 배포용 action 설정 * :rocket: feat: 배포용 action 설정 * :rocket: feat: 배포용 action 설정 * :rocket: feat: 배포용 action 설정 * :rocket: feat: 배포용 action 설정 * :rocket: feat: 배포용 action 설정 * :rocket: feat: 배포용 action 설정 (#60) * deploy test (#61) * :rocket: feat: 배포용 action 설정 * :rocket: feat: 배포용 action 설정 * Update test-server-deploy.yml * Update test-server-deploy.yml * Update test-server-deploy.yml * Update test-server-deploy.yml * Update test-server-deploy.yml * :rocket: feat: 배포용 action 설정 * :rocket: feat: 배포용 action 설정 * :rocket: feat: docker compose 내용 변경 * :rocket: feat: github action 환경 변수 분리 * :rocket: feat: github action 환경 변수 분리 * :rocket: feat: github action 환경 변수 분리 * :rocket: feat: github action 환경 변수 분리 * :rocket: feat: github action 환경 변수 분리 * :rocket: feat: github action 환경 변수 분리 * feat: RSS 기능 구현 (#46) * feature: RSS 기능 구현, csv 파일로 초기 데이터 설정, RssRawData column 제약 조건 제거 * refactor: package 구조 변경으로 인해 import 수정 * refactor: 리뷰에 따라 코드 리팩토링 * Update test-server-deploy.yml * �[feat] Link CRUD 구현 (#63) * feat : (임시) favicon 추가 * feat : swagger 경로 설정 추가 * feat : Link exception, error code 추가 * fix : logging 항목 변경 * fix : swagger url 추가 * feat: Link를 가지고있는 pick 확인 메소드 구현 * feat: Link 엔티티 수정 및 정적 메소드 추가 * feat: Link dto 구현 * feat: Link CRUD 구현 * feat: Link swagger 인터페이스 추가 * fix: LinkService 메소드명 명확하게 수정 * fix: LinkService 메소드명 명확하게 수정 * fix: LinkController 리팩토링 * feat: LinkMapper 추가 * refactor: Transactional 어노테이션 추가 * fix: Path 수정 * refactor: LinkProvider 추가 * refactor: PickTag 엔티티 필드 변경 user->pick (#73) * [feat] 태그 API 구현 (#71) * refactor: 불필요한 클래스 삭제 * refactor: 불필요한 클래스 삭제 * feat: Tag 예외처리 및 에러코드 구현 * refactor: order필드 및 생성 및 삭제를 위한 정적 메소드 추가 * feat: 태그 crud 구현 * feat: 태그 컨트롤러 및 swagger 명세 구현 * feat: (임시) 태그 삭제시 검증을 위한 PickTagRepository 구현 * fix: createTag 메소드에 ApiUserException 추가 * refactor: tag 삭제방식 변경 * refactor: validate 로직 분리 - TagValidator 추가 * refactor: TagRepository 사용하지 않는 메소드 삭제 * refactor: mapper, provider 패키지 구조 변경 * feat: order 중복 에러 추가 및 pick 존재 에러 삭제 * feat: 사용자가 등록한 태그를 map 타입으로 제공하는 메소드 추가 * feat: 중복 order 검증 로직 추가 * refactor: Tag update 로직 수정 - 중복 order 검증, 사용자 태그 검증 로직 변경 * refactor: delete 로직에서 메소드명 typo 수정 및 주석 추가 * refactor: typo 수정 * refactor: tag order 가 음수일때 검증 로직 추가 * refactor: tag order 가 0부터 시작하도록 수정 * refactor: orElse -> orElseGet 으로 리팩토링 * refactor: format refactoring * refactor: tag update시 검증 로직 변경 * refactor: snake case -> camel case로 리팩토링 * refactor: Tag 엔티티 order 필드명 수정 -> order -> tagOrder * refactor: userTagList 제공 메소드 정렬기준에 따라 분리 - OrderByTagOrder, OrderByTagId * refactor: userTagList 제공 메소드 정렬기준에 따라 분리 - OrderByTagOrder, OrderByTagId * refactor: updateTag 로직 수정 validator에서 update할 tag의 index를 가져옴 * refactor: 불필요한 메소드 삭제 * refactor: TagUpdater 클래스 추가 * refactor: TagUpdater 클래스를 사용해 updateTag 로직 구현 * refactor: format 수정 * refactor: 미사용 메소드 삭제 * refactor: validator 삭제 및 관련 로직 service로 이관 * refactor: 다음 tagOrder 가져오는 메소드 명 명확하게 수정 * [test] 테스트용 mysql 분리 (#79) * test: test용 mysql 분리 * refactor: 테스트용 db가 분리됨에 따라 패키지 구조 변경 * refactor: 테스트용 db가 분리됨에 따라 패키지 구조 변경 * refactor: 개발 db와 테스트 db의 mysql관련 파일 패키지 분리 * Refactor: Security, Exception, Package 리팩토링 (#82) * [refactor] 태그 수정 검증로직 추가 및 태그 순서 필드명 수정 (#89) * refactor: 중복 이름 검증 로직 추가 및 순서,이름 로직를 하나로 묶음 * refactor: 태그 순서 필드명 수정 order -> tagOrder * refactor: 태그 순서 필드명 수정 order -> tagOrder * refactor: 태그 수정시 결과 리스트 tagOrder로 오름차순 정렬하여 반환 * [test] 테스트 Fixture 구현 (#86) * refactor: 테스트를 위한 lombok 의존성 추가 * refactor: env 파일 적용 * test: 테스트를 위한 fixture 객체 구현 * refactor: lombok 의존성 변경 * Feat: 테스트 서버 API 설정 (#91) * :recycle: refactor: Exception core 패키지를 각 기능별 패키지로 이동 * :recycle: refactor: 시큐리티 - ACCESS_TOKEN_KEY 직접 비교로 수정 * :recycle: refactor: Exception - OAuth 예외도 auth 패키지 안으로 이동 * :sparkles: feat: API 에러 레벨 구현 * :sparkles: feat: 에러 코드에 에러 레벨 적용 * :sparkles: feat: 에러 레벨 별 다른 작동 구현 * :recycle: refactor: dto를 service 패지키로 이동 * :recycle: refactor: api 테스트 서버 설정 * :recycle: refactor: api 테스트 서버 설정 * :recycle: refactor: api 테스트 서버 설정 * :recycle: refactor: api 테스트 서버 설정 * :recycle: refactor: 배포 스크립트에 환경 변수 추가 * Refactor: RSS Exception 처리 (#81) * feat: Rss 에러 코드, Exception 구현 * refactor: dto 경로 변경에 따라 import 수정, 주석 제거 * feat: rss exception 처리 및 provider로 분리 * refactor: retry 로직 추가, 예외 처리 수정 * refactor: 충돌 해결 및 에러 레벨 추가 * refactor: RssRawData에 RssBlogId 추가, 도커 경로 변경으로 인해 csv 파일 추가 * refactor: oauth uri 변경 (#94) * fix: /api/login uri 접근 허용 (#97) * fix: /api/login uri 접근 허용 (#99) * refactor: cors 설정 추가 (#102) * feat: mysql에서 rss blog url sql 파일 import (#100) * feat: rss blog url setting 방법 추가, blog url unique 추가, csv 파일에 중복 제거 * feat: sql 파일 도커 경로로 추가 * refactor: 미사용 설정 / 파일 제거 (#105) * refactor: 스케줄러 설정 추가 (#110) * [feat] Folder 기본 설계 (#111) * feat: folder entity 구현 * feat: folder 예외, 에러코드 구현 * feat: User 추가 * feat: FolderType 필드 접근제어자 추가 * [feat] FolderStructure 설계 (#113) * feat: FolderStructure Entity 구현 * feat: FolderStructure Repository, Provider 구현 * Feat: Parser Dto 및 구조 작성 (#118) * :construction: Parser Dto 및 구조 작성 * :recycle: refactor: FolderAction 제거 * :recycle: refactor: 함수 이름 수정 * :recycle: refactor: 공백 제거 * :recycle: refactor: 미사용 파일 제거 * [feat] Folder Service 구현 (#121) * fix: 생성자와 정적메소드에 User 파라미터 추가 * feat: Folder update 메소드 추가 * feat: Folder dto 구현 * feat: Folder Mapper 구현 * feat: Folder Provider Repository 구현 * feat: Folder Service 구현 * feat: 부모 폴더 업데이트 메소드 구현 * feat: 사용자의 미분류폴더, 휴지통 조회하는 메소드 구현 * feat: 특정폴더를 본인의 미분류폴더, 휴지통으로 이동시키는 메소드 구현 * refactor: 검증로직에 assertion 추가 * refactor: 검증로직 기존코드로 롤백 * feat: Pick DTO 설계 (#124) * feat: pick error code, exception 구현 * refactor: link entity에 imageUrl 추가 * refactor: link mapper에 imageUrl 추가 * refactor: link dto에 imageUrl 추가 * refactor: 패키지 구조 변경에 따라 import 수정, linkFixture imageUrl 추가 * refactor: pick에 folder 연관 관계 추가 * feat: pick, pickTag dto 구현 * refactor: pick dto 필드명 수정 * refactor: pick entity folder 변수명 변경 * [FEAT] 프론트 로그인 로컬 테스트를 위한 redirect url 설정 (#129) * feat: 인증 성공 후 redirect url 추가 * feat: 인증 성공 후 redirect url 추가 * [�REFACTOR] 기본 폴더 CRUD 관련 리팩토링 (#127) * refactor: 필드명 수정 parent -> parentFolder로 수정 * refactor: 필드명 수정 parent -> parentFolder로 수정 * refactor: 필드명 수정 parent -> parentFolder로 수정 * refactor: 기본폴더 조회 메소드 수정 * feat: 회원가입시 기본폴더 생성 로직 구현 * feat: 기본폴더 수정 및 삭제 방지 로직 구현 * feat: 기본폴더 변경 불가 에러코드 설명 구체적으로 수정 * refactor: 필드명 수정 parent -> parentFolder로 수정 * refactor: 필드명 수정 parent -> parentFolder로 수정 * refactor: 필드명 수정 parent -> parentFolder로 수정 * refactor: EnumSet을 이용해 BasicFolderType을 검증하도록 수정 * refactor: 프론트 로컬 테스트를 위한 설정 (#135) * [REFACTOR] 프론트 로컬 테스트를 위한 설정 (#137) * refactor: 프론트 로컬 테스트를 위한 설정 * refactor: 프론트 로컬 테스트를 위한 설정 * fix: @NotNull 어노테이션 제거 (#132) * [FEAT] 기본 폴더로 root 폴더 추가 (#140) * feat: 기본 폴더로 root 폴더 추가 * feat: 회원가입시 root 폴더 생성 * [feat] 클라이언트 폴더 구조 JSON 파싱 (#147) * :construction: Parser Dto 및 구조 작성 * :recycle: refactor: FolderAction 제거 * :recycle: refactor: 함수 이름 수정 * :recycle: refactor: 공백 제거 * :recycle: refactor: 미사용 파일 제거 * :sparkles: 파서 에러 코드 추가 * :sparkles: 파서 인터페이스 변경 * :sparkles: 파서 테스트 코드 * :sparkles: feat: 파서 구현 * :recycle: refactor: 구현체 코드 정리 * :recycle: refactor: 구현체 코드 정리 * :recycle: refactor: enum 변환에 custom exception 추가 * :recycle: refactor: 코드 리뷰 반영 * :recycle: refactor: 미사용 파일 제 * :recycle: refactor: 리팩토링 주석 추가 * :recycle: refactor: 테스트 케이스 최종 수정 * :recycle: refactor: Jackson으로 구조 리팩토링. * :recycle: refactor: 디렉토리 이동 * :recycle: refactor: 테스트 케이스 작성 모두 완료 * :recycle: refactor: 함수명 수정 * :recycle: refactor: 함수명 수정 * :recycle: refactor: 주석 추가 * :recycle: refactor: 리팩토링 제안 주석 제거 (이슈로 등록) * :recycle: refactor: 코드 리뷰 반영 * :recycle: refactor: 코드 리뷰 반영 * [FEAT] FolderService 추가 비즈니스 로직 구현 및 리팩토링 (#143) * feat: root 폴더 조회 로직 구현 * refactor: 업데이트 메소드 분리 (이름/부모폴더) * refactor: 업데이트 메소드 분리 (이름/부모폴더) * refactor: 업데이트 메소드 분리 (이름/부모폴더) & 삭제시 휴지통으로 이동되도록 수정 * refactor: 부모 폴더가 삭제되면 자식 폴더/픽도 삭제되도록 @OnDelete 추가 * feat: 휴지통에 있지 않은 폴더를 삭제하려 할 때, 발생하는 오류 추가 * feat: 현재 폴더가 어떤 기본폴더에 속해있는지 반환하는 메소드 추가 * feat: 휴지통에 있는 폴더 영구 삭제하는 기능 추가 * refactor: 폴더 이름 변경시에도 구조json 검증 * refactor: 재귀 로직 수정 --------- Co-authored-by: Minky <[email protected]> * feat: 로그인 확인용 쿠키(techPickLogin) 구현 (#155) * [HOTFIX] 로그인 쿠키 버그 수정 (#156) * feat: 로그인 확인용 쿠키(techPickLogin) 구현 * fix: 로그인 확인용 쿠키(techPickLogin)가 access_token을 덮어씌우는 버그 수정 * [FEAT] 직렬화 비직렬화 및 데이터 세팅 과정 구현 (#151) * :recycle: refactor: 테스트 케이스 업데이트 * :recycle: refactor: 미사용 파일 삭제 * :recycle: refactor: 테스트 케이스 업데이트 * :recycle: refactor: 디렉토리를 스트럭쳐로 이름 변경 * :sparkles: feat: 클라이언트용 구조 노드 DTO * :sparkles: feat: 서버용 구조 노드 DTO * :sparkles: feat: 파일 위치 이동 * :sparkles: feat: 파일 위치 이동 * :sparkles: feat: 클라이언트 전송을 위한 name 데이터 설정 - provider * :sparkles: feat: 최종 Structure 완료 * :sparkles: feat: 최종 Structure 완료 * :sparkles: feat: 코드 리뷰 바탕으로 한번에 로드하는 메소드 추가 * [FEAT] Folder Api 구현 및 FolderService 리팩토링 (#161) * refactor: 접근권한이 없는 폴더 에러코드 HttpStatus 403으로 변경 * feat: dto 세분화 * refactor: validator 분리 * feat: Structure api에서 사용할 FolderStructureService 분리 * feat: Folder Api 구현 * refactor: FolderStructureService 반환형식 수정 * refactor: updateFolderName 메소드 응답 누락 해결 * refactor: @PathVariable 어노테이션 추가 * refactor: 잘못된 검증 로직 수정 * [FEAT] Structure와 연관된 Pick Service 구현 (#163) * feat: pick dto 세분화 * refactor: pick update, delete 추가 * feat: Structure 관련된 pick 구현 * feat: pick service 틀 잡기 * refactor: 변수명 수정, 잘못 사용한 메서드 변경 * [FEAT] Structure API 구현 및 Folder Create 로직 수정 (#164) * refactor: 누락된 검증 로직 추가 * refactor: 폴더 생성 로직 변경 parentId는 별도 주입 * refactor: Folder Dto 수정 * refactor: Folder Create 로직 변경 (create->move 한세트로) * refactor: 불필요한 필드 삭제 * refactor: Structure Json 엔티티 이름 명확하게 변경 * refactor: StructureJson Repository Structure 패키지로 이동 * refactor: Structure API 구현 * refactor: StructureJson 이름 변경 * refactor: FolderCreate 로직 분리 * refactor: PickDeleteDto 분리 * feat: Structure Dto 및 Mapper 구현 * feat: Structure Service 구현 * refactor: Mapper 에 UserRepository 의존성이 추가되면서 임시로 수정 * refactor: ApiDirectory->ApiStructure로 이름 변경 * feat: 회원가입시 자동으로 root,recycle_bin이 빈 폴더구조json 생성 * refactor: model 패키지 이동 * refactor: model 패키지 이동 * refactor: create folder시 무조건 parentId가 null이므로 그에대한 로직 추가 * refactor: model 패키지 이동 * refactor: @RequestBody 추가 * refactor: Structure를 필드로 직접 가지도록 수정 * refactor: 포맷수정 * feat: StructureJsonProvider 구현 * refactor: 불필요한 클래스 삭제 * refactor: StructureJson 업데이트 로직 Provider로 이관 * refactor: Folder 생성자 수정 * refactor: Structure ErrorCode 코드명/주석 수정 * refactor: var 제거 * refactor: 부모폴더가 없을 시 parentFolderId = -1로 응답하도록 수정 * hotfix: getParentFolderId -> findParentFolderId JPA 오류 수정 * refactor: access_token 사용하도록 설정 (#175) * [FEAT] Structure Validator 구현 (#178) * refactor: 불필요한 메소드 삭제 및 Folder 조회 조건 변경(ParentFolder Not Null) * refactor: 불필요한 메소드 삭제 * refactor: 메소드명 구체화 * refactor: 유저 픽 리스트 조회 메소드 추가 * feat: StructureValidator 구현 및 적용 * refactor: 메소드 이름 명확하게 변경 * feat: 로그 추가 * refactor: 메소드명 통일 IsNotEmpty -> IsNotNull * refactor: root, recycleBin 정보 요청으로 받지 않고 db에서 받도록 수정 * [HOTFIX] swagger 쿠키 설정 수정 (#179) * refactor: access_token 사용하도록 설정 * fix: swagger 쿠키 설정 수정 * hotfix: swagger 쿠키 설정 수정 * hotfix: samesite 설정 제거 * [REFACTOR] UserService 구현 포함, 전체 코드 리팩토링 (#180) * :recycle: docker compose 테스트 DB 설정 제거 * :sparkles: feat: UserService 기능 구현 * :recycle: refactor: Tag Feature 리팩토링 (의존성 제거) * :recycle: refactor: Pick 도메인 리팩토링 * :recycle: refactor: Structure 도메인 리팩토링 * :recycle: refactor: Link 도메인 리팩토링 * :recycle: refactor: Folder 도메인 리팩토링 * :recycle: refactor: FolderStructure 도메인 리펙토링 * :recycle: refactor: FolderStructure 도메인 리펙토링 (기존 코드 삭제) * :recycle: refactor: OAuth 도메인 리펙토링 * :recycle: refactor: User 이름 랜덤 생성기 추가 * :recycle: refactor: Folder 예외 추가 * :recycle: refactor: Parser 테스트 주석 처리 (provider 의존성 필요) * :recycle: refactor: 주석 오류 수정 * :recycle: refactor: 테스트 코드 준비 * :recycle: refactor: 코드 리뷰 피드백 반영 * :recycle: refactor: 코드 리뷰 피드백 반영 * :sparkles: feat: 태그 color 추가 (#185) * :bug: fix: 익스텐션 CORS 추가 * [FEAT] Pick �API + Service 구현 (#186) * feat: Link Service 기능 추가 * feat: UserProvider 구현 * refactor: TagService 수정 * feat: Pick Service 구현 * feat: Pick Tag 구현 * feat: Pick Api 구현 * refactor: FolderMapper 모두 general 타입으로 들어가는 문제 해결 * feat: folder type 메서드 추가 * refactor: Authentication 제거 * refactor: dto 삭제 * refactor: UserId -> User로 변경 및 메서드명 통일 * refactor: Request Param 변경 * refactor: 리뷰 반영 * [HOTFIX] Valid 관련 에러 설정 (#189) * feat: Link Service 기능 추가 * feat: UserProvider 구현 * refactor: TagService 수정 * feat: Pick Service 구현 * feat: Pick Tag 구현 * feat: Pick Api 구현 * refactor: FolderMapper 모두 general 타입으로 들어가는 문제 해결 * feat: folder type 메서드 추가 * refactor: Authentication 제거 * refactor: dto 삭제 * refactor: UserId -> User로 변경 및 메서드명 통일 * refactor: Request Param 변경 * refactor: 리뷰 반영 * refactor: valid 수정 * :bug: fix: link 생성 순서 오류 수정 및 swagger에 baseURL 수정 * [CI] API V2 브랜치 - 서버 설정 (#195) * ci: API V2 브랜치 - 서버 설정 * [REFACTOR] V2를 위한 패키지 리셋 (#237) * refactor: v2에 불필요한 패키지 삭제 * refactor: auth폴더 중 새로구현하게되는 부분 삭제 * refactor: 테스트 폴더 삭제 * [FEAT] V2 엔티티 설계 (#240) * refactor: TimeTracking -> BaseEntity로 클래스명 변경 * refactor: 불필요한 클래스 삭제 * refactor: 정적 메소드 삭제 * feat: id List <-> String Converter 구현 * feat: 자식 픽/폴더/태그의 순서를 저장하는 필드 추가 * feat: FK 제약조건 제거 * refactor: OnDelete옵션을 위해 FK 제약조건 원복 * refactor: Converter 어노테이션 추가 * refactor: Link 비활성화 구현 및 Pick 관련 필드 추가 * refactor: 필드명 수정 deletedAt -> invalidatedAt * refactor: FK 제약조건 원복 * [FEAT] V2 패키지 구조 재설계 (#258) * feat: mapstruct 의존성 추가 * feat: 초기 프로젝트 구조 설정 * feat: 서비스 / 컨트롤러 어노테이션 추가 * feat: SQL 로그 파일 설정 추가 * feat: 도커 컴포즈 주석 제거 * feat: 잘못 들어간 코드 삭제 * feat: 코드 리뷰 반영 * [CHORE] API 명세 (#264) * feat: api 명세 * feat: api 명세 * feat: api 명세 반영 * feat: api 명세 반영 * [FEAT] pick v2 도메인 개발 (#278) * feat: Link, Pick, Folder 엔티티 * feat: PickTag 엔티티 작업 * chore: 미사용 파일 제거 * chore: 스펙의 변수명 변경 * chore: sql 파일 위치 이동 * chore: 필요 예외 코드 추가 * feat: 유저 infra * feat: JPA Repository 구현 * :sparkles: feat: Pick 도메인 구현 * :sparkles: feat: Pick 인프라 구현 * :sparkles: feat: Link 인프라 구현 * :sparkles: feat: Folder 인프라 구현 * :sparkles: feat: MapStruct 매퍼 구현 * chore: 리팩토링 및 null 처리 추가 * chore: 리팩토링 및 MapStruct 빌드 오류 수정 * chore: 테스트코드 패키지 사라진거 복원 * chore: 테스트코드 준비 * refactor: 현재 사용자 조회 메소드 구현 * chore: 코드 리뷰 결과 반영 * chore: 코드 리뷰 결과 반영 --------- Co-authored-by: PSH <[email protected]> * [REFACTOR] pick service 코드에서 chaining 제거 (#280) * chore: 코드 리뷰 결과 반영 * chore: 코드 리뷰 결과 반영 * [FEAT] Tag v2 Service 구현 (#281) * feat: tag infra 구현 * feat: tag entity, repository 구현 * feat: tag dto, mapper 구현 * feat: tag service 구현 * refactor: user tagOrderList에 ArrayList 주입 * feat: tag api request/response 구현 * feat: tag api mapper 구현 * refactor: pickTag 삭제 메서드 구현 * refactor: tag dto 공통화 및 태그 이동 dto 추가 * refactor: 검증 로직 writer로 이동 및 reader 수정 * refactor: 태그 service 리뷰 반영 및 유저의 태그 이동 기능 구현, 태그 삭제 시 픽 태그도 삭제되도록 구현 * [FIX] Pick API 예외 미흡 수정 (#283) * fix: Tag 미사용 Exception 제거 * fix: 미사용 Fixture 제거 * fix: Pick Write 예외 처리 추가 (권한) * fix: Pick Write 예외 처리 추가 (권한) (#290) * [REFACTOR] 테스트 코드 구현을 위한 Pick 도메인 수정 (#297) * refactor: Writer, Reader를 PickAdaptor로 인터페이스 통합 * refactor: Writer, Reader 삭제 * refactor: userId 파라미터로 분리 * refactor: 서비스 구현체 수정 * chore: 레포지토리 수정 및 주석 변경 * chore: 누락된 변경 사항 적용 * [FEAT] Folder Domain/Infrastructure 구현 (#284) * feat: 폴더 update remove 메소드 구현 * feat: 폴더 reader/writer 구현 * feat: 폴더 dto 구현 * feat: 폴더 service 구현 * feat: 폴더 repository 자식폴더 조회 메소드 구현 * refactor: FolderReader FolderWriter를 FolderAdapter로 병합 * feat: Folder equals, hashcode 구현 * fix: TODO로 작성했던 태그 리스트 비교 로직 업데이트 (#300) * [FEAT] Tag Service 테스트 코드 작성 및 리팩토링 (#302) * refactor: 테스트 설정 파일 수정 * refactor: reader, writer -> adaptor로 통합 * refactor: user entity builder 추가 및 reader에 private final 추가 * refactor: parameter에 userId 추가 * feat: tag service test code 작성 * refactor: 비관락 설정, 에러 코드 메세지 검증 추가 * refactor: 동시성 테스트 트랜잭션 추가 * [REFACTOR] 폴더구조 변경 (#308) * refactor: shared 폴더 제거 * refactor: entities/pick 폴더 제거 * refactor: entities/tag 제거 * refactor: features/tag 제거 * refactor: features/userManagement 제거 * refactor: features/themeManagement 제거 * refactor: features/nodeManagement 제거 * refactor: widgets 제거 * [REFACTOR] import 순서 변경 (#311) * chore: eslint import 순서 정리 * reafactor: import 순서 변경 * [REFACTOR] Tag Service Infrastructure 리팩토링 (#309) * refactor: TagAdaptor로 db로직 이관 * refactor: TagService에는 비즈니스 검증 로직 구현 * refactor: 테스트에 리팩토링 사항 반영 * refactor: TagRepository 비관락 타임아웃 설정 * refactor: findBy -> findAllBy로 명확하게 메소드명 수정 * fix: 오타 수정 * refactor: TagCommand dto안에 userId 포함 * feat: 디자인 토큰 추가 * feat: 디자인 토큰 적용 * feat: �commontThemeContract 삭제 * fix: ThemeProvider 변경사항 적용 * fix: 위치 조정 * [FEAT] 디자인 토큰 추가 * [REFACTOR] Folder 도메인 리팩토링 (#316) * refactor: FolderCommand가 userId를 가지도록 변경 * refactor: FolderAdapter 리팩토링 * refactor: FolderService 리팩토링 * refactor: FolderFacade 제거 * fix: typo 수정(FolderAdapter->FolderAdaptor) * refactor: FolderAdaptor 메소드명 변경에 따른 관련 메소드 리팩토링 * refactor: Command에 userId 포함하도록 변경됨에 따라 mapper 수정 * refactor: TagFacade 삭제 * feat: 기본폴더 조회 메소드 구현 * feat: Order를 보장하는 조회 메소드 분리 * refactor: 정렬 로직 adaptor로 이관 * refactor: 다른 부모폴더에있는 폴더들을 동시에 이동시키려고 할때 발생시킬 예외 추가 * refactor: 필드명 명확하게 변경 parentFolderId -> destinationFolderId * refactor: 순서보장이 필요한 경우와 아닌경우에 따라 adaptor메소드 분리 * [REFACTOR] tag, folder 검증로직 메소드 분리 (#323) * refactor: 태그 검증로직 메소드 분리 * refactor: 폴더 검증로직 메소드 분리 * [FEAT] Tag API 구현 및 Swagger 명세 (#328) * feat: swagger 가 패키지를 포함하여 관리하도록 설정 추가 * style : 파라미터 순서 변경 * refactor: colorNumber 타입 수정 * feat: Tag Api 구현 및 Swagger 명세, 예시 추가 * refactor: 오타 수정 * [FEAT] LoginUserId 커스텀 어노테이션 구현 (#326) * feat: 커스텀 어노테이션 구현 * feat: ArgumentResolver 구현 * feat: ArgumentResolver 등록 * [REFACTOR] Rss 서비스 리팩토링 (#321) * refactor: 불필요한 클래스 삭제 * refactor: batch 패키지로 이동 * refactor: RssBlog 엔티티에 blogName 필드 추가 및 관련 dto 구현 * refactor: RssFeed 엔티티 필드명 수정 및 파싱용 dto 구현 * feat: Rss infra 구현 * feat: Rss domain 구현 * feat: (임시) rss 수집 블로그 구현 - 이후 관리자기능으로 이관할 예정 * chore : 코드 포맷 수정 * refactor: 매일 3시에 수집하도록 스케줄 설정 * chore: 주석 typo 수정 * feat: 메소드 실행시간측정 커스텀 어노테이션 구현 * feat: rssCrawling 실행시간 측정 * [FEAT] Folder Api 구현 및 Swagger 명세 (#331) * refactor: 불필요한 인터페이스 삭제 * refactor: 기본폴더 변경불가 검증로직 추가 * feat: FolderApi dto, mapper 구현 * feat: FolderApi Controller 구현 * [FEAT] 같은 계층일 때, 폴더 multi select 구현 (#332) * chore: dnd-kit 설치 및 tree 페이지 생성 * feat: jest 설정추가 * fix: jest monorepo별 적용 * chore: root jest config 삭제 * feat: 같은 부모 밑에서 1개씩 폴더 이동 * design: tree page margin 변경 * test: 복수의 폴더 이동 테스트코트 작성 * feat: 현재 드래그 여부 상태 zustand에 추가 * feat: 폴더 다중 선택 기능 추가 * feat: DragOverlay추가 * design: primary color로 변경 * fix: test문 it.only 제거 * refactor: dndTreeStore에 hasIndex 적용 * [FEAT] 검색창 및 리스트 로직 설계 (#333) * feat: 검색 위젯 로직 구현 * feat: 유틸리티 클래스 구현 (파싱, 필터링) * doc: 유틸리티 참고 이미지 및 설명 * feat: zustand, react query 추가 * feat: 뷰포트 리액트 컴포넌트 * refactor: esToolkit import * refactor: useViewScope 변경 * refactor: useQuery 함수명 파일명 변경 * refactor: useQuery 함수명 파일명 변경 * refactor: Util 함수 리팩토링 * [FEAT] Pick 리팩토링 진행 및 API 구현 (#342) * fix: 미사용 파일 제거 * chore: 트래잭션 로깅 옵션 추가 * fix: 폴더, 태그에 unique 제약 조건 추가 * fix: 미사용 파일 제거 * fix: 미사용 파일 제거 * feat: User Adaptor로 로직 통일 * feat: Link Adaptor로 로직 통일 * feat: request dto에서 userId 제거 * feat: userAdaptor 로 변경 * fix: Pick 도메인 오류 수정 * fix: Tag 도메인 수정 * fix: User 내용 추가 * fix: OrderConverter 수정 * feat: 테스트 코드 1차 작성 * feat: 엔티티내 조건 체크 제거 * fix: 폴더 어뎁터 오타 수정 * fix: 테스트 코드 추가 작성 * fix: 테스트 코드 추가 작성 * refactor: Pick Service 리팩토링 진행 및 임시 커밋 * refactor: Folder에 있는 Order List에 ArrayList, null 체크 추가 * refactor: Link에 synchronized 제거 * refactor: 휴지통 외에 다른 폴더에서 삭제하지 못한다는 에러 코드 및 메시지 추가 * refactor: 태그 오더 리스트 조건으로 태그 리스트 가져오는 로직 추가 * refactor: tagOrder -> tagOrderList로 변수명 변경 * refactor: PickTagRepository, PickMapper 수정 * refactor: Pick Dto 수정 * refactor: Pick Adaptor, Service 리팩토링 * refactor: Pick Service Test 코드 작성 * refactor: error code 상태 변경 * refactor: 테스트 코드에 트랜잭션 추가 * refactor: 픽한 링크인지 확인하기 위한 로직 추가 * refactor: 픽한 링크인지 확인하기 위한 로직 추가 * feat: 픽 API 구현 및 스웨거 설정 추가 --------- Co-authored-by: kimminkyeu <[email protected]> * [REFACTOR] 멀티모듈 적용 (#344) * refactor: 멀티모듈로의 패키지 이동 * refactor: 멀티모듈로 분리되며 패키지 경로 수정 * refactor: 멀티모듈로 분리되며 각 모듈에 종속된 config 이동 * refactor: 멀티모듈 적용을 위한 gradle 설정 * refactor: 멀티모듈 적용을 위한 application.yaml 분리 * refactor: 멀티모듈 적용을 위한 docker 설정 변경 * refactor: 멀티모듈 적용을 위한 패키지 이동 * refactor: application-core import 방식 수정 * ci/cd: 멀티모듈 ci/cd 파이프 라인 구현 (#346) * [CI/CD] 멀티모듈 ci/cd 적용 (#347) * ci/cd: 멀티모듈 ci/cd 파이프 라인 구현 * ci/cd: 불필요한 스크립트 삭제 * ci/cd: api, batch 모듈 cicd 스크립트 작성 * refactor: 정보 수정 * refactor: 대상 브랜치 수정 * refactor: 액션 버전 업 * [FEAT] 시큐리티 모듈 분리 및 소셜로그인 기능 복구 (#350) * refactor: core 모듈 패키지 구조 리팩토링 * refactor: api 모듈 패키지 구조 리팩토링 * refactor: batch 모듈 패키지 구조 리팩토링 * refactor: core 모듈 패키지 구조 리팩토링 * feat: 시큐리티 모듈 구현 * refactor: core에 있는 시큐리티 관련 설정 security로 이관 * refactor: 빌드 설정 변경 - 테스트 제외 및 시큐리티 모듈 추가 * refactor: 토큰 추가 메소드명 수정 * refactor: 회원가입시 기본폴더 생성 로직 추가 * refactor: 잘못된 인증정보를 가질 시 예외처리 및 쿠키삭제 * hotfix: 배포 테스트 * hotfix: 잘못된 배포 스크립트 제거 * hotfix: 잘못된 배포 스크립트 제거 * hotfix: 쿠키 설정 변경 * hotfix: dockerhub 업로드시 모듈명 추가 * hotfix: deploy test - core 모듈 수정 * hotfix: 배포 스크립트 수정 * hotfix: 배포 테스트 - core 모듈 수정 * hotfix: 배포 테스트 - batch 모듈 수정 * [FEAT] 픽 리스트 - 사용자 설정 필터 & 뷰 템플릿 (#348) * feat: 검색 위젯 로직 구현 * feat: 유틸리티 클래스 구현 (파싱, 필터링) * doc: 유틸리티 참고 이미지 및 설명 * feat: zustand, react query 추가 * feat: 뷰포트 리액트 컴포넌트 * refactor: esToolkit import * refactor: useViewScope 변경 * refactor: useQuery 함수명 파일명 변경 * refactor: useQuery 함수명 파일명 변경 * refactor: Util 함수 리팩토링 * chore: 파일 제거 및 위치 이동 * chore: use-Immer 패키지 추가 * feat: 유틸리티 (Stream, Tokenizer) 리팩토링 및 개선 * chore: 공통 타입 추가 및 일부 변경 * feat: 태그 아이템 UI 컴포넌트 (익스텐션에서 가져옴) * feat: 최상단 컴포넌트 (뷰어) 및 상태 구현 * test: 쿼리 더미 데이터 추가 * feat: 옵션 리스트 위젯 및 상태 구현 * feat: 검색창 위젯 구현 * feat: 필터 옵션 기능 구현 * feat: 뷰 템플릿 (리스트 vs 그리드) 옵션 구현 * chore: 디렉토리 이름 변경, 기존 폴더 제거 * chore: dummy data 업데이트 * :recycle: refactor: 코드 리뷰 기반으로 리팩토링 진행 * [REFACTOR] Drag & Drop 함수 및 컴포넌트 분리 (#351) * test: moveFolder test code 삭제 * feat: mockdata 변경에 따른 로직 변경 * refactor: 중앙 스토어에서 로직 분리 * design: treePageWrapper css 변경 * feat: shift + click시에 active가 부모 폴더가 다르면 초기화 * feat: 다른 폴더간 이동 구현 * chore: 테스트코드 예제 삭제 * refactor: reorderFolderInSameParent 함수명 수정 * refactor: SelectedFolderListType으로 대체 * refactor: handleClick 함수 분리 * chore: tree 컴포넌트를 components 폴더로 이동 * [FEAT] 공통 테마에 jsdoc 추가 (#354) * [FIX] drag & drop 후 정렬 변경 (#360) * fix: drag & drop 후 정렬 변경 * refactor: isSameParentFolder parameter 변경(동일한 값) * [REFACTOR] 인터페이스 제거, Adaptor 이름 변경, Pick 리팩토링 (#357) * refactor: 인터페이스 제거 및 어댑터 변경으로 인한 불필요한 클래스 제거 * refactor: 유저 인터페이스 제거, 어댑터 변수명 변경 * refactor: 태그 리팩토링, unique 재설정, 태그 삭제 시 픽의 태그 리스트 삭제되는 부분에 pickId -> tagId로 수정 * refactor: open-in-view 설정 추가 * refactor: root에 픽 추가하는 경우, 예외 추가 * refactor: 링크 인터페이스 제거, 어댑터 이름 변경 * refactor: 폴더 인터페이스 제거, 어댑터 이름 변경, unique 수정 * refactor: Pick unique 설정 * refactor: 픽 리팩토링 진행, 픽 리스트로 조회 시 순서 보장, Result Dto 분리 * refactor: 픽 api 폴더 리스트 안에 있는 픽 리스트 조회 구현, response dto 분리 * refactor: 픽, 태그 실패하는 테스트 수정 * refactor: 불필요한 파일 제거 * refactor: 멀티 모듈로 변환하는 과정에서 import문 변경 * refactor: 태그 수정 시 null인 경우 수정되지 않도록 변경 * refactor: 폴더 리스트 내 픽 리스트 조회하는 경우, get으로 하면 json 데이터를 받지 못해 post로 변경 * refactor: 테스트 코드 위치 변경 * refactor: 태그 테스트코드 userId 값 하드 코딩 리팩토링 * refactor: 테스트 끝나고 drop 하도록 변경 * refactor: 폴더 api 생성시 folderId 제거 * refactor: Fetch -> Search로 Dto명 변경 * refactor: Fetch -> Search로 Dto명 변경 * refactor: 픽 리스트 조회 메소드 분리 * refactor: 픽 리스트 조회 post -> get으로 변경 * [FEAT] 폴더 생성 UI 및 상태 관리 로직 변경 (#365) * design: 작업 전 디자인 변경 * design: CreateFolderInput 디자인 추가 * feat: 폴더 생성 UI 구현 * design: FolderTree 전체적인 레이아웃 변경 * design: 폴더 트리 디자인 개선 * feat: CreateFolderInput 생성시 focus 이동 * design: createFolderInputLayout 디자인 변경 * [FEAT] 폴더 이름 변경 UI 및 로직 구현 (#367) * feat: CreateFolderInput, FolderInput 컴포넌트로 추출 * design: 공통 테마 사이즈 추가 * chore: PORTAL_CONTAINER_ID 상수로 변경 * feat: 폴더 이름 변경 UI 및 로직 연결 * feat: 우클릭시에 포커스되는 폴더 변경 * [FEAT]: 삭제 UI 및 로직 추가 (#369) * [FIX] 태그 api 수정 및 Swagger 파라미터 수정 (#372) * fix: @LoginUserId 누락 해결 * fix: swagger에서 long userId 파라미터로 안받게 수정 * fix: swagger에서 long userId 파라미터로 안받게 수정 * [FIX] 스웨거 응답값 수정 및 픽 update 버그 수정 (#376) * refactor: tag-change * fix: api 스웨거 타입 배열로 수정 * fix: 태그 서버 에러 디버깅용 메시지 추가 * chore: 코드 리뷰 바탕으로 반환 타입 제거 (스웨거가 자동으로 설정) --------- Co-authored-by: sangwonsheep <[email protected]> * [FEAT] 소셜 로그인 리다이렉션 구현 (#377) * refactor: CookieUtil 리팩토링 * feat: authorizationRequestRepository 구현 * refactor: redirectUrl 로직 리팩토링 - 쿼리스트링으로 redirectUrl 받음 * refactor: redirectUrl 쿼리 파라미터명 변경 * [REFACTOR] Folder API 수정, Folder 리팩토링 (#379) * refactor: tag-change * refactor: folder 유니크 제약조건 제거 * refactor: pick void 반환 타입 응답 코드 204로 변경 * refactor: 폴더 응답 값, 프론트와 통일 * refactor: 폴더 생성 시 생성 메서드 사용 및 부모 폴더의 하위 폴더 리스트에 id 추가하도록 변경 * refactor: 루트 폴더와 루트 하위 폴더 리스트 조회 추가, 기본 폴더 리스트 조회 추가, 기본 폴더 각각 조회하는 Api 제거 * refactor: 주석 제거 * refactor: Dto에 @Valid로 검증하여 터진 에러 핸들링, 응답 코드 400으로 설정 * refactor: 코드 리뷰 반영 * [CI/CD] nextjs docker image 사이즈 감소 (#380) * hotfix: argument resolver 수정 * [REFACTOR] local-dev-prod 설정 분리 (#381) * refactor: local-dev-prod 설정 분리 * refactor: 설정 분리에 따른 변수명 수정 * refactor: docker-compose 기본 프로파일 local로 설정 * refactor: jpa 설정 local dev prod 분리 * [REFACTOR] Folder, Tag 리팩토링 (#384) * refactor: api에 있던 swaager dependency 최상단으로 이동 * refactor: 태그 리스트 조회 시 순서 보장, Request Body 누락한 것 추가 * refactor: 커스텀 어노테이션에 스웨거 파라미터 hidden 설정 추가하는 것으로 변경 * refactor: Folder, Tag API에 Valid, Request Body 추가 * hotfix: cors 수정 * hotfix: cors 수정 * hotfix: dev profile base-url 수정 * refactor: local mysql 설정 변경 (#389) * [REFACTOR] api request, response 양식 통일 (#396) * refactor: env sample 수정 * refactor: folderId -> id로 통일 * refactor: tagId -> id로 통일 * refactor: pickId -> id로 통일 * refactor: dto로 List를 감싸서 반환하던 방법에서 List를 반환하도록 변경, dto명 변경 * hotfix: cors 설정에 https://local.minlife.me:3000 추가 * [REFACTOR] 폴더 멀티 이동 관련 버그 수정, Pick, Folder 변수명 통일 (#397) * refactor: pick 변수명 통일 * refactor: Pick 관련 tagOrderList -> tagIdOrderedList 변경 * refactor: 픽 생성, 수정 시 태그 리스트가 존재하는지 검증하는 로직 추가 * refactor: Folder childFolderOrderList -> childFolderIdOrderedList로 변경 * refactor: 여러 폴더를 선택하여 이동되지 않는 문제 해결 * [FEAT] Folder API 연결 (#399) * chore: api 변경에 따른 스키마 업데이트 * feat: 폴더 관련 api 타입 지정 * refactor: api 변경에 따른 타입 변환 * feat: top level error 추가 * feat: folder crud api 추가 * chore: api 변경에 따른 타입 변경 * feat: 폴더 드래그 앤 드랍 api 연결 * feat: 폴더 이름 변경 api 연결 * feat: 휴지통 이동 api 연결 * refactor: -1 매직넘버 상수로 변경 * chore: mockdata 삭제 * chore: re-resizable 의존성 설치 * faet: FolderTree 크기 조정 가능하게 변경 * chore: api 변경에 따른 타입 최신화 * feat: createFolder api 연결 * refactor: getFolders, getBasicFolders 로 함수명 변경 * reafactor: getRootFolderList로 변경 * fix: 테스트 application.yaml 수정 (#402) * [FIX] 다른 폴더로 이동되지 않는 문제, 스웨거 응답 예시 추가 (#403) * refactor: 스웨거 응답 예시 데이터 추가 * refactor: 폴더를 다른 폴더로 이동시키지 못하는 문제 해결 * refactor: 미분류 폴더로 이동 금지, Service로 검증 로직 이동 * refactor: 추후 변경될 사항 주석 추가 * [FEAT] 폴더 클릭에 따른 라우팅 변경 (#405) * feat: 라우팅 설정 변경 * chore: root 폴더에서 tsc 동작시 build된 파일 생성 차단 * chore: legacy 삭제 * feat: 폴더 클릭시마다 라우팅 이동 * feat: useTreeStore subscribeWithSelector 적용 * refactor: FolderInfoItem 컴포넌트 분리 * feat: url을 이용해 folder 선택하게 변경 * feat: route 경로 추가 * feat: middleware redirect url 변경 * feat: 휴지통 및 미분류 폴더 추가 * design: 최초 로딩시에 사이드바 사이즈 지정 * design: 사이드바 디자인 조정 * chore: 쓰지 않는 props 제거 * refactor: useEffect 함수명 추가 * [FEAT] 검색 위젯 기능 구현 및 미사용 필터 제거 (#410) * chore: 중간 작업 공유 * chore: 타입 변경 및 기존 SearchWidget.tsx 리팩토링 * chore: 타입 변경 및 기존 SearchWidget.tsx 리팩토링 * feat: 기존 로직에서 미사용하는 필터 제거 * feat: dndTreeStore 병합 작업 * [FEAT] SecurityProperties 분리 (#415) * feat: Security 관련 설정값을들 모아두는 SecurityProperties 구현 * refactor: SecurityProperites를 의존하도록 리팩토링 * refactor: 필드 순서 변경 및 줄바꿈 추가 * [FEAT] 검색창 자동 완성 (#418) * refactor: PrefixTokenizer 구현 수정 * refactor: PrefixTokenizer 구현 수정 * feat: 검색 위젯 토큰화 구현 * chore: 화면 테스트를 위한 뷰어 패널 코드 수정 (반영 안될 수 있는 커밋) * feat: 토큰 검색창 CSS 설정 * chore: 일부 주석 추가 및 코드 위치 변경 * chore: yarn.lock 파일 커밋 * [FEAT] 같은 폴더 내에서 Pick Drag&Drop 구현 (#420) * chore: 백엔드 api 타입 최신화 * chore: util 스펠링 정확하게 변경 * feat: pickType 추가 * feat: getPicksByFolderId 추가 * refactor: viewTemplate 코드 변경 * refactor: 바로 호출이 아닌, useEffect 내에서 비동기함수 호출 * chore: git pull을 위한 커밋 * refactor: pickCardListViewer로 PickCard 컴포넌트 이동 * design: card link style 변경 * feat: 더블 클릭시 링크 이동 * feat: dnd가 가능한 list와 그렇지 않은 list분리 * refactor: dnd여부에 따라 PickListViewer분리 * refactor: DnDCurrentType을 dnd.type으로 이동 * refactor: 공통 utils함수로 추출 * feat: 픽에서 픽으로 이동(api 미연결) * feat: pick multi-select 구현 * feat: multi-select drag&drop 구현(api 미연결) * feat: 같은 폴더 내 픽 drag&drop api 연결 * [FIX] 깃허브 액션 API 테스트 * [FEAT] pick bulk insert 구현 및 테스트 작성 (#409) * feat: pick bulk insert 구현 및 테스트 작성 * refactor: pick bulk insert 클래스 분리 및 클래스명 변경 * [FIX] 검색창 버그 수정 및 URL 업데이트 (#424) * :rotating_light: fix: useSearchParams 사용처에 <Suspence> 추가 * [DESIGN] 폴더 영역 디자인 개선 (#430) * [FEAT] 픽을 폴더로 이동하는 기능 추가 (#432) * refactor: draggable type에 따라 검증 함수 분리 * chore: store barrel export 추가 * feat: pick to folder를 위한 dnd context 생성 * fix: dnd context 변경에 따른 로직 변경 * refactor: 컴포넌트명 변경 * refactor: useGetDndContextSensor로 로직 분리 * fix: 로직에 따라 pickId 문자열 대신 정수로 수정 * feat: PickDraggableObjectType에 부모 폴더 id 추가 * feat: 드래깅하는 카드 정보 store에 추가 * feat: pick to pick 시 overlay 카드 생성 * feat: folder drag시 folder overlay 보이도록 변경 * design: 카드 드래그 시 크기 줄이기 * feat: pick to folder drag over시 폴더 색상 변경 * refactor: movePicksToEqualFolder로 함수명 변경 * feat: 휴지통 및 미분류로 픽 이동 감지 * feat: 다른 폴더로 픽 이동 로직 추가 * feat: 폴더 디테일 페이지 뷰 연결 * feat: �휴지통 페이지 카드 렌더링 * [REFACTOR] 시큐리티 및 예외처리 리팩토링 (#427) * refactor: 쿠키 삭제 메소드 리팩토링 * refactor: base-url 리팩토링 (환경변수->property로 이관) * feat: add exceptionhandler for Json Parse error * [FIX] FolderService 로직 변경 (#434) * feat: 부모폴더 검증을 위한 예외 추가 * fix: MoveFolder, changeFolderOrder 분리, 요청에 parentFolderId 추가 * fix: MoveFolder, changeFolderOrder 분리 및 delete 로직 변경 * fix: 픽 리스트를 휴지통으로 이동하는 로직 수정 * fix: 폴더 이동 로직 롤백.. 기존 로직에 검증 로직만 추가함 * [FIX] DragOver 수정 및 휴지통 이동 로직 변경 (#441) * fix: DragOver 개선 * refactor: 백엔드 API 변경에 따른 휴지통 이동 로직 변경 * [FIX] 현재 포커스된 폴더 삭제 시에 미분류 페이지로 리다이렉트 (#446) * fix: 현재 포커스된 폴더 삭제 시에 미분류 페이지로 리다이렉트 * design: 드래그시 outline 제거 * [FEAT] 로그인 리다이렉트 URL 추가 (#450) * chore: sample 대신 관용적으로 사용되는 example로 변경 * feat: 로그인 redirect url 추가 * ci/cd: github Actions secrets 추가 및 적용 * [FEAT] 검색 기능 구현 (#454) * feat: querydsl 설정 추가 * feat: querydsl 설정 추가 * refactor: pick memo 제거 및 픽 리스트 조회 dto명 변경 * refactor: pick 제목만 수정 가능하도록 변경, pick 수정 시 pickTag 테이블 갱신 로직 추가 * refactor: 검색 관련 dto 추가, 기존에 pickApiResponse에 잘못 작성된 부분 수정 후 mapper도 수정 * refactor: 검색 관련 querydsl로 구현 * refactor: 검색 관련 API 구현, 픽 조회 API 분리, 페이지네이션 dto 구현 * refactor: 테스트 코드 작성 및 수정 * refactor: 주석 변경 * refactor: SliceReponse -> PickSliceResponse로 변경 * refactor: Pick entity memo 제거, sliceResponse에 hasNext 추가 * [TEST] FolderService 단위 테스트 구현 (#440) * feat: test를 위한 mockito 의존성 추가 * feat: 단위테스트를 위한 Fixture 구현 * feat: FolderService 단위 테스트 구현 * refactor: security 모듈 api 모듈로 통합 (#451) * [REFACTOR] 익스텐션 폴더 구조 변경 및 API 최신화 (#458) * feat: 익스텐션 로그인 페이지 디자인 변경 * chore: 백엔드 타입 최신화 * chore: 백엔드 타입 최신화 * refactor: type은 types폴더로 이동 * chore: 백엔드 타입 최신화 * refactor: api 호출 함수 변경 * refactor: api url 상수로 관리 * feat: barrel export에서 값과 함수 제거 * refactor: 도메인 의존성 없는 컴포넌트 lib폴더로 이동 * refactor: toast 관련 함수 lib 폴더로 이동 * refactor: store는 store폴더로 이동 * chore: 사용하지 않는 타입 제거 * refactor: util함수 util 폴더로 이동 * refactor: 페이지 폴더 제거 * refactor: 컴포넌트는 컴포넌트 폴더로 이동 * fix: returnErrorFromHTTPError에 await 문구 추가 * chore: 백엔드 api 변경에 따른 타입 변경 * [FIX] 로그인 이후 뒤로가기 시 로그인 화면으로 이동하지 못하게 수정 (#453) * [fix] 픽 검색 API 페이지네이션 적용 (#460) * chore: 무한스크롤 라이브러리 추가 * chore: 무한스크롤 라이브러리 추가 * feat: 무한 스크롤 구현 * chore: pick 조회 스토어 함수 수정 * chore: 불필요한 코드 수정 * [FEAT] radix-color 추가 (#462) * feat: radix-color 추가 * chore: radix-color 추가 변경사항 적용 * chore: route 변수 수정 * feat: breadcrumb 적용 * chore: 기타 스타일링 * chore: 입력창 스타일링 * feat: 무한 스크롤 다듬기 작업 * feat: 검색창 변수 수정 * [DESIGN] 검색 바 디자인 개선 (#463) * chore: route 변수 수정 * feat: breadcrumb 적용 * chore: 기타 스타일링 * chore: 입력창 스타일링 * feat: 무한 스크롤 다듬기 작업 * feat: 검색창 변수 수정 * fix: useSearchParams는 suspense로 반드시 감싸야 한다. * refactor: ApiFolderErrorCode 오타 수정 (#468) * Update README.md * [CHORE] 운영환경 배포를 위한 frontend 브랜치 merge (#471) * chore: 세팅중인 상태 * fix: vanilla-extract 설정 변경 * fix: storybook 실행 안되는 오류 해결 @chromatic-com/storybook이 문제였음. * chore: storybook tset 확인 * chore: eslint 예외 추가 * chore: eslint, prettier 설정 * chore: DS_Store ignore * chore: husky 테스트 * chore: husky 적용 중 * chore: husky 적용 * chore: 테스트용 컴포넌트 삭제 * chore: jest 적용 * chore: ts를 devDependencies로 이동 * chore: sample test 파일 삭제 * chore: add files to gitignore * chore: vscode setting 추가 * chore: playwright example test code 삭제 * chore: e2e test github action 추가 * fix: action 오타 수정 * fix: 깃허브 액션 오타 수정 * chore: add corepack * chore: 실행 순서 변경 * chore: browser 설치 * chore: playwright-report path 변경 * chore: �액션 if문 제거 * fix: 액션 탭 간격 변경 * chore: github action 테스트를 위한 싶패 테스트 * chore: 항상 report를 뽑을 수 있게 변경 * chore: github action 테스트를 위한 성공 테스트 * chore: vanilla-extract storybook 적용 * chore: 프로젝트 세팅을 위한 필요없는 파일 없애기 * chore: playwright yarn script 추가 * chore: react-hot-toast 적용 * feat: 깃허브 액션 테스트용 PR (#4) * chore: 세팅중인 상태 * fix: vanilla-extract 설정 변경 * fix: storybook 실행 안되는 오류 해결 @chromatic-com/storybook이 문제였음. * chore: storybook tset 확인 * chore: eslint 예외 추가 * chore: eslint, prettier 설정 * chore: DS_Store ignore * chore: husky 테스트 * chore: husky 적용 중 * chore: husky 적용 * chore: 테스트용 컴포넌트 삭제 * chore: jest 적용 * chore: ts를 devDependencies로 이동 * chore: sample test 파일 삭제 * chore: add files to gitignore * chore: vscode setting 추가 * chore: playwright example test code 삭제 * chore: github action 테스트를 위한 싶패 테스트 * chore: github action 테스트를 위한 성공 테스트 * chore: vanilla-extract storybook 적용 * chore: 프로젝트 세팅을 위한 필요없는 파일 없애기 * chore: playwright yarn script 추가 * chore: react-hot-toast 적용 --------- Co-authored-by: Jason <[email protected]> * chore: 프로젝트 구조 세팅 (#11) * chore: 필요없는 파일 제거 * fix: 파일명 오타 수정 * feat: 기본 디렉토리 추가 * chore: yarn set version berry (#12) * chore: 깃허브 액션 변경 * feat: 모노레포 분리 (#28) * chore: 서비스 디렉토리 이동 * chore: eslint 적용중 * fix: eslint 설정 * chore: extension 프로젝트 세팅 중 husky 충돌 * fix: pre-commit 동작 수정 * chore: backup * chore: backup * chore: backup2 * chore: setting * chore: ignore 설정 * chore: husky 설치 * chore: monorepo로 변경된 뒤 액션 변경 * chore: husky 설치 --------- Co-authored-by: Jason <[email protected]> * chore: 폴더명 변경에 따른 액션 변경 * chore: 폴더명 변경 (#37) * Front/feat/#35 (#40) * chore: 폴더명 변경 * build: 크롬 익스텐션 빌드 설정 * feat: css 파일 제거 * build: 파일 수정시마다 build되는 스크립트 추가 * chore: 의존성 설치 @tanstack/react-query, @vanilla-extract/css, react-router-dom, zustand * feat: 디렉토리 생성 * feat: router 추가 * feat: react-query provider 설정 * feat: vanilla-extract 세팅 * feat: 현재 탭에서 데이터 가져오기 (#50) * feat: 북마크 페이지 생성 * chore: 절대경로 수정 * build: build시에는 빌드를 한번하게 변경 * feat: 새로운 링크로 이동할 시 og image가져오는 동작 추 * feat: tab 열 때 마다 og image 가져오기 * refactor: 쓰지 않는 코드 제거 * chore: 주석 제거 * feat: 파비콘 가져오기 * feat: 서비스워커를 이용해서 동작하는 것으로 변경 * refactor: useGetTabInfo hook으로 분리 * refactor: background.ts 제거 * feat: og:description 가져오기 * chore: 쓰지 않는 상수 제거 * feat: 페이지 기본 요소 렌더링 (#52) * chore: init * design: theme 설정 * design: dirView 구조 정의 * chore: downgrade version - yarn 4.3.1 / typescript 5.5.4 * feat: react-arborist 적용 및 테스트 완료 * feat: 디렉토리 구성 및 아이콘 추가 * chore: use-resize-observer 라이브러리 추가 * design: tree 높이 동적 조절되도록 수정 * feat: 우측 view에 folder 및 link 표시 * chore: 컴포넌트 분리 * chore: 불필요한 주석 제거 * chore: 4.3.1 cjs 추가 * refactor: pr 수정요청사항 적용 * chore: import 수정 * chore: index.ts 추가 * chore: index.ts 추가 * chore: conflict 해결 * refactor: barrel exports pattern 적용 * refactor: icon export 처리 * refactor: directoryNode export 처리 * refactor: icon 이동 * refactor: icon을 public으로 이동 * chore: 불필요한 index 제거 * chore: 이름 변경 * chore: 이름 변경 * chore: 이름 변경 * chore: 이름 변경 * chore: 이름 변경 * [FEAT] 익스텐션 태그 인풋 핵심 로직 구현 (#126) * feat: 북마크 페이지 생성 * chore: 절대경로 수정 * build: build시에는 빌드를 한번하게 변경 * feat: 새로운 링크로 이동할 시 og image가져오는 동작 추가 * feat: tab 열 때 마다 og image 가져오기 * refactor: 쓰지 않는 코드 제거 * chore: 주석 제거 * feat: 파비콘 가져오기 * feat: 서비스워커를 이용해서 동작하는 것으로 변경 * refactor: useGetTabInfo hook으로 분리 * refactor: background.ts 제거 * feat: og:description 가져오기 * chore: 쓰지 않는 상수 제거 * feat: cmdk 적용 * feat: 현재 선택한 태그가 보이도록 변경 * feat: 비동기 호출 흉내내서 라벨 데이터 가져오기 * chore: immer 설치 * feat: tagStore CRUD 구현 * chore: lucide icon 설치 * feat: deselect button ui 추가 * feat: deselect 기능 추가 * feat: SelectedTag ui 개선 * chore: todo 주석 제거 * feat: 동일한 태그가 없을 때 생성 아이템 추가 * feat: 태그 생성 로직 구현 * chore: 폴더 변경 * feat: TagInfoPopover 간단한 UI 구현 * feat: tag update 기능 추가 * chore: tagStore 폴더 변경 * chore: @radix-ui/react-dialog 설치 * chore: showDeleteTagDialogButton 파일 변경 * feat: DeleteTagDialog 상태 관리 구현 * chore: 다음 작업에 할 Todo 내용 추가 * feat: DeleteTag 관련 컴포넌트 구현 * chore: Command.Dialog css 변경 * refactor: useEffect내 함수 기명함수로 변경 * refactor: 분리되어있던 컴포넌트 SelectedTagItem폴더로 이동 * chore: components 에서 ui로 폴더명 변경 * refactor: TagInput컴포넌트에서 TagSelectionDialog컴포넌트 분리 * refactor: TagInput에서 TagPicker로 컴포넌트명 변경 * refactor: TagAutocompleteDialog로 컴포넌트명 변경 * refactor: TagPicker css명 변경 * refactor: css classname 변경 * refactor: 분리되어있던 css 합치기 * refactor: onSelectTag함수로 반복되는 함수 호출 합침 * refactor: 문자열 상수로 변경 * chore: 주석 추가 * feat: enter키 입력시 popover 켜지게 변경 * refactor: PopoverTriggerButton으로 분리 * chore: 사용하지 않는 index.ts 제거 * chore: 폴더명 components에서 ui로 변경 * chore: 폴더명 변경 * chore: tsbuildinfo update * chore: 폴더 위치 이동 * chore: 폴더 이동 * chore: git pull frontend * chore: todo 주석 추가 * [FEAT] Drag&Drop 구현: Directory (#117) * test: mockdata 동적 생성 * chore: react-dnd, react-dnd-html5-backend 추가 * feat: dragDropManager 적용 * feat: dragDropManager 적용 * feat: Drag&Drop 시 mockData도 변경되도록 수정 * feat: treeData를 전역 상태로 관리 * design: LinkEditorSection 렌더링 요소 변경 * design: hover 시 음영 추가 * refactor: type 변경 * feat: 현재 위치에 폴더가 없으면 표시하지 않도록 변경 * fix: 아래로 이동 시 한칸씩 밀리는 버그 수정 * feat: FolderSection에 dnd 적용 * feat: LinkEditorSection 에서 DirectoryTreeSection 으로 Folder Drag and Drop 가능 * fix: DirectorySection에서 동일 부모의 자식 간 순서 변경 시 폴더를 아래쪽으로 이동할 경우 두칸씩 움직이는 문제 해결 * feat: DirectorySection에서 Folder를 이동 시 폴더 사라지는 로직 추가 * feat: LinkEditorSection에서 Pick Dnd 가능 * refactor: 중복 코드 hook으로 분리 * refactor: 이름 변경 * refactor: 이름 변경 * design: Lucid Icon 적용 * refactor: 중복 코드 제거 * chore: marged branch frontend * chore: yarn cache clean and re-installed * [FEAT] 우측으로 dnd 작업 가능 (#145) * design: theme 변경시 icon 색상도 변경되도록 수정 * feat: LinkEditorSection 상단에 Directory Name 동적 변화 * design: 선택된 항목 강조 표시 * fix: DirectorySection 내부에서 dnd 작업 시 우측에도 반영되도록 수정 * fix: DirectorySection 내부에서 dnd 작업 시 우측에도 반영되도록 수정: 순서 변경 적용 * fix: DirectorySection 내부에서 dnd 작업 시 우측에도 반영되도록 수정: 순서 변경 적용 * fix: 순서 변경 시 인덱스 오차 수정 * feat: 폴더 클릭 시 해당 폴더로 이동 * fix: 내부에 요소가 없으면 빈 화면 표시 * feat: 좌측->우측 dnd 가능 * fix: 최초 로드 시 treeApi를 받아오지 못하는 문제 해결 * �[FEAT] .env 파일 설정 및 서버와 연결 확인 (#158) * feat: 환경변수로 도메인 저장 * feat: 간단한 login 페이지 생성 및 .env파일 세팅 * �[FEAT] 크롬 익스텐션 로그인 링크 페이지 구현 (#167) * build: dev 모드, production 모드에 따라 환경변수 주입 * build: build시에 manifest.json에 환경변수 주입 * fix: mode에 따른 환경변수 주입 * fix: script 오타 수정 * chore: ky 종속성 설치 * feat: ky를 이용한 baseApi 생성 * feat: 로그인 여부 파악 후 페이지 렌더링 * chore: tsbuildinfo 삭제 * chore: 주석 제거 * feat: Text 컴포넌트 구현 * feat: Button 컴포넌트 구현 * feat: 로그인 링크 페이지 구현 * feat: 상수로 적용 * fix: 상수대신 .env 직접 적용 - 해당 코드에서 에러가 생겨서 추후 수정할 예정 * chore: 주석 추가 * [FEAT] Swagger의 api-doc을 이용한 type 생성 (#177) * feat: type 생성 * chore: root의 ts version 원상 복구 * [CI] 프론트엔드 서버 배포 스크립트 (#202) * :rocket: 프론트 서버 배포 설정 * :rocket: 프론트 브랜치와 연결 * :rocket: docker image 빌드 전 환경변수 생성(for next build) * build: 필요하지 않은 github action script 제거 * fix: cd script 원상 복구 --------- Co-authored-by: dmdgpdi <[email protected]> * [FEAT] 북마크 생성 페이지 디자인 및 태그 API 연결, (#210) * chore: 북마크 페이지 폴더 내로 이동 * feat: 북마크 페이지 기초적인 레이아웃 설정 * refactor: BookmarkHeader 컴포넌트 분리 * feat: Gap 컴포넌트 구현 * feat: Gap 컴포넌트 default값 변경 * feat: 북마크 페이지 style 분리 * feat: ogImage 가져오기 * feat: ThumbnailImage 컴포넌트 구현 * feat: 이미지 로딩 시 애니메이션 적용 * chore: 주석 제거 * refactor: ThumbnailImage 컴포넌트 수정 * feat: input tag css 적용 * feat: TagPicker tab 및 focus 애니메이션 적용 * refactor: onKeyDown 함수 뺴기 * chore: 인풋 값 확인 * feat: 위, 아래 화살표에 따라 focus를 변경하는 hook 생성 * feat: 화살표따라 탭 포커스 이동 적용 * feat: props에 따라 고정된 속성 제공 * chore: SelectedTagListLayout 폴더 이동 * feat: 공통 스타일 적용 * feat: SelectedTagList의 스타일 추가 * chore: 간단한 색 변경 * chore: 필요없는 data-desc 제거 * feat: 팝오버 버튼 tab 이동 막기, 엔터 키 제거 * chore: style 변경 * feat: 태그픽커 및 다이얼로그에 style 적용 * feat: radix-ui popover 를 floating-ui로 대체 * feat: 팝오버 버튼 디자인 구현 * feat: 태그 삭제 모달 디자인 추가 * feat: tag 목록이 길 때 스타일 변경 * �chore: 스크롤바 제거 globalStyle에 적용 * feat: 선택한 라벨 높이에 따라 commandListHeight 변경 * chore: css 제거 * feat: CommandList 로딩 화면 추가 * chore: randomcolor 라이브러리 설치 * chore: pre-commit command 수정 * fix: pre-commit command 수정 * feat: numberColor 함수 구현 및 태그 생성시 적용 * feat: randomColor style 적용 * chore: type 생성 * fix: 태그 다이얼로그에서 공백 입력시 아무것도 뜨지 않게 변경 * chore: schema를 위한 절대 경로 추가 * feat: 실제 서버의 타입으로 변경 * fix: 태그 리스트가 없을 때, Command.Empty가 보이게 조건문 변경 * fix: �적용되지 않는 함수 제거 * feat: 태그 생성 api 연결 * refactor: 태그 선택 취소 시에 id값만 이용 * feat: delete tag api 연결 * feat: updateTag api 연결 * chore: schema 타입 최신화 * fix: tagName 수정 후 enter key 입력시 모달창 생기는 버그 수정 * feat: 사용하지 않는 CurrentTabInfo 컴포넌트 삭제 * refactor: useGetTabInfo 폴더 이동 * refactor: api 적용을 위해 default value 변경 * fear: create pick api 연결 * chore: react hot toast 라이브러리 설치 * chore: 사용하지 않는 SAMPLE_DATA 제거 * feat: toast 라이브러리 적용 * feat: ApiErrorBody type 선언 * chore: todo 제거 * feat: post api 통신 에러 핸들링 추가 * feat: deleteTag optimistic update 추가 * feat: update tag optimistic update 추가 * refactor: useCalculateCommandListHeight hook으로 분리 * refactor: onSelectCreatableTag 함수 분리 * chore: 쓰지 않는 return 제거 * feat: enter key로 태그 삭제 및 취소 가능 * feat: 간단한 에러 페이지 생성 * feat: 에러 핸들링 추가 * [FEAT] sanitizeHtml에서 DOMPurify로 교체 (#213) * fix: 런타임 에러 해결(잘못된 변수 접근) (#215) * [FEAT] 크롬 익스텐션 픽 수정 기능 구현 (#229) * chore: schema 최신화 * feat: getLinkByUrl api 추가 * feat: useHasLink hook 구현 * chore: API 변경에 따른 type 최신화 * feat: CreatePickForm, UpdatePickForm 분리 * feat: chore: Pick API 변경에 따른 type 최신화 * feat: link api 삭제 * feat: getPickByUrl api 추가 * feat: useHasPick 변경 * chore: ThumbnailImage backgroundColor 변경 * feat: updateForm 구현 * feat: 로딩 상태 시의 Skeleton 구현 * feat: DeferredComponent 구현 * feat: 로딩화면 구현 * chore: 주석 제거 * [FEAT] Backend api 연결 및 ux 미세조정 (#227) * design: flex wrap 설정 * design: flex wrap 이중 줄바꿈 문제 수정 * feat: 우클릭 시 context menu 표시 * chore: 주석 제거 * chore: alt 이름 변경 * feat: treeRef 추가 * feat: mockData create 가능 * feat: api 연동: create&move * feat: api 연동: dnd move 동작 확인 * refactor: 핸들러 함수 hook으로 분리 * feat: edit ux 추가 및 arborist node outline 제거 * feat: folder rename 연결 완료 * feat: folder delete(move to recyclebin) 연결 완료 * feat: create 로직 수정 * feat: 초기 로드 시 recycleBin 생성(향후 수정 예정) * feat: Tree 컴포넌트 추가 전 커밋 * chore: popover Demo 추가 * design: 버튼 및 팝오버 디자인 수정 * feat: 휴지통 붙임:수정예정 * feat: 휴지통 숨김 설정 * design: 전체적인 디자인 미세 조정 * feat: 로그아웃 버튼 추가 및 디렉토리 조정 * feat: client 로그인 검증로직 추가 * design: 로그인 페이지 디자인 추가 * refactor: 폴더 create 로직 수정 * refactor: 폴더 create 로직 수정2 * refactor: 필요없어진 popover제거 * fix: 중첩 폴더 구조에서 폴더 생성 불가한 문제 해결 * design: 에러 토스트 메시지 추가 * refactor: 삭제 로직 수정(id 부여 방식) * feat: 휴지통에서 폴더 완전삭제 가능 * [FEAT] 익스텐션 테마 적용 (#241) * feat: theme을 techpick-shared 모노레포로 분리 * feat: theme 적용 * design: 익스텐션 테마 적용 * fix: peerDependencies제거 * design: techpick의 theme을 techpick-shared에 의존하게 변경 * feat: techpick reset.css 수정 * feat: git pull 이후 필요없는 파일 삭제 * feat: theme 동기화 * [FEAT] 카드 컴포넌트 디자인 구현 (#246) * fix: ky middleware credentials속성 올바르게 적용 * feat: teckpick-service와 동일하게 id 변경 * feat: techpick-shared의 export 추가 * feat: images모든 url을 허용 및 next.config.mjs제거 * chore: 의존성 설치 * chore: @/schema 절대 경로 추가 * chore: portalContainer id 변경 * feat: pickCard 컴포넌트 디자인 및 레이아웃 구현 * feat: TagPicker 컴포넌트 복사 * [FEAT] 버그 수정, 휴지통 복원, context menu, pr 요청사항 적용 (#247) * fix: 한글 입력시 폴더 두번 생성되는 문제 해결 * fix: 생성중인 폴더가 있을 때, 폴더 추가생성 방지로직 추가 * refactor: 폴더 위치 변경 및 Input 테마 적용 * fix: 노드 클릭 시 2개의 트리 중 한 노드만 focus되도록 수정 * refactor: 프로젝트 디렉토리 및 파일 구조 수정 * refactor: 프로젝트 디렉토리 및 파일 구조 수정2 * feat: recycleBin에서 contextmenu 사용 가능 * feat: recycleBin에서 restore 가능 * refactor: 이전 코드리뷰 comment 반영 * fix: 폴더 생성시 input이 사라지는 문제 수정 * fix: 폴더 삭제 시 우측 화면 업데이트 안되는 문제 수정 * fix: DirectorySection ui 틀어짐 수정 * feat: 휴지통 내부 dnd 가능 * fix: 좌측 디렉토리 절반만 표시되는 문제 수정 * fix: 간격 수정 * fix: 휴지통 dnd 비활성화 * fix: 생성 또는 이름변경 실패 이후 + 버튼클릭 안되는 버그 수정 * feat: 우측 folder contextMenu 이용가능 *버그 수정 필요(recycleBin menu 출력되는 문제)* * fix: 우측 contextMenu 버그 수정 * fix: 우측 context 수정중 * chore:충돌 방지용 git pull * [CI] 도커 이미지 build 관련 버그 수정 (#252) * build: Dockerfile yarn berry 적용 및 필요한 파일 추가 * chore: 주석 변경 * fix: tag 생성 연속 입력 문제 해결 (#257) * [FIX] 로그인된 상태일 때 메인 페이지로 리다이렉트 (#260) * [FEAT] unclassified 표시 가능 (#261) * feat: unclassifiedPicks api 호출 코드 추가 * feat: unclassified 표시됨 * [FEAT] PickCard API 연결 (#266) * chore: 주석 추가 * feat: PickCard 이미지 스타일 수정 * chore: 쓰지 않는 apis 폴더 삭제 * refactor: 중복된 api middleware 제거 * fix: ky middleware content-type 추가 * feat: getPick api 연결 * design: 디자인 변경 * chore: import 순서 변경 * feat: updatePick api 연결 * feat: selected Tag 태그 삭제시 상태 변경 * chore: 주석제거 --------- Co-authored-by: Jason <[email protected]> * feat: skelton 적용 (#268) * feat: skelton 적용 * feat: link 추가 및 tagPicker 동작 수정 * [FIX] 태그 생성 후 창 유지후에 수정 했을 때, 생성한게 추가가 안되는 로직 (#270) * [FEAT] pick dnd (#272) * feat: nodeApi로 변환 로직 추가 * fix: 임시 디바운싱 적용 * fix: api 교체 * fix: 간헐적으로 unclassified 안보이는 문제 수정 * feat: pick 휴지통, 복원, 삭제 api 연결완료 * fix: 이름 길어지면 ...으로 표시 * fix: 가상 미분류 폴더 렌더링 방지 처리 * fix: 버그유발 기능 비활성화 * fix: fix * fix: fix2 * [REFACTOR] 폴더구조 변경 (#308) * refactor: shared 폴더 제거 * refactor: entities/pick 폴더 제거 * refactor: entities/tag 제거 * refactor: features/tag 제거 * refactor: features/userManagement 제거 * refactor: features/themeManagement 제거 * refactor: features/nodeManagement 제거 * refactor: widgets 제거 * [REFACTOR] import 순서 변경 (#311) * chore: eslint import 순서 정리 * reafactor: import 순서 변경 * feat: 디자인 토큰 추가 * feat: 디자인 토큰 적용 * feat: �commontThemeContract 삭제 * fix: ThemeProvider 변경사항 적용 * fix: 위치 조정 * [FEAT] 디자인 토큰 추가 * [FEAT] 같은 계층일 때, 폴더 multi select 구현 (#332) * chore: dnd-kit 설치 및 tree 페이지 생성 * feat: jest 설정추가 * fix: jest monorepo별 적용 * chore: root jest config 삭제 * feat: 같은 부모 밑에서 1개씩 폴더 이동 * design: tree page margin 변경 * test: 복수의 폴더 이동 테스트코트 작성 * feat: 현재 드래그 여부 상태 zustand에 추가 * feat: 폴더 다중 선택 기능 추가 * feat: DragOverlay추가 * design: primary color로 변경 * fix: test문 it.only 제거 * refactor: dndTreeStore에 hasIndex 적용 * [FEAT] 검색창 및 리스트 로직 설계 (#333) * feat: 검색 위젯 로직 구현 * feat: 유틸리티 클래스 구현 (파싱, 필터링) * doc: 유틸리티 참고 이미지 및 설명 * feat: zustand, react query 추가 * feat: 뷰포트 리액트 컴포넌트 * refactor: esToolkit import * refactor: useViewScope 변경 * refactor: useQuery 함수명 파일명 변경 * refactor: useQuery 함수명 파일명 변경 * refactor: Util 함수 리팩토링 * [FEAT] 픽 리스트 - 사용자 설정 필터 & 뷰 템플릿 (#348) * feat: 검색 위젯 로직 구현 * feat: 유틸리티 클래스 구현 (파싱, 필터링) * doc: 유틸리티 참고 이미지 및 설명 * feat: zustand, react query 추가 * feat: 뷰포트 리액트 컴포넌트 * refactor: esToolkit import * refactor: useViewScope 변경 * refactor: useQuery 함수명 파일명 변경 * refactor: useQuery 함수명 파일명 변경 * refactor: Util 함수 리팩토링 * chore: 파일 제거 및 위치 이동 * chore: use-Immer 패키지 추가 * feat: 유틸리티 (Stream, Tokenizer) 리팩토링 및 개선 * chore: 공통 타입 추가 및 일부 변경 * feat: 태그 아이템 UI 컴포넌트 (익스텐션에서 가져옴) * feat: 최상단 컴포넌트 (뷰어) 및 상태 구현 * test: 쿼리 더미 데이터 추가 * feat: 옵션 리스트 위젯 및 상태 구현 * feat: 검색창 위젯 구현 * feat: 필터 옵션 기능 구현 * feat: 뷰 템플릿 (리스트 vs 그리드) 옵션 구현 * chore: 디렉토리 이름 변경, 기존 폴더 제거 * chore: dummy data 업데이트 * :recycle: refactor: 코드 리뷰 기반으로 리팩토링 진행 * [REFACTOR] Drag & Drop 함수 및 컴포넌트 분리 (#351) * test: moveFolder test code 삭제 * feat: mockdata 변경에 따른 로직 변경 * refactor: 중앙 스토어에서 로직 분리 * design: treePageWrapper css 변경 * feat: shift + click시에 active가 부모 폴더가 다르면 초기화 * feat: 다른 폴더간 이동 구현 * chore: 테스트코드 예제 삭제 * refactor: reorderFolderInSameParent 함수명 수정 * refactor: SelectedFolderListType으로 대체 * refactor: handleClick 함수 분리 * chore: tree 컴포넌트를 components 폴더로 이동 * [FEAT] 공통 테마에 jsdoc 추가 (#354) * [FIX] drag & drop 후 정렬 변경 (#360) * fix: drag & drop 후 정렬 변경 * refactor: isSameParentFolder parameter 변경(동일한 값) * [FEAT] 폴더 생성 UI 및 상태 관리 로직 변경 (#365) * design: 작업 전 디자인 변경 * design: CreateFolderInput 디자인 추가 * feat: 폴더 생성 UI 구현 * design: FolderTree 전체적인 레이아웃 변경 * design: 폴더 트리 디자인 개선 * feat: CreateFolderInput 생성시 focus 이동 * design: createFolderInputLayout 디자인 변경 * [FEAT] 폴더 이름 변경 UI 및 로직 구현 (#367) * feat: CreateFolderInput, FolderInput 컴포넌트로 추출 * design: 공통 테마 사이즈 추가 * chore: PORTAL_CONTAINER_ID 상수로 변경 * feat: 폴더 이름 변경 UI 및 로직 연결 * feat: 우클릭시에 포커스되는 폴더 변경 * [FEAT]: 삭제 UI 및 로직 추가 (#369) * [CI/CD] nextjs docker image 사이즈 감소 (#380) * [FEAT] Folder API 연결 (#399) * chore: api 변경에 따른 스키마 업데이트 * feat: 폴더 관련 api 타입 지정 * refactor: api 변경에 따른 타입 변환 * feat: top level error 추가 * feat: folder crud api 추가 * chore: api 변경에 따른 타입 변경 * feat: 폴더 드래그 앤 드랍 api 연결 * feat: 폴더 이름 변경 api 연결 * feat: 휴지통 이동 api 연결 * refactor: -1 매직넘버 상수로 변경 * chore: mockdata 삭제 * chore: re-resizable 의존성 설치 * faet: FolderTree 크기 조정 가능하게 변경 * chore: api 변경에 따른 타입 최신화 * feat: createFolder api 연결 * refactor: getFolders, getBasicFolders 로 함수명 변경 * reafactor: getRootFolderList로 변경 * [FEAT] 폴더 클릭에 따른 라우팅 변경 (#405) * feat: 라우팅 설정 변경 * chore: root 폴더에서 tsc 동작시 build된 파일 생성 차단 * chore: legacy 삭제 * feat: 폴더 클릭시마다 라우팅 이동 * feat: useTreeStore subscribeWithSelector 적용 * refactor: FolderInfoItem 컴포넌트 분리 * feat: url을 이용해 folder 선택하게 변경 * feat: route 경로 추가 * feat: middleware redirect url 변경 * feat: 휴지통 및 미분류 폴더 추가 * design: 최초 로딩시에 사이드바 사이즈 지정 * design: 사이드바 디자인 조정 * chore: 쓰지 않는 props 제거 * refactor: useEffect 함수명 추가 * [FEAT] 검색 위젯 기능 구현 및 미사용 필터 제거 (#410) * chore: 중간 작업 공유 * chore: 타입 변경 및 기존 SearchWidget.tsx 리팩토링 * chore: 타입 변경 및 기존 SearchWidget.tsx 리팩토링 * feat: 기존 로직에서 미사용하는 필터 제거 * feat: dndTreeStore 병합 작업 * [FEAT] 검색창 자동 완성 (#418) * refactor: PrefixTokenizer 구현 수정 * refactor: PrefixTokenizer 구현 수정 * feat: 검색 위젯 토큰화 구현 * chore: 화면 테스트를 위한 뷰어 패널 코드 수정 (반영 안될 수 있는 커밋) * feat: 토큰 검색창 CSS 설정 * chore: 일부 주석 추가 및 코드 위치 변경 * chore: yarn.lock 파일 커밋 * [FEAT] 같은 폴더 내에서 Pick Drag&Drop 구현 (#420) * chore: 백엔드 api 타입 최신화 * chore: util 스펠링 정확하게 변경 * feat: pickType 추가 * feat: getPicksByFolderId 추가 * refactor: viewTemplate 코드 변경 * refactor: 바로 호출이 아닌, useEffect 내에서 비동기함수 호출 * chore: git pull을 위한 커밋 * refactor: pickCardListViewer로 PickCard 컴포넌트 이동 * design: card link style 변경 * feat: 더블 클릭시 링크 이동 * feat: dnd가 가능한 list와 그렇지 않은 list분리 * refactor: dnd여부에 따라 PickListViewer분리 * refactor: DnDCurrentType을 dnd.type으로 이동 * refactor: 공통 utils함수로 추출 * feat: 픽에서 픽으로 이동(api 미연결) * feat: pick multi-select 구현 * feat: multi-select drag&drop 구현(api 미연결) * feat: 같은 폴더 내 픽 drag&drop api 연결 * [FIX] 깃허브 액션 API 테스트 * [FIX] 검색창 버그 수정 및 URL 업데이트 (#424) * :rotating_light: fix: useSearchParams 사용처에 <Suspence> 추가 * [DESIGN] 폴더 영역 디자인 개선 (#430) * [FEAT] 픽을 폴더로 이동하는 기능 추가 (#432) * refactor: draggable type에 따라 검증 함수 분리 * chore: store barrel export 추가 * feat: pick to folder를 위한 dnd context 생성 * fix: dnd context 변경에 따른 로직 변경 * refactor: 컴포넌트명 변경 * refactor: useGetDndContextSensor로 로직 분리 * fix: 로직에 따라 pickId 문자열 대신 정수로 수정 * feat: PickDraggableObjectType에 부모 폴더 id 추가 * feat: 드래깅하는 카드 정보 store에 추가 * feat: pick to pick 시 overlay 카드 생성 * feat: folder drag시 folder overlay 보이도록 변경 * design: 카드 드래그 시 크기 줄이기 * feat: pick to folder drag over시 폴더 색상 변경 * refactor: movePicksToEqualFolder로 함수명 변경 * feat: 휴지통 및 미분류로 픽 이동 감지 * feat: 다른 폴더로 픽 이동 로직 추가 * feat: 폴더 디테일 페이지 뷰 연결 * feat: �휴지통 페이지 카드 렌더링 * [FIX] DragOver 수정 및 휴지통 이동 로직 변경 (#441) * fix: DragOver 개선 * refactor: 백엔드 API 변경에 따른 휴지통 이동 로직 변경 * [FIX] 현재 포커스된 폴더 삭제 시에 미분류 페이지로 리다이렉트 (#446) * fix: 현재 포커스된 폴더 삭제 시에 미분류 페이지로 리다이렉트 * design: 드래그시 outline 제거 * [FEAT] 로그인 리다이렉트 URL 추가 (#450) * chore: sample 대신 관용적으로 사용되는 example로 변경 * feat: 로그인 redirect url 추가 * ci/cd: github Actions secrets 추가 및 적용 * [REFACTOR] 익스텐션 폴더 구조 변경 및 API 최신화 (#458) * feat: 익스텐션 로그인 페이지 디자인 변경 * chore: 백엔드 타입 최신화 * chore: 백엔드 타입 최신화 * refactor: type은 types폴더로 이동 * chore: 백엔드 타입 최신화 * refactor: api 호출 함수 변경 * refactor: api url 상수로 관리 * feat: barrel export에서 값과 함수 제거 * refactor: 도메인 의존성 없는 컴포넌트 lib폴더로 이동 * refactor: toast 관련 함수 lib 폴더로 이동 * refactor: store는 store폴더로 이동 * chore: 사용하지 않는 타입 제거 * refactor: util함수 util 폴더로 이동 * refactor: 페이지 폴더 제거 * refactor: 컴포넌트는 컴포넌트 폴더로 이동 * fix: returnErrorFromHTTPError에 await 문구 추가 * chore: 백엔드 api 변경에 따른 타입 변경 * [FIX] 로그인 이후 뒤로가기 시 로그인 화면으로 이동하지 못하게 수정 (#453) * [fix] 픽 검색 API 페이지네이션 적용 (#460) * chore: 무한스크롤 라이브러리 추가 * chore: 무한스크롤 라이브러리 추가 * feat: 무한 스크롤 구현 * chore: pick 조회 스토어 함수 수정 * chore: 불필요한 코드 수정 * [FEAT] radix-color 추가 (#462) * feat: radix-color 추가 * chore: radix-color 추가 변경사항 적용 * chore: route 변수 수정 * feat: breadcrumb 적용 * chore: 기타 스타일링 * chore: 입력창 스타일링 * feat: 무한 스크롤 다듬기 작업 * feat: 검색창 변수 수정 * [DESIGN] 검색 바 디자인 개선 (#463) * chore: route 변수 수정 * feat: breadcrumb 적용 * chore: 기타 스타일링 * chore: 입력창 스타일링 * feat: 무한 스크롤 다듬기 작업 * feat: 검색창 변수 수정 * fix: useSearchParams는 suspense로 반드시 감싸야 한다. --------- Co-authored-by: dmdgpdi <[email protected]> Co-authored-by: Jason <[email protected]> Co-authored-by: Jason <[email protected]> Co-authored-by: Minky <[email protected]> * [FEAT] 메모 제거, 폴더 선택 추가(API 미연결), 우클릭시 사이트 이동 (#473) * feat: 익스텐션 아이콘 추가 * feat: 로그인 로고 변경 * feat: 북마크 페이지 아이콘 변경 및 링크로 이동 * chore: 오타 수정 * feat: theme 추가 * feat: 메모 제거 * feat: 로그인 페이지 삭제 * chore: radix select 설치 * feat: 폴더 선택 select 간단한 컴포넌트 구현 * feat: createPick시에 폴더 선택 기능 구현 * feat: update시에도 폴더 선택 기능 추가(api 미연결) * feat: 크롬 익스텐션 우클릭시에 서비스 링크로 이동 * feat: 로딩 화면 추가 * [REFACTOR] 픽 리팩토링, 검색 테스트 구현 (#474) * refactor: FolderType label 수정 * refactor: 파라미터 idList -> pickIdList 명시적으로 변경 * refactor: folder 내부에 있는 pick_order 리스트에 pickId가 중복 생성되는 문제 해결 * refactor: root folder 검색 못하도록 예외 처리 * refactor: pick controller 메서드명 수정 * refactor: DB fleid 함수를 이용하여 정렬된 픽 리스트 조회할 수 있는 메서드 구현 * refactor: 픽 검색 시 폴더 리스트가 null인 경우 검증하지 않도록 변경, tag 검증 추가 * refactor: 테스트 코드 작성 * refactor: 테스트 코드 ParameterizedTest로 리팩토링 (#476) * [DESIGN] 익스텐션 디자인 변경 (#479) * chore: title 설정 * chore: 아이콘 변경 및 안쓰는 아이콘 제거 * feat: radix-ui 의존성 설치 * design: 테마 추가 * design: globalStyle a tag 제거 * design: TagPicker 디자인 변경 * refactor: numberToRandomColor 변경 * design: folder select 디자인 변경 * design: TagPicker placeholder 추가 * design: ThumbnailImage css 변경 * design: CreatePickForm 변경 * feat: BookmarkHeader 제거 * feat: useCalculateCommandListHeight 삭제 * design: 업데이트 및 로딩 화면 디자인 변경 적용 * design: 로딩 화면 변경 적용 * refactor: loginGuard 로직 변경 * feat: FolderSelect 화살표 이동 추가 * chore: 사용하지 않는 헤더 삭제 * [FIX] 픽 수정 리팩토링 및 검증로직 개선 (#477) * refactor: 불필요한 초기값 제거 * fix: 엔티티를 list로 조회시 존재하지 않는 엔티티를 조회하려고 하면 NOT_FOUND 예외 발생 * fix: pick update시 부모폴더 id도 변경 가능하도록 수정, 누락된 검증 로직 추가 * fix: 기능 변경에 의한 테스트 코드 수정 * fix: idList로 폴더 조회시 존재하지 않는 폴더id로 조회하면 예외 발생 * refactor: 파라미터명 명확하게 수정 idList -> folderIdList * [FEAT] error 메세지 전송 및 폰트 적용방식 변경 (#482) * feat: 에러 메세지 명세 * feat: error 메세지 명세 * feat: 폰트 적용 방식 변경 * chore: react-router-dom 버전 변경 v7 점진적으로 도입하는 버전이라 warning log가 떠서 변경 * feat: 폴더 응답에 생성 수정 일자 추가 (#485) * [�FEAT] 익스텐션 배포 전, 수정 (#489) * fix: 디자인 변경 * chore: 익스텐션에서 사용하지 않는 의존성 제거 * fix: 휴지통 보이지 않게 하기 * feat: 서버 에러시 toast 알림 * feat: 정상 동작 시 창닫기 * feat: error message 추가 * feat: 폴더 최신순 정렬 * design: 색 추가 및 적용 * design: 인풋 디자인 변경 * feat: font 재적용 * fix: http로 시작하지않으면 저장 안되게 수정 * fix: update시에 폴더 추가 * design: footer 디자인 추가 * docs: manifest.json description 추가 * hotfix: 익스텐션 design 변경 * fix: zip파일 제거 * [CICD] AWS 배포 CICD 구축 (#494) * refactor: ApiFolderErrorCode 오타 수정 (#468) * [REFACTOR] 픽 리팩토링, 검색 테스트 구현 (#474) * refactor: FolderType label 수정 * refactor: 파라미터 idList -> pickIdList 명시적으로 변경 * refactor: folder 내부에 있는 pick_order 리스트에 pickId가 중복 생성되는 문제 해결 * refactor: root folder 검색 못하도록 예외 처리 * refactor: pick controller 메서드명 수정 * refactor: DB fleid 함수를 이용하여 정렬된 픽 리스트 조회할 수 있는 메서드 구현 * refactor: 픽 검색 시 폴더 리스트가 null인 경우 검증하지 않도록 변경, tag 검증 추가 * refactor: 테스트 코드 작성 * refactor: 테스트 코드 ParameterizedTest로 리팩토링 (#476) * [FIX] 픽 수정 리팩토링 및 검증로직 개선 (#477) * refactor: 불필요한 초기값 제거 * fix: 엔티티를 list로 조회시 존재하지 않는 엔티티를 조회하려고 하면 NOT_FOUND 예외 발생 * fix: pick update시 부모폴더 id도 변경 가능하도록 수정, 누락된 검증 로직 추가 * fix: 기능 변경에 의한 테스트 코드 수정 * fix: idList로 폴더 조회시 존재하지 않는 폴더id로 조회하면 예외 발생 * refactor: 파라미터명 명확하게 수정 idList -> folderIdList * feat: 폴더 응답에 생성 수정 일자 추가 (#485) * cicd: aws 배포 action 추가 --------- Co-authored-by: Sangwon Yang <[email protected]> * [FEAT] 에러 요청에 대한 로깅 구현 (#481) * feat: error request logging 구현 * feat: 기존 예외처리 로직에 요청 로깅 추가 * chore: 주석 추가 * fix: 로깅 방식 변경 - application.log에 sql 로깅 제외 * fix: 누락된 로깅 로직 추가 * [fix] refetch 검색 안되는 문제 해결 (#496) * [FEAT] 픽 렌더링 카드에서 리스트 아이템으로 교체 (#501) * feat: PickRenderModeState 구현 * feat: PickRecordListLayout 컴포넌트 구현 * feat: PickCard대신 PickRecord 렌더링으로 변경 * feat: usePickRenderModeStore 의존성 제거 * �[FEAT] 폴더 export 기능 구현 (#504) * feat: 폴더 export 기능 구현 * feat: url 수정 * [DESIGN] 디자인 변경 (#500) * [FEAT] 파비콘 추가 및 title 변경 (#503) * [FEAT] 픽 제목 최대 길이 검증 및 Validation 검증 리팩토링 (#499) * refactor: 픽 제목 최대 길이 제약조건 추가 * feat: 픽 제목 최대 길이 제약조건 예외, 예외 코드 추가 * refactor: bean validation 예외 상세하게 반환하도록 수정 * refactor: tag 이동 시 리스트 길이보다 큰 인덱스로 이동 시 IndexOutOfBoundsException 발생하는 문제 해결 * fix: title이 null일 때 터지는 오류 해결 * fix: && 문법 오류 수정 * [BUG] 픽 태그 삭제 버그, 픽 수정 버그 수정 (#509) * refactor: 픽에 사용되었던 유저 태그 삭제 시 500에러 해결 * refactor: pick unique index title 제거 * refactor: 픽을 휴지통으로 이동 시 폴더 내에 있는 픽 리스트 제거 및 가독성을 위해 로직 공통 처리 * refactor: 불필요한 메서드 제거 및 메서드명 변경 * refactor: 운영 환경에서 스웨거 접근 못하도록 하는 설정 추가 * refactor: 폴더 삭제 시 픽들이 휴지통으로 이동될 때 부모 폴더의 픽 리스트 수정이 필요하지 않음. * refactor: 미분류, 휴지통 폴더에 폴더 생성하지 못하도록 변경, 에러 메세지 변경 * refactor: 메서드명 수정 * refactor: 픽 생성 시 타이틀이 없으면 터지는 예외 해결 * refactor: 데드락 문제 해결을 위해 트랜잭션 범위 최소화 * [FEAT] PickRecord 컴포넌트 구현 및 pick 수정(태그, 타이틀)기능 구현 (#513) * feat: PickRecord에서 PickListItem 분리 * r…
- Loading branch information