오프셋 기반 페이지네이션 개선
문제
•
페이징처리가 되어있어야할 기능이 처리가 되어있지 않음
◦
페이징 처리가 필요한 기능과 필요하지 않은 기능이 명세되어있지 않음
•
오프셋 기반의 단점으로 인해 커서 기반으로 개선해야하는 상황 발생
◦
오프셋 기반의 단점
▪
페이징 처리를 위해 모든 데이터를 탐색해야함
▪
페이징 조회 와중 데이터가 추가/삭제되면 데이터 중복 및 안 보이는 이슈 발생
◦
커서 기반으로 변경 시, 커서고유값을 프론트에서 백엔드로 알려주어야 하는 이슈 발생
▪
limit (페이지크기)
▪
nextToken (고유id)
•
커서 기반으로 리팩토링하거나 기능 추가 시, 테스트 코드가 변경됨
해결방안
•
두 가지를 해결하기로 함
◦
페이징 미구현되어있는 기능을 페이징 기능을 추가
◦
오프셋 -> 커서 리팩토링
•
페이징 처리해야하는 기능을 명세화하자
◦
CouponController
▪
사용가능한 쿠폰 조회
▪
사용완료한 쿠폰 조회
◦
ProductLikeController
▪
관심상품 조회 요청
•
ProductLikeController.productLikes()
◦
productLikeCommandService.productLikes(userDetails.getUser(), pageable);
◦
ProductQueryController
▪
상품 전체 조회 // [캐싱처리] // 무한스크롤
▪
상품 상세 조회
▪
상품 체결내역 조회
•
오히려 기간 조건값을 넣어야할 것 같음
▪
판매 입찰가 조회
•
ProductQueryController.findAllBuyBidPrices()
◦
BuyOrderQueryProvider.findAllBuyBidsOf(productId, pageable);
▪
BuyQueryService.findAllBuyBidsOf(Product product, Pageable pageable)
▪
구매 입찰가 조회
•
ProductQueryController.findAllSellBidPrices()
◦
sellOrderQueryProvider.findAllSellBidsOf(productId,pageable);
▪
BuyQueryService.findAllBuyBidsOf(Product product, Pageable pageable)
◦
UserBoughtHistroyController
▪
구매자 구매완료내역 조회
▪
구매자 진행 중인 구매입찰 조회
◦
UserSellHistroyController
▪
판매자 판매내역 조회
▪
판매자 진행 중인 판매입찰 조회
•
어떻게 커서 기반으로 리팩토링할지는 재윤님과 이야기해보자
◦
현재 어떻게 처리되고 있는지
◦
아래 값을 어떻게 처리할 수 있을지
▪
limit (페이지크기)
▪
nextToken (고유id)
위 파라미터값은 프론트에서 던져줄 수 있음!
◦
(추가질문) 어떻게 로컬에서 프론트를 돌릴 수 있나용?
다음을 사용
•
nodejs.org 에 들어가서 LTS 버전 설치
•
front end 코드를 내려받는다.
•
package.json 확인
◦
nodejs 에 대한 config 파일
◦
npm install을 사용해서 설치
•
npm run dev을 명령
•
localhost:5173 에 접속
*좀 이상하다 싶으면 node_modules 를 삭제하고 다시 다운로드
•
커서 기반으로 변경 시, 변경되는 기능에 따라 테스트 코드 변경하기로 함
Gream 추가여행기의 방향성
문제
•
앞으로의 방향성,,,?
•
지금 필요한 공부는,,,
•
필요한 공부에 대한 시간배분은,,?
•
프론트 개발자가 필요하진 않을까 ?
•
고도화 목표,,?
해결방안
•
앞으로의 방향성,,,?
◦
(전 인원) 기존기술 공부 및 기술 고도화
•
지금 필요한 공부는,,,
◦
기존에 쓰인 기술 공부 + 고도화
◦
면접 공부 (기술면접,,등등)
◦
알고리즘 공부
•
필요한 공부에 대한 시간배분은,,?
데일리 미팅시간 : 오전 11시
◦
임지훈 :
▪
알고리즘 3~4H
▪
면접 공부 2~3H
▪
이외 시간은 고도화 공부 6~7H
◦
◦
재윤 :
▪
시간 널널
◦
규빈 :
▪
오전 : 고도화 공부
▪
오후 1시 ~ 3시 : 알고리즘 풀이
▪
오후 3시 ~ 6시 : 강의 , 면접대비 등등
▪
7시 ~ : 고도화 공부
•
프론트 개발자가 필요하진 않을까 ?
◦
Github 만 훑을 정도면 백엔드만 수정해서 포스트맨으로 테스트해보면 굳이 프론트가 필요없지 않을까
◦
기능 향상이 목표이므로 프론트 코드 수정/추가가 필요하지는 않을듯
•
고도화 목표,,?
우선순위(상)
•
기존에 기술 설명과 근거 제시
우선순위(중)
•
CI / CD 재구축 ⇒ 여러 회사에서 요구, devops 가 아니더라도 기본적으로
•
로깅 / 모니터링 ⇒ 100% 실서비스 에러 포인트 불가능 (docker log 옛날 log 삭제됨)
•
성능 향상 (Elasticsearch vs DB 인덱싱 vs 캐싱) ⇒ 캐싱처리 중요한 내용
•
보안성 향상 (redis&rdb 비밀번호, 인바운드 규칙, CORS, SSL 공부 VPC 분리, 데이터 암호화)
우선순위(하)
•
알림 기능 추가 (Mail, SMS)
•
타 페이먼츠 추가 (KakaoPay, ,,,)
•
SonarQube 붙여보기
•
매일 개발하되, 일주일 단위로 세션식 기술/근거 설명
◦
기술 설명 세션 3/4 오전 11시
2/27 까지 뭘 해올까?
문제
•
단기 휴가(지훈 : 2/23~27) 로 인해 2/27에 다시 모이기로 함
•
2/27 까지 뭘 각자 해올까?
해결방안
•
재윤님
◦
맡으신 부분 기술설명 노션페이지 작성
◦
이력서 쓰기 ← 피드백
◦
밀린 줌 녹화 보기..
•
지훈님
◦
Provider Layer 메소드 분리
◦
@Retryable 을 사용한 재시도 처리 공부
▪
재시도 처리 대상
•
토스페이
•
비관적 락을 사용
▪
재시도 처리 실패 이후에 대한 처리
•
규정님
◦
동시성 이슈 공부
◦
Docker 에 Redis 띄우고 로컬에서 확인해보기
◦
자소서 쓰기 ← 피드백
◦
밀린 줌 녹화 보기..
•
규빈님
◦
서버 상태 관리 공부
◦
프로젝트 파악