SlideShare a Scribd company logo
DV 환경에서 PG 연동하기
2015년 11월 19일, '우리 안의 소리'
한종원 (addnull@gmail.com)
원래는...
• 원래 주제는 'PG 해킹하기'
• 하지만.. 실패?!? 아직 진행중?!?
• 현재까지 진행 내용: "DV 환경 구축 완료 및 PG 연동 완료"
• 주제 변경: 'DV환경에서 PG 연동하기'
3
발표 내용
• DV 환경이란 무엇인가?
• PG 란 무엇인가?
• DV 환경에서 PG 연동을 위한 요구사항 정리 (4가지)
• 요구사항을 만족하는 환경 구축
4
DV 환경이란?
DV 환경이란?
• 개발자 1인 혼자 사용하는 별도의 격리된 환경
• 가장 불안정한(unstable) code가 실행되는 환경
• 사용자(개발자)가 직접 관리(유지 보수)해야한다.
6
개발에서 운영까지 Phase
• 최소 3 phase로 나눔: DV / QA / OP
7
PG 란?
PG 란?
• Payment Gate: 전자 지급 결제 대행 서비스
• PG사는 주요 신용카드사, 은행, 통신사 등과 미리 계약이 되
어있다.
• 사용자는 PG사와 계약만 하면, 다양한 결제 수단(신용카드,
계좌이체, 에스크로, 모바일결제...)을 사용할 수 있다.
• 민감한 정보(신용카드 번호 등) 관리에 대한 부담이 줄어든
다.
9
PG 화면 예시
• PG를 사용한 경우(좌)와 아닌 경우(우)
10
4가지 요구 사항
요구 사항 1
• DV 환경 전체를 local(laptop/desktop)에 구축
• 비용 절감을 위해 AWS 나 IDC server는 사용하지 않음
• 단, client(iOS app)는 실제 device(iPhone)에서 실행
되어야한다.
12
요구 사항 2
• Provisioning 과정이 단순하고 빨라서 반복하기 쉬워야한
다.
• (re)Provisioning은 개발 과정에서 생기는 DV 환경의
엔트로피를 해결하기 위한 가장 확실한 방법
• 하지만, (re)provisioining이 어렵고 오래걸리면 개발자
들이 하기를 꺼려한다.
13
"시간은 금이야, 친구!"
요구 사항 3
• Python으로 작성된 backend API 서버에 PG사의
module을 연동한다.
• PG사에서 지원하는 PL은 ASP, JSP, PHP 뿐이다.
• PG사의 API spec 문서가 대외비에다가 실제 동작 내용
과 다소 상이하다.
15
요구 사항 4
• PG사에서 지원하는 결제 기능 중에 "정기 과금"만 사용한다.
16
요구 사항 (summary)
• DV 환경 전체를 local(laptop/desktop)에 구축
• Provisioning 과정이 단순하고 빨라서 반복하기 쉬워야한
다.
• Python으로 작성된 backend API 서버에 PG사의
module을 연동한다.
• PG사에서 지원하는 결제 기능 중에 "정기 과금"만 사용한
다.
17
이렇게 구축했습니다.
전체 System 구성
19
전체 System 구성 (cont.)
• Vagrant VM
• OpenVPN
• NAT
20
Three Combination - 1
• Vagrant VM
• 미리 만들어진 VM image에서 VM을 생성
• Provisioining 과정을 단순하게 만들고, 속도도 향상됨
21
Three Combination - 1 (cont.)
# -*- mode: ruby -*-!
# vi: set ft=ruby :!
!
# sample 'Vagrantfile'!
Vagrant.configure(2) do |config|!
config.vm.box = "ubuntu/trusty64"!
!
config.vm.provider "virtualbox" do |v|!
! v.cpus = 1!
v.memory = 128!
end!
!
config.vm.provision "shell", path: "provisioning.sh"!
config.vm.network "private_network", ip: "192.168.100.99"!
config.vm.network "forwarded_port", guest: 1194, host: 1194, protocol: "udp"!
end
22
Three Combination - 1 (cont.)
• Vagrant VM 사용시, 외부에서 VM 접근의 문제점.
• port forwarding 방법은...
• 1024 이하의 숫자의 경우에 보안적으로 제한되어있음.
• VM간에 port 충돌 고려.
• VM를 접근할 때 host의 IP address를 사용해야함.
• 그래서 OpenVPN + NAT 방법을 선택
23
Three Combination - 2
• OpenVPN
• Local (Laptop/Desktop) 외부에 위치한
device(iPhone)에게 사설 IP(예: 10.8.0.0/8)를 할당
24
Three Combination - 2 (cont.)
#!/usr/bin/env bash!
set -e!
!
# sample 'provisioning.sh'!
apt-get -y clean!
apt-get -y update!
apt-get -y install openvpn!
apt-get -y install easy-rsa!
!
cp -R /vagrant/configuration ~/!
!
PP=~/configuration/etc!
cp -R ${PP}/openvpn/* /etc/openvpn/!
cp ${PP}/sysctl.conf /etc/sysctl.conf!
cp ${PP}/default/ufw /etc/default/ufw!
cp ${PP}/ufw/before.rules /etc/ufw/before.rules!
!
ufw allow ssh!
ufw allow 1194/udp!
!
ufw --force enable!
!
service openvpn start 25
Three Combination - 3
• NAT
• 특정 사설 IP(예: 10.8.0.0/8)에 발생된 traffic을 다른 IP
대역으로 forwarding
26
Three Combination - 3 (cont.)
# sample '/etc/ufw/before.rules'!
!
(...)!
!
# START OPENVPN RULES!
# NAT table rules!
*nat!
:POSTROUTING ACCEPT [0:0]!
# Allow traffic from OpenVPN client to eth0 and eth1!
-A POSTROUTING -s 10.8.0.0/8 -o eth0 -j MASQUERADE!
-A POSTROUTING -s 10.8.0.0/8 -o eth1 -j MASQUERADE!
COMMIT!
# END OPENVPN RULES!
!
(...)
27
Live Demo 1
'vagrant up'
해결된 요구 사항
• DV 환경 전체를 local(laptop/desktop)에 구축
• Provisioning 과정이 단순하고 빨라서 반복하기 쉬워야한
다.
• Python으로 작성된 backend API 서버에 PG사의
module을 연동한다.
• PG사에서 지원하는 결제 기능 중에 "정기 과금"만 사용한다.
29
정기 과금이란?
PG사의 정기과금
• '정기 과금'보다는 '자동 과금'이 더 정확하다고 보임
31
PG사의 정기과금
• 2단계로 나뉘어짐
• 최초 1회 시행하는 'BillKey 발급'
• 실제로 결제를 진행하는 'Auto Payment'
32
PG사의 정기과금 (cont.)
• 최초 1회 시행하는 'BillKey 발급'!
1,2: 사용자가 'BillKey' 발급 요청
3,4,5: PG사 mobile page redirect
(사용자가 신용카드 정보 입력)
6: PG사에서 'BillKey' 발급
7, 8: 발급된 'BillKey'를 DB에 저장
33
PG사의 정기과금 (cont.)
• 실제로 결제를 진행하는 'Auto Payment'!
1,2: 사용자가 'Auto Payment' 요청
3: 'BillKey' 정보로 결제 요청
4: PG사에서 결제 결과 전달
5,6: 사용자에게 결제 결과를 전달
34
Live Demo 2
'BillKey and Auto Payment'
해결된 요구 사항
• DV 환경 전체를 local(laptop/desktop)에 구축
• Provisioning 과정이 단순하고 빨라서 반복하기 쉬워야한
다.
• Python으로 작성된 backend API 서버에 PG사의
module을 연동한다.
• PG사에서 지원하는 결제 기능 중에 "정기 과금"만 사용한다.
36
발표 내용 review
• DV 환경이란 무엇인가?
• PG 란 무엇인가?
• DV 환경에서 PG 연동을 위한 요구사항 정리 (4가지)
• 요구사항을 만족하는 환경 구축
• 세번째 요구사항은 아직 진행중...
37

More Related Content

What's hot

06 플리토
06 플리토06 플리토
06 플리토
VentureSquare
 
Quic을 이용한 네트워크 성능 개선
 Quic을 이용한 네트워크 성능 개선 Quic을 이용한 네트워크 성능 개선
Quic을 이용한 네트워크 성능 개선
NAVER D2
 
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
Dan Kang (강동한)
 
[231]나는서버를썰터이니너는개발만하여라 양지욱
[231]나는서버를썰터이니너는개발만하여라 양지욱[231]나는서버를썰터이니너는개발만하여라 양지욱
[231]나는서버를썰터이니너는개발만하여라 양지욱
NAVER D2
 
Aws로 ci하기 안기욱
Aws로 ci하기 안기욱Aws로 ci하기 안기욱
Aws로 ci하기 안기욱
AWSKRUG - AWS한국사용자모임
 
Celery의 빛과 그림자
Celery의 빛과 그림자Celery의 빛과 그림자
Celery의 빛과 그림자
Minyoung Jeong
 
NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀
승명 양
 
쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기
Brian Hong
 
Final 07.컨테이너 환경에서 모니터링 이슈와 해결 방안
Final 07.컨테이너 환경에서 모니터링 이슈와 해결 방안Final 07.컨테이너 환경에서 모니터링 이슈와 해결 방안
Final 07.컨테이너 환경에서 모니터링 이슈와 해결 방안
Opennaru, inc.
 
03.Ansible 소개
03.Ansible 소개03.Ansible 소개
03.Ansible 소개
Opennaru, inc.
 
AWS Lambda를 이용한 CI/CD 기법
AWS Lambda를 이용한 CI/CD 기법AWS Lambda를 이용한 CI/CD 기법
AWS Lambda를 이용한 CI/CD 기법
Jesang Yoon
 
코드로 인프라 관리하기 - 자동화 툴 소개
코드로 인프라 관리하기 - 자동화 툴 소개코드로 인프라 관리하기 - 자동화 툴 소개
코드로 인프라 관리하기 - 자동화 툴 소개
태준 문
 
Hystrix소개
Hystrix소개Hystrix소개
Hystrix소개
Kyoungtae Cho
 
Ansible를 통한 컨테이너 환경 자동화
Ansible를 통한 컨테이너 환경 자동화Ansible를 통한 컨테이너 환경 자동화
Ansible를 통한 컨테이너 환경 자동화
Opennaru, inc.
 
DevOps와 자동화
DevOps와 자동화DevOps와 자동화
DevOps와 자동화
DONGSU KIM
 
[네이버클라우드플랫폼 온라인 교육 시리즈] 네이버클라우드플랫폼 CLI 소개 및 활용
[네이버클라우드플랫폼 온라인 교육 시리즈] 네이버클라우드플랫폼 CLI 소개 및 활용[네이버클라우드플랫폼 온라인 교육 시리즈] 네이버클라우드플랫폼 CLI 소개 및 활용
[네이버클라우드플랫폼 온라인 교육 시리즈] 네이버클라우드플랫폼 CLI 소개 및 활용
NAVER CLOUD PLATFORMㅣ네이버 클라우드 플랫폼
 
2016 NDC - 클라우드 시대의 모바일 게임 운영 플랫폼 구현
2016 NDC  - 클라우드 시대의  모바일 게임 운영 플랫폼 구현2016 NDC  - 클라우드 시대의  모바일 게임 운영 플랫폼 구현
2016 NDC - 클라우드 시대의 모바일 게임 운영 플랫폼 구현
iFunFactory Inc.
 
[Td 2015]개발하기 바쁜데 푸시서버와 메시지큐는 있는거 쓸래요(김영재)
[Td 2015]개발하기 바쁜데 푸시서버와 메시지큐는 있는거 쓸래요(김영재)[Td 2015]개발하기 바쁜데 푸시서버와 메시지큐는 있는거 쓸래요(김영재)
[Td 2015]개발하기 바쁜데 푸시서버와 메시지큐는 있는거 쓸래요(김영재)
Sang Don Kim
 
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)Brian Hong
 
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
Brian Hong
 

What's hot (20)

06 플리토
06 플리토06 플리토
06 플리토
 
Quic을 이용한 네트워크 성능 개선
 Quic을 이용한 네트워크 성능 개선 Quic을 이용한 네트워크 성능 개선
Quic을 이용한 네트워크 성능 개선
 
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
 
[231]나는서버를썰터이니너는개발만하여라 양지욱
[231]나는서버를썰터이니너는개발만하여라 양지욱[231]나는서버를썰터이니너는개발만하여라 양지욱
[231]나는서버를썰터이니너는개발만하여라 양지욱
 
Aws로 ci하기 안기욱
Aws로 ci하기 안기욱Aws로 ci하기 안기욱
Aws로 ci하기 안기욱
 
Celery의 빛과 그림자
Celery의 빛과 그림자Celery의 빛과 그림자
Celery의 빛과 그림자
 
NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀
 
쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기
 
Final 07.컨테이너 환경에서 모니터링 이슈와 해결 방안
Final 07.컨테이너 환경에서 모니터링 이슈와 해결 방안Final 07.컨테이너 환경에서 모니터링 이슈와 해결 방안
Final 07.컨테이너 환경에서 모니터링 이슈와 해결 방안
 
03.Ansible 소개
03.Ansible 소개03.Ansible 소개
03.Ansible 소개
 
AWS Lambda를 이용한 CI/CD 기법
AWS Lambda를 이용한 CI/CD 기법AWS Lambda를 이용한 CI/CD 기법
AWS Lambda를 이용한 CI/CD 기법
 
코드로 인프라 관리하기 - 자동화 툴 소개
코드로 인프라 관리하기 - 자동화 툴 소개코드로 인프라 관리하기 - 자동화 툴 소개
코드로 인프라 관리하기 - 자동화 툴 소개
 
Hystrix소개
Hystrix소개Hystrix소개
Hystrix소개
 
Ansible를 통한 컨테이너 환경 자동화
Ansible를 통한 컨테이너 환경 자동화Ansible를 통한 컨테이너 환경 자동화
Ansible를 통한 컨테이너 환경 자동화
 
DevOps와 자동화
DevOps와 자동화DevOps와 자동화
DevOps와 자동화
 
[네이버클라우드플랫폼 온라인 교육 시리즈] 네이버클라우드플랫폼 CLI 소개 및 활용
[네이버클라우드플랫폼 온라인 교육 시리즈] 네이버클라우드플랫폼 CLI 소개 및 활용[네이버클라우드플랫폼 온라인 교육 시리즈] 네이버클라우드플랫폼 CLI 소개 및 활용
[네이버클라우드플랫폼 온라인 교육 시리즈] 네이버클라우드플랫폼 CLI 소개 및 활용
 
2016 NDC - 클라우드 시대의 모바일 게임 운영 플랫폼 구현
2016 NDC  - 클라우드 시대의  모바일 게임 운영 플랫폼 구현2016 NDC  - 클라우드 시대의  모바일 게임 운영 플랫폼 구현
2016 NDC - 클라우드 시대의 모바일 게임 운영 플랫폼 구현
 
[Td 2015]개발하기 바쁜데 푸시서버와 메시지큐는 있는거 쓸래요(김영재)
[Td 2015]개발하기 바쁜데 푸시서버와 메시지큐는 있는거 쓸래요(김영재)[Td 2015]개발하기 바쁜데 푸시서버와 메시지큐는 있는거 쓸래요(김영재)
[Td 2015]개발하기 바쁜데 푸시서버와 메시지큐는 있는거 쓸래요(김영재)
 
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)
 
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
 

Similar to DV 환경에서 PG 연동하기 ('우리 안의 소리', 2015-11-19)

글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
if kakao
 
스마트폰 온라인 게임에서 고려해야 할 것들
스마트폰 온라인 게임에서 고려해야 할 것들스마트폰 온라인 게임에서 고려해야 할 것들
스마트폰 온라인 게임에서 고려해야 할 것들
Hyunjik Bae
 
20170813 django api server unit test and remote debugging
20170813 django api server unit test and remote debugging20170813 django api server unit test and remote debugging
20170813 django api server unit test and remote debugging
Jongwon Han
 
GDB와 strace로 Hang 걸린 Python Process 원격 디버깅
GDB와 strace로 Hang 걸린 Python Process 원격 디버깅GDB와 strace로 Hang 걸린 Python Process 원격 디버깅
GDB와 strace로 Hang 걸린 Python Process 원격 디버깅
Youngmin Koo
 
Windows Registered I/O (RIO) vs IOCP
Windows Registered I/O (RIO) vs IOCPWindows Registered I/O (RIO) vs IOCP
Windows Registered I/O (RIO) vs IOCP
Seungmo Koo
 
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
iFunFactory Inc.
 
NAVER의 웹/HTML5환경 대응 현황
NAVER의 웹/HTML5환경 대응 현황NAVER의 웹/HTML5환경 대응 현황
NAVER의 웹/HTML5환경 대응 현황
NAVER Engineering
 
[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지
[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지
[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지
강 민우
 
NDC14 모바일 게임서비스를 위한 사설 클라우드 구축/운영 분투기
NDC14 모바일 게임서비스를 위한 사설 클라우드 구축/운영 분투기NDC14 모바일 게임서비스를 위한 사설 클라우드 구축/운영 분투기
NDC14 모바일 게임서비스를 위한 사설 클라우드 구축/운영 분투기
Jinuk Kim
 
스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드
스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드
스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드Jeongsang Baek
 
[IGC2018] 에이스프로젝트 안현석 - 유니티로 실시간 멀티플레이 게임서버를 만들수 있을까
[IGC2018] 에이스프로젝트 안현석 - 유니티로 실시간 멀티플레이 게임서버를 만들수 있을까[IGC2018] 에이스프로젝트 안현석 - 유니티로 실시간 멀티플레이 게임서버를 만들수 있을까
[IGC2018] 에이스프로젝트 안현석 - 유니티로 실시간 멀티플레이 게임서버를 만들수 있을까
영석 양
 
[IGC2018] 에이스프로젝트 안현석 - 유니티로 실시간 멀티플레이 게임서버를 만들 수 있을까?
[IGC2018] 에이스프로젝트 안현석 - 유니티로 실시간 멀티플레이 게임서버를 만들 수 있을까?[IGC2018] 에이스프로젝트 안현석 - 유니티로 실시간 멀티플레이 게임서버를 만들 수 있을까?
[IGC2018] 에이스프로젝트 안현석 - 유니티로 실시간 멀티플레이 게임서버를 만들 수 있을까?
강 민우
 
Brocade Vyatta Controller Overview
Brocade Vyatta Controller OverviewBrocade Vyatta Controller Overview
Brocade Vyatta Controller Overview
Seung-Hoon Baek
 
Azure로 MMO게임 서비스하기
Azure로 MMO게임 서비스하기Azure로 MMO게임 서비스하기
Azure로 MMO게임 서비스하기
YEONG-CHEON YOU
 
[OpenInfra Days Korea 2018] (Track 1) Openstack 쉽게 설치하기 - SOfTI Easy Installer
[OpenInfra Days Korea 2018] (Track 1) Openstack 쉽게 설치하기 - SOfTI Easy Installer[OpenInfra Days Korea 2018] (Track 1) Openstack 쉽게 설치하기 - SOfTI Easy Installer
[OpenInfra Days Korea 2018] (Track 1) Openstack 쉽게 설치하기 - SOfTI Easy Installer
OpenStack Korea Community
 
GDG DevFest Busan 16" Android Nougat Developer's Note
GDG DevFest Busan 16" Android Nougat Developer's NoteGDG DevFest Busan 16" Android Nougat Developer's Note
GDG DevFest Busan 16" Android Nougat Developer's Note
Seok-yong Kim
 
ARTIK 710 IoT class 02
ARTIK 710 IoT class 02ARTIK 710 IoT class 02
ARTIK 710 IoT class 02
정출 김
 
Gametech 2014: 모바일 게임용 PaaS/BaaS 구현 사례와 디자인 트레이드오프
Gametech 2014: 모바일 게임용 PaaS/BaaS 구현 사례와 디자인 트레이드오프Gametech 2014: 모바일 게임용 PaaS/BaaS 구현 사례와 디자인 트레이드오프
Gametech 2014: 모바일 게임용 PaaS/BaaS 구현 사례와 디자인 트레이드오프
Jinuk Kim
 
Web rtc meetup_korea_1st(20161115)
Web rtc meetup_korea_1st(20161115)Web rtc meetup_korea_1st(20161115)
Web rtc meetup_korea_1st(20161115)
Rang-Hyuck Lee
 
Trusted pass 소개서 2016 12_20
Trusted pass 소개서 2016 12_20Trusted pass 소개서 2016 12_20
Trusted pass 소개서 2016 12_20
Wonil Seo
 

Similar to DV 환경에서 PG 연동하기 ('우리 안의 소리', 2015-11-19) (20)

글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
 
스마트폰 온라인 게임에서 고려해야 할 것들
스마트폰 온라인 게임에서 고려해야 할 것들스마트폰 온라인 게임에서 고려해야 할 것들
스마트폰 온라인 게임에서 고려해야 할 것들
 
20170813 django api server unit test and remote debugging
20170813 django api server unit test and remote debugging20170813 django api server unit test and remote debugging
20170813 django api server unit test and remote debugging
 
GDB와 strace로 Hang 걸린 Python Process 원격 디버깅
GDB와 strace로 Hang 걸린 Python Process 원격 디버깅GDB와 strace로 Hang 걸린 Python Process 원격 디버깅
GDB와 strace로 Hang 걸린 Python Process 원격 디버깅
 
Windows Registered I/O (RIO) vs IOCP
Windows Registered I/O (RIO) vs IOCPWindows Registered I/O (RIO) vs IOCP
Windows Registered I/O (RIO) vs IOCP
 
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
 
NAVER의 웹/HTML5환경 대응 현황
NAVER의 웹/HTML5환경 대응 현황NAVER의 웹/HTML5환경 대응 현황
NAVER의 웹/HTML5환경 대응 현황
 
[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지
[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지
[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지
 
NDC14 모바일 게임서비스를 위한 사설 클라우드 구축/운영 분투기
NDC14 모바일 게임서비스를 위한 사설 클라우드 구축/운영 분투기NDC14 모바일 게임서비스를 위한 사설 클라우드 구축/운영 분투기
NDC14 모바일 게임서비스를 위한 사설 클라우드 구축/운영 분투기
 
스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드
스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드
스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드
 
[IGC2018] 에이스프로젝트 안현석 - 유니티로 실시간 멀티플레이 게임서버를 만들수 있을까
[IGC2018] 에이스프로젝트 안현석 - 유니티로 실시간 멀티플레이 게임서버를 만들수 있을까[IGC2018] 에이스프로젝트 안현석 - 유니티로 실시간 멀티플레이 게임서버를 만들수 있을까
[IGC2018] 에이스프로젝트 안현석 - 유니티로 실시간 멀티플레이 게임서버를 만들수 있을까
 
[IGC2018] 에이스프로젝트 안현석 - 유니티로 실시간 멀티플레이 게임서버를 만들 수 있을까?
[IGC2018] 에이스프로젝트 안현석 - 유니티로 실시간 멀티플레이 게임서버를 만들 수 있을까?[IGC2018] 에이스프로젝트 안현석 - 유니티로 실시간 멀티플레이 게임서버를 만들 수 있을까?
[IGC2018] 에이스프로젝트 안현석 - 유니티로 실시간 멀티플레이 게임서버를 만들 수 있을까?
 
Brocade Vyatta Controller Overview
Brocade Vyatta Controller OverviewBrocade Vyatta Controller Overview
Brocade Vyatta Controller Overview
 
Azure로 MMO게임 서비스하기
Azure로 MMO게임 서비스하기Azure로 MMO게임 서비스하기
Azure로 MMO게임 서비스하기
 
[OpenInfra Days Korea 2018] (Track 1) Openstack 쉽게 설치하기 - SOfTI Easy Installer
[OpenInfra Days Korea 2018] (Track 1) Openstack 쉽게 설치하기 - SOfTI Easy Installer[OpenInfra Days Korea 2018] (Track 1) Openstack 쉽게 설치하기 - SOfTI Easy Installer
[OpenInfra Days Korea 2018] (Track 1) Openstack 쉽게 설치하기 - SOfTI Easy Installer
 
GDG DevFest Busan 16" Android Nougat Developer's Note
GDG DevFest Busan 16" Android Nougat Developer's NoteGDG DevFest Busan 16" Android Nougat Developer's Note
GDG DevFest Busan 16" Android Nougat Developer's Note
 
ARTIK 710 IoT class 02
ARTIK 710 IoT class 02ARTIK 710 IoT class 02
ARTIK 710 IoT class 02
 
Gametech 2014: 모바일 게임용 PaaS/BaaS 구현 사례와 디자인 트레이드오프
Gametech 2014: 모바일 게임용 PaaS/BaaS 구현 사례와 디자인 트레이드오프Gametech 2014: 모바일 게임용 PaaS/BaaS 구현 사례와 디자인 트레이드오프
Gametech 2014: 모바일 게임용 PaaS/BaaS 구현 사례와 디자인 트레이드오프
 
Web rtc meetup_korea_1st(20161115)
Web rtc meetup_korea_1st(20161115)Web rtc meetup_korea_1st(20161115)
Web rtc meetup_korea_1st(20161115)
 
Trusted pass 소개서 2016 12_20
Trusted pass 소개서 2016 12_20Trusted pass 소개서 2016 12_20
Trusted pass 소개서 2016 12_20
 

More from Jongwon Han

20191226 LEGACYLAND에서 살아남는 법
20191226 LEGACYLAND에서 살아남는 법20191226 LEGACYLAND에서 살아남는 법
20191226 LEGACYLAND에서 살아남는 법
Jongwon Han
 
20190518 개발하기 좋은 날
20190518 개발하기 좋은 날20190518 개발하기 좋은 날
20190518 개발하기 좋은 날
Jongwon Han
 
20190418 Read Replicas and Django DB Router - AWS Summit Seoul 2019
20190418 Read Replicas and Django DB Router - AWS Summit Seoul 201920190418 Read Replicas and Django DB Router - AWS Summit Seoul 2019
20190418 Read Replicas and Django DB Router - AWS Summit Seoul 2019
Jongwon Han
 
20190214 Startup의 한정된 자원(인력, 자금)에서 AWS를 효율적으로 사ᄋ...
20190214 Startup의 한정된 자원(인력, 자금)에서 AWS를 효율적으로 사ᄋ...20190214 Startup의 한정된 자원(인력, 자금)에서 AWS를 효율적으로 사ᄋ...
20190214 Startup의 한정된 자원(인력, 자금)에서 AWS를 효율적으로 사ᄋ...
Jongwon Han
 
20181126 AWS S3, SPA, 그리고 Vue.JS - HBSmith는 어떻게 Frontend를 Serverle...
20181126 AWS S3, SPA, 그리고 Vue.JS - HBSmith는 어떻게 Frontend를 Serverle...20181126 AWS S3, SPA, 그리고 Vue.JS - HBSmith는 어떻게 Frontend를 Serverle...
20181126 AWS S3, SPA, 그리고 Vue.JS - HBSmith는 어떻게 Frontend를 Serverle...
Jongwon Han
 
20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다
20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다
20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다
Jongwon Han
 
20180915 HBSmith에서는 Django 이렇게 사용한다
20180915 HBSmith에서는 Django 이렇게 사용한다20180915 HBSmith에서는 Django 이렇게 사용한다
20180915 HBSmith에서는 Django 이렇게 사용한다
Jongwon Han
 
20180726 AWS KRUG - RDS Aurora에 40억건 데이터 입력하기
20180726 AWS KRUG - RDS Aurora에 40억건 데이터 입력하기20180726 AWS KRUG - RDS Aurora에 40억건 데이터 입력하기
20180726 AWS KRUG - RDS Aurora에 40억건 데이터 입력하기
Jongwon Han
 
20180609 BIT computer - AWS를 활용한 클라우드 기반 웹 개발 2주차
20180609 BIT computer - AWS를 활용한 클라우드 기반 웹 개발 2주차20180609 BIT computer - AWS를 활용한 클라우드 기반 웹 개발 2주차
20180609 BIT computer - AWS를 활용한 클라우드 기반 웹 개발 2주차
Jongwon Han
 
20180602 BIT computer - AWS를 활용한 클라우드 기반 웹 개발 1주차
20180602 BIT computer - AWS를 활용한 클라우드 기반 웹 개발 1주차20180602 BIT computer - AWS를 활용한 클라우드 기반 웹 개발 1주차
20180602 BIT computer - AWS를 활용한 클라우드 기반 웹 개발 1주차
Jongwon Han
 
20180124 스타트업부터 대기업까지 aws와 함께한 7년
20180124 스타트업부터 대기업까지 aws와 함께한 7년20180124 스타트업부터 대기업까지 aws와 함께한 7년
20180124 스타트업부터 대기업까지 aws와 함께한 7년
Jongwon Han
 
20180124 naver labs aws network and security
20180124 naver labs aws network and security20180124 naver labs aws network and security
20180124 naver labs aws network and security
Jongwon Han
 
20171221 naver labs aws 101
20171221 naver labs aws 10120171221 naver labs aws 101
20171221 naver labs aws 101
Jongwon Han
 
20171013 데이터 분석가를 위한 데이터플랫폼 Seminar - Public Cloud 101
20171013 데이터 분석가를 위한 데이터플랫폼 Seminar - Public Cloud 10120171013 데이터 분석가를 위한 데이터플랫폼 Seminar - Public Cloud 101
20171013 데이터 분석가를 위한 데이터플랫폼 Seminar - Public Cloud 101
Jongwon Han
 
20170829 HB Smith에서는 AWS 이렇게 사용한다
20170829 HB Smith에서는 AWS 이렇게 사용한다20170829 HB Smith에서는 AWS 이렇게 사용한다
20170829 HB Smith에서는 AWS 이렇게 사용한다
Jongwon Han
 
20170718 hb smith에서는 aws 이렇게 사용한다
20170718 hb smith에서는 aws 이렇게 사용한다20170718 hb smith에서는 aws 이렇게 사용한다
20170718 hb smith에서는 aws 이렇게 사용한다
Jongwon Han
 
20170422 HB Smith - Primer workshop
20170422 HB Smith - Primer workshop20170422 HB Smith - Primer workshop
20170422 HB Smith - Primer workshop
Jongwon Han
 
HB Smith - Primer workshop
HB Smith - Primer workshopHB Smith - Primer workshop
HB Smith - Primer workshop
Jongwon Han
 
AWS Summit - AWS를 통한 신뢰성 높은 지속적 배포 및 통합(CD, CI) ᄉ...
AWS Summit - AWS를 통한 신뢰성 높은 지속적 배포 및 통합(CD, CI) ᄉ...AWS Summit - AWS를 통한 신뢰성 높은 지속적 배포 및 통합(CD, CI) ᄉ...
AWS Summit - AWS를 통한 신뢰성 높은 지속적 배포 및 통합(CD, CI) ᄉ...
Jongwon Han
 
HB Smith - business plan - live hero - public
HB Smith - business plan - live hero - publicHB Smith - business plan - live hero - public
HB Smith - business plan - live hero - public
Jongwon Han
 

More from Jongwon Han (20)

20191226 LEGACYLAND에서 살아남는 법
20191226 LEGACYLAND에서 살아남는 법20191226 LEGACYLAND에서 살아남는 법
20191226 LEGACYLAND에서 살아남는 법
 
20190518 개발하기 좋은 날
20190518 개발하기 좋은 날20190518 개발하기 좋은 날
20190518 개발하기 좋은 날
 
20190418 Read Replicas and Django DB Router - AWS Summit Seoul 2019
20190418 Read Replicas and Django DB Router - AWS Summit Seoul 201920190418 Read Replicas and Django DB Router - AWS Summit Seoul 2019
20190418 Read Replicas and Django DB Router - AWS Summit Seoul 2019
 
20190214 Startup의 한정된 자원(인력, 자금)에서 AWS를 효율적으로 사ᄋ...
20190214 Startup의 한정된 자원(인력, 자금)에서 AWS를 효율적으로 사ᄋ...20190214 Startup의 한정된 자원(인력, 자금)에서 AWS를 효율적으로 사ᄋ...
20190214 Startup의 한정된 자원(인력, 자금)에서 AWS를 효율적으로 사ᄋ...
 
20181126 AWS S3, SPA, 그리고 Vue.JS - HBSmith는 어떻게 Frontend를 Serverle...
20181126 AWS S3, SPA, 그리고 Vue.JS - HBSmith는 어떻게 Frontend를 Serverle...20181126 AWS S3, SPA, 그리고 Vue.JS - HBSmith는 어떻게 Frontend를 Serverle...
20181126 AWS S3, SPA, 그리고 Vue.JS - HBSmith는 어떻게 Frontend를 Serverle...
 
20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다
20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다
20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다
 
20180915 HBSmith에서는 Django 이렇게 사용한다
20180915 HBSmith에서는 Django 이렇게 사용한다20180915 HBSmith에서는 Django 이렇게 사용한다
20180915 HBSmith에서는 Django 이렇게 사용한다
 
20180726 AWS KRUG - RDS Aurora에 40억건 데이터 입력하기
20180726 AWS KRUG - RDS Aurora에 40억건 데이터 입력하기20180726 AWS KRUG - RDS Aurora에 40억건 데이터 입력하기
20180726 AWS KRUG - RDS Aurora에 40억건 데이터 입력하기
 
20180609 BIT computer - AWS를 활용한 클라우드 기반 웹 개발 2주차
20180609 BIT computer - AWS를 활용한 클라우드 기반 웹 개발 2주차20180609 BIT computer - AWS를 활용한 클라우드 기반 웹 개발 2주차
20180609 BIT computer - AWS를 활용한 클라우드 기반 웹 개발 2주차
 
20180602 BIT computer - AWS를 활용한 클라우드 기반 웹 개발 1주차
20180602 BIT computer - AWS를 활용한 클라우드 기반 웹 개발 1주차20180602 BIT computer - AWS를 활용한 클라우드 기반 웹 개발 1주차
20180602 BIT computer - AWS를 활용한 클라우드 기반 웹 개발 1주차
 
20180124 스타트업부터 대기업까지 aws와 함께한 7년
20180124 스타트업부터 대기업까지 aws와 함께한 7년20180124 스타트업부터 대기업까지 aws와 함께한 7년
20180124 스타트업부터 대기업까지 aws와 함께한 7년
 
20180124 naver labs aws network and security
20180124 naver labs aws network and security20180124 naver labs aws network and security
20180124 naver labs aws network and security
 
20171221 naver labs aws 101
20171221 naver labs aws 10120171221 naver labs aws 101
20171221 naver labs aws 101
 
20171013 데이터 분석가를 위한 데이터플랫폼 Seminar - Public Cloud 101
20171013 데이터 분석가를 위한 데이터플랫폼 Seminar - Public Cloud 10120171013 데이터 분석가를 위한 데이터플랫폼 Seminar - Public Cloud 101
20171013 데이터 분석가를 위한 데이터플랫폼 Seminar - Public Cloud 101
 
20170829 HB Smith에서는 AWS 이렇게 사용한다
20170829 HB Smith에서는 AWS 이렇게 사용한다20170829 HB Smith에서는 AWS 이렇게 사용한다
20170829 HB Smith에서는 AWS 이렇게 사용한다
 
20170718 hb smith에서는 aws 이렇게 사용한다
20170718 hb smith에서는 aws 이렇게 사용한다20170718 hb smith에서는 aws 이렇게 사용한다
20170718 hb smith에서는 aws 이렇게 사용한다
 
20170422 HB Smith - Primer workshop
20170422 HB Smith - Primer workshop20170422 HB Smith - Primer workshop
20170422 HB Smith - Primer workshop
 
HB Smith - Primer workshop
HB Smith - Primer workshopHB Smith - Primer workshop
HB Smith - Primer workshop
 
AWS Summit - AWS를 통한 신뢰성 높은 지속적 배포 및 통합(CD, CI) ᄉ...
AWS Summit - AWS를 통한 신뢰성 높은 지속적 배포 및 통합(CD, CI) ᄉ...AWS Summit - AWS를 통한 신뢰성 높은 지속적 배포 및 통합(CD, CI) ᄉ...
AWS Summit - AWS를 통한 신뢰성 높은 지속적 배포 및 통합(CD, CI) ᄉ...
 
HB Smith - business plan - live hero - public
HB Smith - business plan - live hero - publicHB Smith - business plan - live hero - public
HB Smith - business plan - live hero - public
 

DV 환경에서 PG 연동하기 ('우리 안의 소리', 2015-11-19)

  • 1. DV 환경에서 PG 연동하기 2015년 11월 19일, '우리 안의 소리' 한종원 (addnull@gmail.com)
  • 2. 원래는... • 원래 주제는 'PG 해킹하기' • 하지만.. 실패?!? 아직 진행중?!? • 현재까지 진행 내용: "DV 환경 구축 완료 및 PG 연동 완료" • 주제 변경: 'DV환경에서 PG 연동하기' 3
  • 3. 발표 내용 • DV 환경이란 무엇인가? • PG 란 무엇인가? • DV 환경에서 PG 연동을 위한 요구사항 정리 (4가지) • 요구사항을 만족하는 환경 구축 4
  • 5. DV 환경이란? • 개발자 1인 혼자 사용하는 별도의 격리된 환경 • 가장 불안정한(unstable) code가 실행되는 환경 • 사용자(개발자)가 직접 관리(유지 보수)해야한다. 6
  • 6. 개발에서 운영까지 Phase • 최소 3 phase로 나눔: DV / QA / OP 7
  • 8. PG 란? • Payment Gate: 전자 지급 결제 대행 서비스 • PG사는 주요 신용카드사, 은행, 통신사 등과 미리 계약이 되 어있다. • 사용자는 PG사와 계약만 하면, 다양한 결제 수단(신용카드, 계좌이체, 에스크로, 모바일결제...)을 사용할 수 있다. • 민감한 정보(신용카드 번호 등) 관리에 대한 부담이 줄어든 다. 9
  • 9. PG 화면 예시 • PG를 사용한 경우(좌)와 아닌 경우(우) 10
  • 11. 요구 사항 1 • DV 환경 전체를 local(laptop/desktop)에 구축 • 비용 절감을 위해 AWS 나 IDC server는 사용하지 않음 • 단, client(iOS app)는 실제 device(iPhone)에서 실행 되어야한다. 12
  • 12. 요구 사항 2 • Provisioning 과정이 단순하고 빨라서 반복하기 쉬워야한 다. • (re)Provisioning은 개발 과정에서 생기는 DV 환경의 엔트로피를 해결하기 위한 가장 확실한 방법 • 하지만, (re)provisioining이 어렵고 오래걸리면 개발자 들이 하기를 꺼려한다. 13
  • 14. 요구 사항 3 • Python으로 작성된 backend API 서버에 PG사의 module을 연동한다. • PG사에서 지원하는 PL은 ASP, JSP, PHP 뿐이다. • PG사의 API spec 문서가 대외비에다가 실제 동작 내용 과 다소 상이하다. 15
  • 15. 요구 사항 4 • PG사에서 지원하는 결제 기능 중에 "정기 과금"만 사용한다. 16
  • 16. 요구 사항 (summary) • DV 환경 전체를 local(laptop/desktop)에 구축 • Provisioning 과정이 단순하고 빨라서 반복하기 쉬워야한 다. • Python으로 작성된 backend API 서버에 PG사의 module을 연동한다. • PG사에서 지원하는 결제 기능 중에 "정기 과금"만 사용한 다. 17
  • 19. 전체 System 구성 (cont.) • Vagrant VM • OpenVPN • NAT 20
  • 20. Three Combination - 1 • Vagrant VM • 미리 만들어진 VM image에서 VM을 생성 • Provisioining 과정을 단순하게 만들고, 속도도 향상됨 21
  • 21. Three Combination - 1 (cont.) # -*- mode: ruby -*-! # vi: set ft=ruby :! ! # sample 'Vagrantfile'! Vagrant.configure(2) do |config|! config.vm.box = "ubuntu/trusty64"! ! config.vm.provider "virtualbox" do |v|! ! v.cpus = 1! v.memory = 128! end! ! config.vm.provision "shell", path: "provisioning.sh"! config.vm.network "private_network", ip: "192.168.100.99"! config.vm.network "forwarded_port", guest: 1194, host: 1194, protocol: "udp"! end 22
  • 22. Three Combination - 1 (cont.) • Vagrant VM 사용시, 외부에서 VM 접근의 문제점. • port forwarding 방법은... • 1024 이하의 숫자의 경우에 보안적으로 제한되어있음. • VM간에 port 충돌 고려. • VM를 접근할 때 host의 IP address를 사용해야함. • 그래서 OpenVPN + NAT 방법을 선택 23
  • 23. Three Combination - 2 • OpenVPN • Local (Laptop/Desktop) 외부에 위치한 device(iPhone)에게 사설 IP(예: 10.8.0.0/8)를 할당 24
  • 24. Three Combination - 2 (cont.) #!/usr/bin/env bash! set -e! ! # sample 'provisioning.sh'! apt-get -y clean! apt-get -y update! apt-get -y install openvpn! apt-get -y install easy-rsa! ! cp -R /vagrant/configuration ~/! ! PP=~/configuration/etc! cp -R ${PP}/openvpn/* /etc/openvpn/! cp ${PP}/sysctl.conf /etc/sysctl.conf! cp ${PP}/default/ufw /etc/default/ufw! cp ${PP}/ufw/before.rules /etc/ufw/before.rules! ! ufw allow ssh! ufw allow 1194/udp! ! ufw --force enable! ! service openvpn start 25
  • 25. Three Combination - 3 • NAT • 특정 사설 IP(예: 10.8.0.0/8)에 발생된 traffic을 다른 IP 대역으로 forwarding 26
  • 26. Three Combination - 3 (cont.) # sample '/etc/ufw/before.rules'! ! (...)! ! # START OPENVPN RULES! # NAT table rules! *nat! :POSTROUTING ACCEPT [0:0]! # Allow traffic from OpenVPN client to eth0 and eth1! -A POSTROUTING -s 10.8.0.0/8 -o eth0 -j MASQUERADE! -A POSTROUTING -s 10.8.0.0/8 -o eth1 -j MASQUERADE! COMMIT! # END OPENVPN RULES! ! (...) 27
  • 28. 해결된 요구 사항 • DV 환경 전체를 local(laptop/desktop)에 구축 • Provisioning 과정이 단순하고 빨라서 반복하기 쉬워야한 다. • Python으로 작성된 backend API 서버에 PG사의 module을 연동한다. • PG사에서 지원하는 결제 기능 중에 "정기 과금"만 사용한다. 29
  • 30. PG사의 정기과금 • '정기 과금'보다는 '자동 과금'이 더 정확하다고 보임 31
  • 31. PG사의 정기과금 • 2단계로 나뉘어짐 • 최초 1회 시행하는 'BillKey 발급' • 실제로 결제를 진행하는 'Auto Payment' 32
  • 32. PG사의 정기과금 (cont.) • 최초 1회 시행하는 'BillKey 발급'! 1,2: 사용자가 'BillKey' 발급 요청 3,4,5: PG사 mobile page redirect (사용자가 신용카드 정보 입력) 6: PG사에서 'BillKey' 발급 7, 8: 발급된 'BillKey'를 DB에 저장 33
  • 33. PG사의 정기과금 (cont.) • 실제로 결제를 진행하는 'Auto Payment'! 1,2: 사용자가 'Auto Payment' 요청 3: 'BillKey' 정보로 결제 요청 4: PG사에서 결제 결과 전달 5,6: 사용자에게 결제 결과를 전달 34
  • 34. Live Demo 2 'BillKey and Auto Payment'
  • 35. 해결된 요구 사항 • DV 환경 전체를 local(laptop/desktop)에 구축 • Provisioning 과정이 단순하고 빨라서 반복하기 쉬워야한 다. • Python으로 작성된 backend API 서버에 PG사의 module을 연동한다. • PG사에서 지원하는 결제 기능 중에 "정기 과금"만 사용한다. 36
  • 36. 발표 내용 review • DV 환경이란 무엇인가? • PG 란 무엇인가? • DV 환경에서 PG 연동을 위한 요구사항 정리 (4가지) • 요구사항을 만족하는 환경 구축 • 세번째 요구사항은 아직 진행중... 37