Skip to content

sangjin6439/Ollsy

Repository files navigation

Ollsy

남성전용 쇼핑몰 사이트 ‘Ollsy’를 개발하는 '개인 프로젝트'

프론트엔드 부분은 별도의 프레임워크 없이 HTML, CSS, JS로 구현, 백엔드에 초점을 맞춰 백엔드 개발에 주력

단순 기능 구현이 아닌 성능, 동시성, 코드의 재사용성 유지보수를 고려하여 실제 서비스시 생길 문제에 초점을 두고 개발

📚서비스 UI

Image Image Image Image Image

📘주요 기능

사용자

  1. 로그인/ 로그아웃
  2. 회원정보 조회/ 수정(닉네임)
  3. 상품조회
  4. 상품 정렬(신상품 순, 카테고리 별)
  5. 장바구니 추가/ 삭제
  6. 주문
  7. 주문 조회/ 취소

관리자

  1. 이미지 업로드/ 삭제
  2. 상품 업로드/ 수정/ 삭제
  3. 카테고리 생성/ 수정/ 삭제

📕 Architecture

Image

⌗ERD

Image

📗사용 기술 및 개발 환경

FrontEnd

BackEnd

DB

AWS, ETC

💪 트러블 슈팅 및 성능 개선

https://www.notion.so/devblog-sj/Ollsy-2162c0261ba780de8daee2cbeb83c0f4 (트러블 슈팅 및 성능 개선 모음)

데이터베이스 락을 통한 동시성 제어
인덱스를 활용한 병목지점 DB 해결 및 성능 개선
Image

인덱스 생성 후 부하테스트 결과

Image

기존 Throughput 1.7TPS Latency가 10초 → Throughput 6.6TPS Latency가 3초(인덱스 활용)

Image

임의로 개선하는게 아니라 병목지점이라고 판단이 서면 개선해야 한다.

인덱스를 사용한 이유:

인덱스를 사용하면 읽기의 성능이 좋아지지만 많은 인덱스를 가진다면 해당 테이블의 쓰기/ 수정의 성능 저하가 발생하기 때문에 쇼핑몰 특성상 쓰기/ 수정보다 읽기가 많다. 또한 트래픽이 가장 많이 몰릴 메인페이지의 API에 사용되는 테이블에 인덱스를 활용하여 성능을 개선했다.

N+1 문제 테스트 및 개선

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors