Skip to content

downfa11/market-service

Repository files navigation

market-service (작성중)


[]


사용자들간의 중고 거래를 돕는 플랫폼

AWS RD에서 비용 문제로 Docker-compose로 local 환경에서 진행중

맡은 업무 : 백엔드 전반적인 구현과 성능 테스트, 배포
개발 기간 : 2024.03.04 ~ 2024.03.26

이후로도 꾸준히 성능 향상을 위한 시도나 개선하기 위해 노력하고 있습니다.


기술 스택

SpringBoot:3.1.8-SNAPSHOT, Spring Web MVC, Spring data JPA, Redis(Lettuce)
lombok, thymeleaf, jjwt, swagger:2.0.2, json-simple:1.1.1, cloud-aws:2.2.6, Vault:3.0.2, querydsl:5.0.0



구현한 기능

  • 네이버와 카카오 OAuth 로그인

  • Vault 라이브러리와 JWT를 이용한 인가(Authentication)으로 보안 요소 구성

  • @Numberic 커스텀 어노테이션으로 sql injection을 대비하는 최소한의 시큐어 코딩

  • aws S3를 이용해서 이미지나 파일을 첨부할 수 있는 게시판과 댓글 CRUD를 구현

  • 게시판 유형에 따라서 필터링[SortStatus, region, category]한 검색 결과를 목록으로 표시

  • Redis의 Caching으로 게시글 목록이나 검색 결과, 게시물 내용 요청 작업 수행 속도 상승

  • Redis의 Pub/sub으로 사용자(판매자와 구매 희망자)간의 1:1 채팅 구현

    • 임시로 Listener를 통해 백엔드 단에서 채팅 내역을 표시
    • 대화방의 채팅 기록은 Stream 구조로 시간순으로 기록



QueryDSL을 이용한 페이징으로 성능을 개선

Entity보다 DTO를 조회하는 방식의 장점을 이해하고 OneToOne N+1 문제를 해결

게시글 리스트를 불러올때 불필요한 컬럼 조회를 줄여 성능을 개선

4000개의 데이터를 두고, 200명의 사용자가 1초동안 5번씩 게시판의 목록을 조회하는 요청

상황별로 Latency는 50%~70% 정도 줄였고, throughput는 75%~130%까지 개선

캐싱된 데이터에 대한 성능 비교 캐시가 없는 경우의 성능 비교
평균 반응 416ms → 110ms 981ms → 441ms
throughput 307.9/sec → 701.3/sec 168.3/sec→ 295.2/sec



About

토이프로젝트 - 중고 거래 플랫폼

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published