/SamsungSignature-Backend-SignatureService

삼성월렛을 활용한 대리결제 모바일 페이 서비스로, 2024 Samsung Software Academy For Youth 10기 자율 프로젝트 일환으로 진행되었습니다.

Primary LanguageJava

logo

삼성페이를 활용한 대리결제 모바일 결제 서비스

NGINX Spring Boot Node.js Npm JVM

개요비디오주요 기능서비스 아키텍쳐명세서사용 기술 설명개발 환경협업 문화팀원소개노션

📢 본 프로젝트는 2024 Samsung Software Academy For Youth 10기 자율 프로젝트 일환으로 진행되었습니다.

💳 개요

혹시 '내가 살게'라고 해놓고 결제 했을 때 돈이 부족했던 적이 있나요?
주위 사람들 모르게 SamSung SIGNATURE를 사용해 다른 사람에게 카드를 빌려 사용해보세요!

SamSung SIGNATURE 은 삼성페이를 활용한 대리결제 서비스로,
실물 카드가 없어도 결제 승인 버튼 하나만으로 간편하고, 안전하게 다른 사람이 결제할 수 있는 권한을 부여할 수 있습니다.
아이들의 심부름, 법인 카드 발급과 같은 상황에서 손쉽고, 안전하게 대리 결제를 진행해보세요!

개발기간

2024.04.08 ~ 2024.05.24 (7주)

💳 비디오

💳 주요 기능


시그니처 카드 등록


대리 결제 시 사용할 시그니처 카드를 삼성 월렛에 등록할 수 있습니다.


대리 결제 요청


사용자의 친구에게 대리 결제 요청을 할 수 있습니다.

  • 일회성 대리 결제 요청 시, 결제 금액, 상품명, 상품 사진과 같은 다양한 결제 조건을 작성하여 요청서를 보낼 수 있습니다.


기간제 대리 결제 카드 발급


결제 금액, 카드 사용 기간과 같은 다양한 결제 조건을 작성하여 카드를 발급할 수 있습니다.

  • 같은 조건으로 한번에 N명의 사용자들에게 카드를 발급해줄 수 있습니다. (ex. 법인 카드)


요청 상태 조회


사용자가 요청을 보낸 후, 요청 상태를 실시간으로 조회할 수 있습니다.

  • ‘확인 전’, ‘요청서 조회 중’, ‘대리 결제 카드 선택 중’, ‘승인’, ‘거절’ 과 같은 자세한 요청 상태를 조회할 수 있습니다.


대리 결제 승인 및 거절


대리 결제 요청서를 확인한 후 승인 또는 거절할 수 있습니다.

  • 요청 승인 시, 삼성 월렛에 등록된 카드를 선택하여 빌려줄 수 있습니다.


대리 결제 요청 알림


  • 대리 결제 요청 시, 푸시 알림을 통해 해당 요청서를 확인할 수 있습니다.
  • 대리 결제 요청 상태 변경 시, 푸시 알림을 통해 해당 요청 상태를 확인할 수 있습니다.


대리 결제


빌린 카드를 선택한 후 삼성 페이에 있는 시그니처 카드로 결제를 진행할 수 있습니다.

  • 대리 결제 요청 조건( 제한 금액, 결제 상품 종류 , 기한 등 )에 부합하지 않으면 결제가 불가합니다.


빌려준 카드 관리


친구에게 빌려준 카드 목록을 조회하고 관리할 수 있습니다.

  • 대리 결제를 승인했더라도 해당 요청에 등록된 카드 사용을 ON/OFF 할 수 있습니다.


시그니처 히스토리 내역


대리 결제 요청 및 승인 내역을 확인할 수 있습니다.



친구 목록 동기화


사용자의 전화번호부에 등록된 친구 목록 중 시그니처 앱에 가입된 사용자는 자동으로 친구로 등록됩니다.


💳 서비스 아키텍쳐

서비스아키텍쳐

💳 명세서

📃 ERD image

📃 API 명세 바로가기

💳 사용 기술 설명

Back-End

하이브리드 암호 시스템(Hybrid Crypto System) 활용

  • 다른 사람에게 결제 권한을 안전하게 넘겨주기 위해 대칭키 암호와 공개키 암호를 결합한 하이브리드 암호 시스템을 활용하여 보안을 높였습니다.
  • 공개키 암호로는 RSA, 대칭키 암호로는 AES를 사용하여 암호화 하였습니다.

    하이브리드 암호시스템

JitPack을 사용한 공통 라이브러리 배포

  • 서비스마다 공통된 Reponse 형식을 통일 및 중복 코드를 최소화하기 위해 JitPack으로 배포된 외부 라이브러리 사용하였습니다.

    jitpack

Front-End

MSW를 활용하여 API mocking

  • 목 서비스를 활용하여 백엔드와 api 통신을 하기 전 가상의 데이터로 api 통신을 완료한 후 실제 서버에 적용하는 방식을 사용했습니다.

    MSW를 이용한 API 모킹

Redux toolkit과 Tanstack Query를 이용한 데이터 상태 관리

  • Redux toolkit을 이용해서 전역 데이터를 관리하였습니다.

    Redux를 이용한 상태관리

  • Tanstack Query를 이용해서 API 통신 데이터의 캐싱과 통신 상태 관리를 하였습니다.

    Tanstack Query를 이용한 상태관리

💳 개발 환경

📍Back-End

📍Front-End

📍Infra

💳 협업 문화

✨ 17시 TIL 시간을 가져 서로의 Trouble Shooting 과정 공유

✨ GitLab Merge 시 템플릿을 통해 구현한 로직 서술 및 코드 리뷰 진행

✨ Git Convention을 통해 커밋 메세지, PR 제목 통일화

✨ Notion을 활용한 문서화 (회의록 및 API 명세서, 요구사항 명세서, TIL 작성)

✨ Jira를 활용한 이슈 관리

✨ MatterMost와 GitLab, Jira 연동을 통해 프로젝트 현황 알림

✨ 약속의 3시! 다같이 산책하며 리프레쉬하는 시간 가지기

💳 팀원 소개

김태규
LEAD
FRONT-END
김미서
BACK-END
남희수
BACK-END
박주현
FRONT-END
차민재
FRONT-END
최준호
BACK-END
INFRA