Skip to content

f-lab-edu/givemeticon

Repository files navigation

🎁 givemeticon

새로운 소비 트렌드를 반영하여 낭비를 최소화하는 기프티콘 전문 중고거래 플랫폼으로, 사용하지 않거나 만료가 임박한 기프티콘을 판매하고 저렴한 가격으로 구매할 수 있는 환경을 제공하는 서비스 플랫폼

🔧 사용 및 기술환경




📖 프로토타입


🤳 로그인 및 회원 정보
로그인 화면 회원 가입 화면 비밀번호 찾기 비밀번호 변경하기
🤳 상품 탐색
회원 가입 화면 비밀번호 찾기 비밀번호 변경하기
🤳 상품 구매
상품 구매 화면 유효기간 선택 구매 완료 구매 상세 구매 확정 구매콘함(보유) 구매콘함(사용 및 만료)
🤳 상품 판매
판매 제품 선택 바코드 및 유효기간 인증 총 판매 금액 판매 내역
🤳 부가 기능
찜 목록 알림

전체 프로토타입 -> 카카오 오븐 UI

📖 기능 목록 (설명 요약)


  • 판매
    • 등록 / 삭제
    • 목록 / 총 판매 금액 조회
  • 구매
    • 가격별 / 유효기간 별 조회
    • 구매 내역 조회(최근 구매순 || 만료 임박순)
    • 구매하기
    • 구매 확정
  • 회원
    • 회원 가입 / 로그인 / 로그아웃
    • OAuth 로그인 (카카오﹒네이버)
    • 비밀번호 찾기 및 변경
    • 상품 좋아요
    • 계좌 등록

자세한 UseCase 👉 Use Case (wiki)

🌐 ERD

img.png

🌐 서버 아키텍처

🤔 프로젝트를 진행하며 겪은 고민﹒배운점

  • GitHub Actions을 활용하여 CI/CD 구축
  • Git Submodule을 도입하여환경 변수 관리의 유지보수성 향상 및 보안 강화
  • 외부 호출 라이브러리 비교 및 적용 👉 해당 블로그
  • Spring Security를 사용하지 않고 직접 OAuth 로그인을 구현하여 유연성, 테스트 용이성 향상 👉 구현 과정
  • MyBatis에서 insert 성공 시 1을 반환하는데, 자동증가된 id를 얻기 위해 생성된 객체애서 반환한 id를 효과적으로 활용 👉 해당 블로그
  • 이메일 인증이 5초 이상 소요되는 문제를 해결하기 위해 인증과 회원가입을 분리하고, 인증 기능을 비동기로 개선하여 신속한 회원가입 가능
  • 좋아요 기능에 대한 두 가지 고민
    • 좋아요와 취소 기능을 하나의 메서드(토글 형식)에서 두 메서드로 분리하여 코드의 가독성, 유지보수성 그리고 테스트 용이성 증가
    • 좋아요 취소 시 isFavorite 칼럼을 false로 변경하는 대신 데이터를 삭제하여 데이터 일관성을 유지하며 불필요한 보관을 생략함으로써 DB 용량 절약
  • 데이터 액세스 계층에 맞는 레이어드(계층) 비교 및 적용 👉 해당 블로그

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages