Skip to main content
[개안뽑] ㉒국내 정기 결제 서비스의 필수 요건에 맞춰 뜯어고친 시스템
Picture

Member for

5 months
Real name
Keith Lee
Bio
Head of GIAI Korea
Professor of AI/Data Science @ SIAI
결제 모듈 분리해서 정기 결제를 붙이려니 수 많은 사업 고민, 보안 고민, 관리 고민 이슈가 발생
적절한 해결책은 사업을 어떻게 풀어낼 것인지, 법 규정은 어떻게 되는지, 개발 요건은 어떻게 되는지 복합적으로 따져야
그저 시키는 것만 잘 하는 개발자가 있다고 해서 문제가 해결되는 것 아냐

예전 파비클래스에 결제 모듈을 연동시킬 때, 회원 가입이 없어도 결제를 할 수 있는 시스템일 경우에는 단순히 보험에 가입하고, 카드사 심사만으로 결제 심사가 끝났었다.

근데 이번엔 매주, 매월, 매년 정기 결제를 넣겠다고 하니 심사 절차가 훨씬 복잡해지더라. 가장 큰 문제는 회원 가입이 필수라는 부분이었는데, 지난 1월에 처음 생각했던 구조였다면 크게 복잡할 일이 없었지만, 서비스 웹사이트와 결제 웹사이트를 2개로 분리하게 되면서 문제의 난이도가 크게 올라가 버렸다.

회원 가입을 하는 순간에 결제 사이트에도 같은 회원을 하나 더 만들어야 되는 상황이 됐고, 두 개의 회원이 같은 회원 ID 정보를 갖도록 해야하는 것이다. 거기다 정기결제가 이뤄지면 서비스 사이트에도 사용자 권한이 변경되어야 했다. 하나의 웹사이트에 묶어놨으면 단순히 귀찮은 작업 몇 개면 끝날 일이었는데 (물론 그 마저도 못 했던 개발자들이 들으면 어떻게 생각할지 모르겠지만), 보안 문제를 철저하게 대응하겠다고 2개의 웹사이트로 분리하면서 생각지도 못했던 수 많은 문제들을 대응해야 하는 상황이 됐다.

후술하겠지만, 정말 수십번도 더 많은 유혹이 있었다. 그냥 보안이고 뭐고 다 포기하고, 하나의 사이트로 뭉치고 싶더라. 고민해야 할 주제들이 너무 많았기 때문이다.

개발자-안-뽑음_202312
개발자-안-뽑음_202312

회원 가입 연동: 1개 사이트 -> N개 사이트

일단 파비리서치에 가입하면 (주)파비에서 제공하는 모든 사이트에 가입하는 것이라는 방식으로 이용약관을 변경했다. 이것 때문에 회사 내에서 운영하는 한국어 서비스들을 모두 pabii.com 산하에 이동시켜야 아닌가는 고민을 좀 했었는데, OTT랭킹(ottranking.com)의 경우는 실제로 11월까지만해도 리뉴얼 후에는 파비플레이(play.pabii.com)으로 운영할 계획이었기도 했다. 그러다 웹사이트 이름이 매우 중요하다는 시장 이해, 번역 서비스의 등장 등으로 인해 한국어 서비스 이름을 분리하기보다는 1개 이름으로 통합하기로 결정하면서 결국에는 영문 명칭인 OTT Ranking으로 정리되었던 적도 있다.

특히, SIAI 산하의 SIAI Extension School (한국식 평생교육원)으로 이동시킬 예정인 파비클래스의 경우, SIAI 산하로 들어가면서 한국어 서비스가 추가되는 수준인데 거기에 굳이 파비클래스라는 이름을 고집할 필요가 없지 않냐고 생각하는 중이다. 어차피 영어권 대상 AI/Data Science 전문 연구/교육 기관이 곁다리로 운영하는 평생교육원에 번역기 하나 덧붙여주면서 (주)파비 산하에 따로 독립형 서비스를 만들 필요는 없다는 결론이 섰다. 위의 OTT Ranking도 같은 맥락에서 결정이 된 셈이다.

그 외에는 대부분 영문 서비스라 굳이 pabii.com으로 이동시킬 필요는 없는데, 워드프레스 커뮤니티 서비스 (이걸 기반으로 개발자 없이 벤처기업 도전하는 분들을 지원하려고 생각 중이다), 웹소설/웹툰 작가들이 OTT Ranking의 번역 서비스를 이용해 글로벌 시장에 도전하려고 할 때 테스트 사이트들 정도는 향후 한국어 사용자 전용으로 공급할 계획인만큼, 멀리보고 pabii.com 가입자들 대상으로 계정 총괄 사이트도 만들어야겠다는 생각을 하게 됐다.

그래서 현재는 파비리서치 가입자들은 자동으로 아래의 계정이 동시에 생긴다

  • 파비리서치(https://research.pabii.com)
  • 파비페이(https://pay.pabii.com)
  • 파비계정(https://account.pabii.com ) - 가칭

글로벌 서비스들이랑 계정 관리를 통합할지, 분리할지 아직 미확정 상태인데, 거기에 맞춰 다른 글로벌 서비스 계정들을 따로 만들지 여부가 최종 확정이 될 것이다. 그간 한국어 사용자들의 행동 양태를 봤을 때 글로벌 서비스 계정으로 통합할 경우에는 거기에 또다시 한국어 번역기를 붙여줘야 될 것 같아서 관리가 불편하더라도 분리 서비스를 만들어야하지 않나는 생각도 있고, 다른 한편으로는 한국에 (주)파비 이름으로 내놓는 서비스들을 쓸 수 있는 인력들이 그리 많지 않을 것 같고, 있더라도 영어로 된 계정 관리가 그렇게 부담스러울 것 같지 않아서 글로벌 통합 계정 서비스로 뭉치는 것이 맞을 것 같다는 생각도 있다. 아마 내가 한국인이 아니었다면, 한국에 서비스를 내놓을 생각도 안 했을 것이고, 한국인들을 대상으로 언어 지원을 할 생각조차 하지도 않았겠지.

회원 가입 연동: 결제 정보 연동

여러개 웹사이트에 동시에 계정이 만들어지도록 만들면서 생긴 고민은, 도대체 어느 사이트에서 프로필 사진, 닉네임 같은 정보를 관리하고, 자기가 남긴 글, 댓글 같은 것들을 관리할 수 있도록 해 줘야하는 문제였다. 이걸 모든 사이트에서 다 따로 관리할 수도 있고, 1개의 통합 계정에서 관리할 수도 있을텐데, 모든 서비스가 다 나오지도 않은 오늘 시점에 가장 합리적인 것은 파비리서치에서 관리하는 것이겠지만, 당장 OTT랭킹에 웹툰/웹소설 등록하는 작가들만 받아도 상황은 바뀌게 된다. 그 때 되어서 다시 추가 서비스를 만들지, 그 때는 OTT랭킹 전용으로 따로 계정 관리 프로그램을 만들지 등등으로 고민이 많은데, 계정 관리를 각각 서비스에서 따로 할 경우에 또다시 관리 문제가 생긴다는 것을 깨닫게 됐다.

모든 정보를 1개 사이트에서 총괄할 수 있도록 해 줘야 관리 문제가 크게 줄어드는만큼, 통합 계정 서비스를 하나 만들어야 된다는 결론을 얻게 됐다. 앞에 쓴 대로 한국어 사용 대상자들 대상으로 서비스를 일괄 pabii.com으로 몰아넣을지 말지 확정을 못한 상태인데, 그렇다고 파비페이를 글로벌 페이 서비스 명칭으로 쓸 수는 없는만큼, 어쩔 수 없이 한국어 사용자들 대상으로 분리된 통합 계정 서비스를 만들기는 해야될 것 같다.

여기까지 생각을 하고 나니 결제 정보 연동 부분도 한국 서비스 대상으로 분리해야겠다는 생각으로 정리됐고, 계정 관리 서비스에 결제 정보를 연동하는 시스템을 구축해야겠더라.

이 시점에 괜히 파비리서치/파비페이 분리하는 건가는 생각이 슬몃 들었다. 일이 너무 커져버렸기 때문이다. 몇 년 지나지 않아 한국에서 전체 매출액의 10%도 안 나올텐데, 굳이 한국인, 한국어 전용 서비스를 만드는데 이렇게 시간을 써야 할까? 이 시장이 이렇게 힘들여 고생해야 될 시장이 아닌 곳인데?

정기 결제 모듈 연동: 신용카드사 연동 밖에 안 된다?

처음 주당 3,300원 결제 서비스를 계획하던 시점에 내 머리 속에는 휴대폰 정기 결제가 있었다. 1달 휴대폰 요금이 아무리 적게 내더라도 한국 구조상 2~3만원은 나올텐데, 1달에 13,200원을 더 내는 식으로 얹혀가면 되겠다는 생각도 들었고, 저렇게 주당 3,300원 결제하는 분들이 1번만 결제해서 몰아보고는 또 한참 있다가 다시 또 결제하는 방식으로 움직일 것이라는 지레짐작이 있었기 때문이다.

근데, 원래부터 쓰던 KG이니시스도 그렇고, 그 외 각종 결제 모듈들을 살펴봤는데, 정기 결제는 그 자체도 심사 절차가 복잡하고, 우리 회사가 심사 받을 수 있는 내용은 신용카드 밖에 없단다.

앞으로 여러 절차를 거쳐 추가 인증을 더 받을 수는 있겠지만, 당장은 신용카드 결제 밖에 안 되고, 정기 결제를 위해서 개인 식별자를 따로 받아야 되어서, 사용자 숫자가 1천명을 넘어가면 개인 정보 관리 문제로 개인정보보호위원회에 보고를 해야된단다.

해외 서비스였으면 페이팔(Paypal) 정기 결제만 하나 붙이면 굳이 우커머스 결제 연동하려고 고생하던 것부터 시작해서 이렇게까지 복잡하고 시간만 질질 끄는 심사를 받을 이유가 없었을텐데, 개인 정보 관리 문제로 또 정부 기관에 보고까지 해야된다니, 솔직히 '한국에서 진짜 사업하기 싫다'는 생각 밖에 안 들더라.

결국 전화번호를 개인 식별자로 쓰는 KG이니시스를 쓰면서 이메일을 변형해서 저장하는 방식을 선택했다. 네이버/카카오 등에서 지원하는 페이 서비스를 쓰면 그 분들이 갖고 있는 개인ID/이메일로 개인식별자를 쓰던데, 그렇게 바꾸는 것이 합리적일지, 개인ID/이메일 대신 전화번호를 받고 보안 설정을 하는 것이 합리적인지 쉬운 결정은 아니었고, 지금도 계속 고민 중이다.

만약에 파비페이가 해킹을 당해서 결제 정보가 외부에 유출됐다고 했을 때, 네이버/카카오 연동이 되어 있으면 그 분들의 네이버/카카오 ID가 공개된다. 아마 보이스 피싱 회사들이 그걸 범죄에 이용할 것이다. 개인ID/이메일을 Hash해서 변형한 정보만 저장해놓고, 정기 결제의 Key값을 전화번호로 한 다면? 역시 전화번호가 유출되면 상황은 별반 다를 게 없다. 그럼 그 전화번호를 내부 DB에는 역시 Hash 처리해서 갖고 있다가 정기결제가 되는 시점에만 원형으로 복구해서 쓴다면? 이쪽이 조금은 더 안전해 보이기는 하는데, 다른 한편으로는 구독자가 전화번호를 직접 입력해야하는 부분이 귀찮게 느껴질 것 같다. 굳이 Hash 처리해서 저장할 꺼라면 네이버/카카오ID도 그렇게 변형해서 갖고 있으면 되는거잖아?

사실 1월에 개발자들에게 정기 결제 모듈 연동을 부탁했을 때 내가 원했던 내용들이 위에서 내가 고민했던 내용들을 좀 나 대신 고민해달라는 거였다.

근데, 한국에서 그간 인력을 뽑아보고, 그들의 학습 속도, 생각의 범위 같은 것들이 가진 한계를 겪어보고, 결정적으로 개발자, 디자이너 같은 '기능직' 분들이 사업을 이해하고 거기에 맞춰 '기능'을 만드는 부분에서 매우 제한적인 사고를 갖고 있는 것을 보면서 그냥 기대를 안 하게 됐다.

위의 사항은 내가 직접, 앞으로 1~2달, 길어지면 1년간 계속 뇌의 어느 부분이 고민하다가, 사업적으로 적절한 선택을 하고, 거기에 맞게 '기능'을 개발하고, 디자인을 뽑아내는 작업을 거쳐야 할 것이다.

개발자들아, 사업 목적에 맞게 개발할 수 있어야 월급 받을 자격 있는거야

다른 글에서 쓴 대로, 한국형 개발자들이 시키는 것을 속칭 '까라면 까'는 사고 방식으로 접근하는 것에 뛰어난 반면, 사업을 이해하고 거기에 맞춰 기능을 변형하는 부분에서 심각한 결함을 갖고 있다. 내가 뽑았던 인력들은 심지어 소셜 로그인 연동마저도 플러그인 하나 붙여놓고 더 이상 손을 못 대는 수준이었으니 '까라고 해도 까지 못하는' 경우였다고 생각이 되긴 하는데, 국내 개발자 수준이 '깔 수 있느냐'로 결정된다고 한다면 내 입장에서는 아예 한국인 개발자들에게 급여를 주고 싶지 않아진다.

내 입장에서 '깔 수 있느냐'에서 당연히 Yes가 안 되면 개발자라는 직업명을 가질 자격이 없는 분들이고, 경력직으로 인정받고 싶으면 사업 목적을 듣고 이해하고, 거기에 적합한 개발을 갖고 오는 것이다. 내가 사업 목적에 맞는 개발 관련 지식을 다 뒤져보고 나면, 나는 개발자들에게 설명시키는 시간에 직접 다 만들 수 있고, 그간 경험을 봤을 때 더 빠르고, 더 효율적이다. 결정적으로, 개발이 안 된다고 했을 때 플랜B를 뭘로 할 것이냐라는 고민이 생길 때도, 역시 사업 목적을 가장 잘 이해하고 있고, 관련 법 규정을 직접 공부했기 때문에 가장 적합한 대안을 찾을 수 있다. 뭐가 안 된다고 할 때마다 개발자들에게 또 다시 설명해주는 시간을 쓰는 것은 내 입장에서는 바보 같은 선택이다.

예전에 자기네 기업가치가 10조원이라고 주장하는 모 스타트업에서 일했던 어느 로스쿨 출신 변호사가

  • 너네 감옥 안 가도록 도와주는데 왜 자꾸 날더러 너네 사업 망친다고 그러냐

라는 불만을 표현하는 걸 들은 적이 있다. 그 회사가 '기술 회사', '기술 스타트업'이라고 홍보하는 곳인데, 난 그 변호사의 불만을 들으면서

  • '기술'회사는 무슨, '기능'회사지, 너네가 진짜 글로벌에서 쓰는 'IT기술'이 있냐, 그렇다고 SIAI 수준의 수학/통계학 기반 AI/DS로 시스템을 만들 능력이 있냐, 그냥 한국에 워낙 개발 애들이 심각하니 좀 더 깔끔하게 잘 만드는 '기능'력 수준인 주제에 왜 저렇게 변호사 말 안 듣고 고집이나 피우냐
  • 법, 규정에 맞춰 개발해야 그게 진짜 개발이지, 자기들이 망상하는대로 만드는건 개발이 아니라 그저 개발자들 자존심 싸움, 공돌이들 망상이지
  • 개발자들이 기능직군이라 대학 학위 제대로 공부한 애들도 없을 것이고, 당연히 법 조항 하나 제대로 이해하는 애들도 거의 없을텐데, 변호사가 하나하나 다 설명하려면 얼마나 많은 시간을 써야 했을까...

라고 생각했었다.

전술한대로, 한국은 '개발할 수 있느냐'에서 이미 막히는 개발자들 투성이인 나라다. 상황에 맞게 개발할 수 있도록 설명을 듣고 이해할 수 있는 개발자는 당연히 희귀하다. 사업을 이해하고, 관련 법 규정을 이해하면서 따라갈 수 있는 개발자는 과연 몇 명이나 될까?

  • 나는 Go lang, 함수형 언어... 같은 성능 좋다고 알려졌지만 쓸 수 있는 사람이 별로 없는 개발 언어를 쓸 수 있으니까 고급 개발자다
  • 나는 서버 분산 처리를 WAS, DB에서 서버 100대까지 해 본 경험이 있는 Scale-out 전문 개발자다

저런 지식을 2달 안에 다 배우고 직접 회사 웹서비스를 Scale-out하고, 빅데이터 시스템을 만들고 있는 내 입장에서는 저걸 해 본 경험치가 더 급여를 높이는 원인이 되는 이유를 모르겠다. 개발 언어를 못 배우면, Scale-out 같은 기본 지식을 빨리 못 배우면, 그건 아예 개발자 자격이 없는 거 아닌가? 회사가 필요한 내용이 있으면 빠르게 배우고 거기에 맞춰서 시스템을 고칠 수 있느냐, 최적 해결책을 얼마나 더 잘 뽑아내느냐가 연봉 상승의 조건이야 하지 않을까?

달라는 연봉 주고, 가르치고, 따라오는거 기다리느니, 그냥 내가 직접 하는 게 더 빠를 것 같다. 아니 그간 겪어보니 압도적으로 더 빠르다.

Picture

Member for

5 months
Real name
Keith Lee
Bio
Head of GIAI Korea
Professor of AI/Data Science @ SIAI