/////
Search
Duplicate

24년 2월 21일 수요일

날짜
2024/02/21

오프셋 기반 페이지네이션 개선

문제

페이징처리가 되어있어야할 기능이 처리가 되어있지 않음
페이징 처리가 필요한 기능과 필요하지 않은 기능이 명세되어있지 않음
오프셋 기반의 단점으로 인해 커서 기반으로 개선해야하는 상황 발생
오프셋 기반의 단점
페이징 처리를 위해 모든 데이터를 탐색해야함
페이징 조회 와중 데이터가 추가/삭제되면 데이터 중복 및 안 보이는 이슈 발생
커서 기반으로 변경 시, 커서고유값을 프론트에서 백엔드로 알려주어야 하는 이슈 발생
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
황규정 :
정확히 정하기는 어려움. 그렇게 급하다고 생각
제대로 다시 공부해서 이력서에 녹이는 것만 해도 ,,,
기존 기술 회고록(feat. 근거) 에 각자 공부 녹이기
재윤 :
시간 널널
규빈 :
오전 : 고도화 공부
오후 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 띄우고 로컬에서 확인해보기
자소서 쓰기 ← 피드백
밀린 줌 녹화 보기..
규빈님
서버 상태 관리 공부
프로젝트 파악