결제 연동을 하기 위해서는 가장 간단한 방법으로 포트원 API를 이용하는 것이다. 각 PG사에서 제공하는 API를 이용하여 개발해야 하고 각 PG사마다 제공하는 API에 맞게 개발을 해야 하는데 포트원 API를 사용하면 모든 PG사와 결제수단을 쉽게 이용할 수 있다. 그리고 테스트 연동도 제공한다. 테스트 연동을 하면 자정 전에 결제 취소가 자동으로 된다. PG는 Payment Gateway 약자로 거래 및 결제를 도와주는 결제 대행사이다. 포트원은 모든 PG 모아서 한 번에 제공해 준다. 포트원 API 결제 프로세스결제 프로세스는 간단하다. 구매 페이지에서 결제창을 호출하고 PG사에 결제 인증을 요청한 다음 PG사에서 받은 결제 키 전달받는다. 그리고 PG사에 결제 요청을 하고 카드사에 결제 요청을..
Vault를 적용하게된 계기는 application.yml 파일에 DB접속 URL 등 다양한 개인정보들이 git에 노출되는것이 문제여서 적용하게 되었다. 기존에는 Jasypt 를 이용해서 암호화 하였는데 이것 역시 secret 키값이 프로젝트 코드속에 있어서 마음만 먹으면 secret 키값을 알아내서 암호화를 풀수 있다.Vault는 분산시스템에서 사용되고 시크릿한 정보들을 스프링 클라우드에서 데이터를 가져온다. 지금 프로젝트에서는 분산 시스템이 아니지만 나중에 분산시스템으로 변경 했을때 사용될수 있을것 같아서 미리 도입해 보았다. 그리고 환경변수에 값을 인입하는 방법도 있지만 그 많은 개인정보들을 환경변수에서 관리하면 데이터들이 늘어날수록 관리의 복잡성이 늘어나서 한계가 있다.환경변수에는 비밀정보가 아닌..
회원가입을 하기 위해서 3가지 흐름이 있다. 회원가입 로직1. 회원가입시 입력한 인증번호 확인2. member 테이블에 회원정보 저장3. account 테이블에 회원 인증정보 저장 위 로직 설명account 테이블이 따로 있는 이유는 회원 종류가 늘어날때 회원 종류의 테이블을 모두 돌아야 해서 회원 종류의 확장을 고려해 account 인증 테이블을 추가하였다.member테이블에 먼저 저장하는 이유는 member 테이블에 있는 전화번호 등 유효성검사를 하고 member 엔티티가 저장되고 생성된 id 값을 account 테이블에 넣기 위해서이다. [기존 코드]기존코드에서는 아래 코드처럼 Service 하나에서 위 로직을 모두 넣었다. @Transactionaloverride fun signUp(creat..