brunch

You can make anything
by writing

C.S.Lewis

by 신현묵 May 26. 2017

Node.js 기반 백엔드 시스템,#7

'결제'로 시작해서, '결제'로 끝난다. 돈 버는 백엔드 서비스!

Node.js 개발에 있어서 핵심은 잘 만드는 것만이 중요할까요? 아닙니다. 사실상 돈을 벌거나 게임 그 자체가 재미있어서 성공해야 의미가 있습니다. 특히, '결제'가 잘되어야죠.


특히, 백엔드 시스템을 만들 때에 고민이 되는 것 중의 하나는 '결제'문에 대한 처리를 생각보다 많은 신경을 쓰지 못했을 경우에 서비스 자체가 망하는 경우를 빈번하게 보게 됩니다.


'결제'문제에 대해서는 몇 가지 금과 옥저로 내려오는 '불문율'이 있습니다.


하나. 무조건 매뉴얼대로 구현하라!


잘 이해가 가지 않거나, 굳이 테스트 시에 문제가 없다고 해서, 결제 회사에서 제공되는 규칙과 예외처리, 관련 사항들에 대해서 몇 가지 생략하는 경우가 있습니다. 정말 위험합니다!


결제는 '돈'이 오고 가는 것이며, 결제회사들은 이 문제에 대해서 혹독한 시련을 겪었습니다. 그들이 제시하는 소소한 '기준'들은 모두 이러한 '비 이상적인 환경'을 고려하여 만들어진 것입니다.


무조건, 소소하게라고, 아주 작은 부분이라도 '무조건 매뉴얼'대로 구현해야 합니다.


둘. 서버에서 가장 많은 공을 들여라!!!


가장 많은 테스트, 가장 뛰어난 개발자, 가장 많은 시간을 '결제'에 투자해야 합니다. 특히, 초보자이거나 이제 막 시작한 친구들에게 이 '결제'모듈을 담당하게 하는 실수를 하시면 안 됩니다.


문제 발생 시에 가장 많은 '로그'를 파악해야 하고, 엄청난 해킹, 크래킹과 씨름을 해야 합니다.


셋. DBMS를 적극 활용하라!


DBMS에 가장 기본 기능 중의 하나인 유니크 제약과 트랜잭션 처리는 정말 오래된 정통적인 방법에 의해서 데이터의 정합성을 보장하는 방법입니다. 특히, 결제나 DB와 관련된 유경험자가 최대한 DBMS의 기본 기능에 충실하도록 서비스를 구현해야 합니다.


넷. 해킹! 그것은 일상생활!


앱이 배포되고, 서비스가 개시되면... 해킹 시도와 접근은 너무도 일상생활화될 것입니다. 게임의 경우에 유료템이 잘못 풀리거나, 결제의 해킹 한 번으로 서비스가 망하는 케이스도 발생됩니다.

해커들은 앱을 뒤집고, 서버를 해킹하려고 엄청난 시간과 공을 투자합니다.


다섯. 결제 뚫리면 게임은 끝입니다!


결제가 뚫렸다고 소문나는 순간에 게임의 운명도 같이 끝납니다. 그냥 아무것도 필요 없습니다. 그냥 끝입니다.

매거진의 이전글 Node.js 기반 백엔드 시스템,#6
작품 선택
키워드 선택 0 / 3 0
댓글여부
afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari