담배200 프로젝트 소개 및 아키텍처

초록·2023년 11월 23일
0
post-thumbnail

담배200 : 공동 편집과 권한 관리를 지원하는 담배 검수 도구

A4 - 26 (2)

편의점에서 담배 재고를 쉽게 검수하기 위해 제작된 웹 서비스입니다.

매장 별로 '담배 목록'을 만들 수 있고 이를 편집함으로서 담배를 검수합니다.

담배 목록은 다른 사람들과 공유가 가능한데, 각 목록 생성자가 접근 권한을 관리하며, 소켓 통신을 활용해 실시간 공동 편집을 지원합니다.

담배목록이 적힌 스프레드시트를 매장별로 공유해 동시편집하는 것과 비슷합니다.

저처럼 담배검수가 귀찮은 편돌이가 많을 것 같아 만들었습니다.

🔗 https://github.com/leehyeonmin34/dambae200



문제점 & 아이디어

Frame 1153




제공 기능

🔗 UI & 작동 영상 + 기획 보러가기

  • 담배 목록
    • 담배 목록 생성/수정/삭제
    • 담배 추가/수정/삭제
    • 담배 순서 조정
    • 담배 목록 내 검색
  • 동시 편집
    • 담배 목록 실시간 동시 편집 (구글 스프레드시트와 유사)
    • 목록 접근 권한 관리 (요청/허가/비허가/관리자 권한 인계)
  • 그 외 기능
    • 로그인, 비밀번호 찾기
    • 알림 (Pageable 조회)
    • 설정 (개인정보 수정)
    • 업무 꿀팁 컨텐츠

프로젝트의 주요 관심사

  • 실제 서비스 가능한 완성도로 서버-클라이언트 구현(API, UI, 통신 규약, 기능성)
  • 소켓 통신을 통한 동시 편집 구현
  • 캐시, DB 통신 최소화를 통한 성능 최적화
  • 서버 확장, 대용량 트래픽과 운영을 고려한 방식
  • 성능테스트를 통한 튜닝
  • 로직이 잘 보이고 확장, 유지보수하기 좋은 코드

사용 기술

  • Spring Boot
  • Spring Data JPA
  • MySQL
  • Redis
  • nginx
  • Stomp
  • Docker
  • Jenkins
  • Naver Cloud Platform

프로젝트 구조

  • Naver Cloud Platform의 서버로 구성되어 있습니다.
  • github hook을 받아 Jenkins에서 CI/CD를 진행합니다.
  • Jenkins측에서 Dockerhub에 이미지를 push하고, 앱서버 측에서 이미지를 pull합니다.
  • Blue-green 방식으로 무중단 배포됩니다.
  • 사용자의 요청은 nginx에 의해 프론트엔드 리소스와 api요청을 분기 처리됩니다.
  • WAS는 3개 서버로 운용됩니다.
  • DB는 Primary-Slave 구조의 2개 서버로 운용됩니다.
스크린샷 2023-10-04 오후 10 24 20

ERD

스크린샷 2023-02-11 오후 2 34 12

프론트

UI는 실사용 시 마주할 수 있는 다양한 시나리오에 대응하면서, 다양한 해상도에서 일관되게 작동되도록 구현되었습니다.

Frame 1026

깃허브

https://github.com/leehyeonmin34/dambae200

profile
몰입하고 성장하는 삶을 동경합니다

0개의 댓글