step3-kakao-tech-campus / team5_be Goto Github PK
View Code? Open in Web Editor NEW투명한 가격으로 웨딩 플래너와 예비 부부를 매칭하다, `순수 웨딩`
License: MIT License
투명한 가격으로 웨딩 플래너와 예비 부부를 매칭하다, `순수 웨딩`
License: MIT License
코드 리팩토링
현재 포트폴리오 등록 및 수정 기능에 썸네일 항목이 누락되어 있는 상태이므로 수정이 필요함
- 포트폴리오 등록 및 수정 기능
-> 레포지토리 & 기능 단위 테스트 및 통합 테스트 코드 구현
포트폴리오 리스트 조회 방식을 기존 페이지 기반에서 커서 기반 페이지네이션으로 변경
테스트 코드 보충
멘토 님께 제안받은 개선점들을 수정 및 보완
유저와 관련된 기능 추가
user/info
api 구현user/upgrade
api 구현매칭내역 관련 Update, Delete 기능 구현
포트폴리오 등록 및 수정 서비스 로직에서 발생할 수 있는 예외 상황들을
파악하고 해당 상황들을 핸들링 할 수 있는 예외 처리 코드 추가
포트폴리오 조회 쿼리를 요청하면 유저 정보 검색으로 인해 추가 쿼리 발생
포트폴리오 리스트 조회 시, 플래너 이름과 지역으로 필터링한 결과를 보여주는 기능 구현
토큰 관련 오류가 발생하면 에러 메시지가 중복되어 출력되는 문제 발생
이미지 저장 방식이 변경됨에 따라 이미지 엔티티가 수정될 필요가 있을 듯함
추가로 엔티티 코드를 구현할 때 컬럼에 NotNull 등의 제약조건을 고려하지 않고
일단 그냥 컬럼만 추가했기 때문에 필요한 제약조건들을 고려해서 수정할 필요가 있음
포트폴리오 수정 하기
멘토님 피드백 이후 로그인 및 회원가입 부분 리팩토링
4주차 Code Review를 기반으로 한 리팩토링 작업
Component
Annotation이 붙어있는 JWTProvider의 static 변수, 메서드를 없애고 Bean으로 주입받아 사용하도록 변경
견적서 전체 확정 시 포트폴리오의 거래 내역 평균, 최소, 최대 가격을 업데이트 한다
유저 업그레이드시 body가 잘못된 경우 error response를 보내주기 (현재는 success responseBody에 "fail"을 담음
멘토님 코드 리뷰 기반 리팩토링
JWTProvider
에서 메서드 non-static으로 변경GlobalExceptionHandler
에서 예외 처리 메서드 중복 줄이기FilterResponseUtils
의 메서드 일반화하기
- 회원 탈퇴 기능 모두 완성
현재 포트폴리오 업데이트 관련 기능들을 포트폴리오 엔티티에 컬럼별로 update 메서드를 추가해서 변경하고 있는 방식이 불변 객체 패턴에 어긋나므로, 변경이 필요한 경우 새 객체를 생성하는 방식으로 변경
채팅방 생성시 chatId 반환
6주차 코드리뷰 기반 리팩토링
포트폴리오 상세 조회 메서드에 거래내역 조회 부분 추가
견적서 전체 확정 시에 해당 플래너의 포트폴리오가 없다면 에러 발생하는 부분 해결
플래너 이름을 이용하여 검색을 진행하면 데이터베이스 오류 발생
포트폴리오 검색 시, 견적가를 이용한 검색 구현
매칭 내역 수정 및 삭제 기능 테스트 코드 추가
견적서 등록, 1개 확정 시 매칭 내역에서 가격 업데이트가 안되는 문제
Chat과 Match 엔티티 분리
견적서 기능 구현 마무리하기
보안 강화를 위한 refresh token 구현
포트폴리오 리스트 조회 시 탈퇴한 플래너의 포트폴리오는 조회되지 않도록 수정
포트폴리오 거래내역의 평균 가격 계산 시 divide by zero 문제 해결
탈퇴한 플래너의 포트폴리오 id로 조회 시 예외 처리
포트폴리오와 썸네일 이미지를 조회할 때, 순서 불일치 문제가 발생합니다.
멤버십에 가입한 유저들에게만 해당 플래너의 이전 거래 내역 정보가 보여질 수 있도록
- 포트폴리오 등록에서 전달받은 이미지를 서버에 (.jpg)로 저장하는 현재 방식은
이미지가 추가될 때마다 매번 다시 배포해야 하는 단점이 존재함.- 따라서 이미지 파일을 base62의 문자열 데이터로 인코딩 하는 등
별도의 방식을 통해 이미지 저장에 대해서 고민해볼 필요가 있음
견적서 테스트 코드 추가
포트폴리오 거래내역 조회 부분 테스트 코드 작성 필요
user와 payment 를 분리하기
포트폴리오에 대한 읽기, 삭제 테스트 코드 작성
- 회원 탈퇴 구현 (플래너, 예비 부부)
로그인 토큰과 관련된 오류의 경우, 응답 양식 변경
견적서 등록 및 조회 기능 구현
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.