4년차 개발자의 B2C 구독모델 개발기 누리미디어 테크블로그

4년차 개발자의 B2C 구독모델 개발기

누리미디어 테크블로그

img

about 1

4년차 개발자의 B2C 구독모델 개발기

안녕하세요. 개발운영팀 소속의 4년차 개발자 박정석입니다. B2C 구독모델 개발은 회사에 없었던 기능을 개발하는 과정이라 힘들었지만 재미있기도 했었던 프로젝트인데요. 이 글에서는 구독모델의 탄생 배경부터 약 1년의 시간 동안 구독모델을 어떻게 발전시켜나갔는지 소개합니다.

메인

B2C 개인구독 모델의 탄생

저희 회사는 논문을 모아 사용자에게 제공해주는 서비스를 해주고 있습니다. 논문은 크게 B2B와 B2C 형태로 서비스되는데요. B2B의 경우 콘텐츠 구독 방식을 통해 1년 단위로 서비스 전체를 이용할 수 있지만 B2C의 경우 개별 논문을 구매하는 것 말고는 이용할 수 있는 수단이 없었습니다. 이에 이용자들이 보다 쉽고 다양한 형태로 논문을 이용할 수 있도록 국내 최초로 논문 B2C 구독 모델을 출시하게 되었습니다.

DBpia B2C 구독모델은 이런 분들을 위해 만들어졌습니다.

img

about 1

결제 시스템 점검 및 오류 개선

결제 시스템의 A to Z를 파헤치다

01

기존 시스템의 문제

B2C 구독 모델을 개발 하기 전 기존 결제 시스템의 현황을 점검해 현재 시스템이 가진 문제는 없는지를 먼저 점검하였습니다. 그 결과 결제 도중 오류가 발생하면(서버의 일시적인 장애나 클라이언트 단에서 결제 프로세스를 강제로 종료하는 등) 돈은 인출이 되었는데 실제로 결제 완료 처리는 되지 않는 문제를 발견 할 수 있었는데요. 구독모델 개발 전 이 문제를 완전히 해결하고 이후 과정을 진행하기로 결정 하였습니다.

02

해결방안

위 문제를 해결하기 위해 이후 결제 과정에는 웹훅을 도입하기로 결정하였는데요.결제 서버(node.js)를 따로 생성하여 결제 완료 시 결제 완료에 대한 데이터 반입을 웹훅에서 할 수 있도록 로직을 변경하였고, 만약 결제 도중 오류가 발생하면 관리자에게 메일이 갈 수 있도록 서버 구성을 진행하였습니다.

about 1

구독모델 구축 및 고도화

B2C 구독 모델은 아래의 과정들을 거쳐 현재의 모델로 업그레이드 되었습니다.

01

테스트환경 구축

본격적인 개발을 위해 가장 먼저 한 것은 테스트 환경을 구축하는 것이었습니다.기존에 이용하던 결제 서비스는 오랫동안 그 형태가 고정되어 있어 별도의 테스트 환경이 구축 되어 있지 않았습니다.따라서 테스트 코드를 작성하고 개발 서버에서 결제 테스트 진행이 가능하도록 환경을 구축하며 구독 결제 서비스의 개발을 진행 하였습니다

02

구독권 자동 결제 기능 추가

그렇게 완성된 첫 B2C 구독권 상품은 MVP 모델의 성격이 강했습니다. 일단 결제와 연동하여 기간 구독 시스템이 제대로 작동되는지에 대해 초점을 맞춰 개발했기 때문에 자동결제 기능은 포함되지 않았습니다.즉 1개월, 3개월권을 구매하면 해당 기간은 자유롭게 이용이 가능하나 이후 자동으로 기간이 연장되지 않아 사용자가 다시 구독권을 구매해야 했습니다. MVP 개발이 성공적으로 완료된 이후, 정말 구독의 개념이 될 수 있도록 기존 배치 서버에 자동 결제 로직을 추가 진행하였습니다.

03

1년 구독권 개발&부분환불

자동 결제를 추가한 뒤에는 1년 구독권이라는 기간제 상품을 추가하였고, 부분 환불 로직을 개발 하였습니다. 이제는 완전한 개발을 앞두고 있었기 때문에 결제에서 중요한 부분인 트랜잭션 처리나 오류 발생 처리, 관리자 알림 기능 및 로그 기록하는 부분 들까지 꼼꼼하게 마무리 작업을 진행했습니다.

04

기타 개발 사항

가장 마지막에는 구독권 유형이나 결제수단의 변경이 가능하도록 로직 개편을 하거나 구독권을 쿠폰으로도 이용 가능하도록 하는 기능을 추가 하는 등 이용자의 편의성과 관련된 세부 사항들을 개발해 나가며 B2C 구독모델의 완성도를 높여갔습니다.

people

서비스를 개발하며 얻은 것들

- 아임포트를 통한 결제 서비스 구축 경험- 네이버페이, 카카오페이, 토스 페이먼츠 등 PG 사 추가 경험- node.js 를 통한 웹훅 서버 생성 경험- AWS 인프라 구축(ec2, sg , route 53) 경험- 카카오 알림톡 발송 경험… 등등…

채용 공고 보러가기 ↗︎

서로 코드리뷰를 하면서 더 효율적인 방안으로 코드를 작성하는 방법을 배우고 리펙토링을 진행하며 정말 많은 것들을 배울 수 있었던 프로젝트 였습니다. 다 처음 해보는 것들이었기 때문에 따로 공부를 진행하며 정말 울며 겨자 먹기로 개발을 진행한 부분들도 많았습니다. 이게 개발이 잘 되고 있는 건지 그냥 굴러 가게만 개발을 하고 있는 건 아닌지..😂 그래도 아는 만큼 보인다고 이전에 작성했던 코드들을 보면서 “아 이런 건 이렇게 만들었어야 했는데.. 이렇게 수정을 좀 해야겠다.. ” 하는 생각이 들때면 이전보다 성장했구나 하는 마음이 들어 뿌듯하기도 합니다! 이번 포스팅은 여기서 마치도록 하겠습니다! 긴글 읽어주셔서 감사합니다!

img

homepage logo image
누리미디어
문화
블로그
채용