[개안뽑] ㉓정기 결제 시스템 붙이다보니 생긴 각종 디버깅, 호환성 문제와 개발자들의 해결자세

pabii research
호환 안 되는 서비스에 대한 정보 찾기 못하는 개발자 투성이
바로 적용할 수 있는 단순한 해답 없으면 포기하는 인력들이 대부분
결국 자동화 시스템이 확산되면서 2, 3류 개발자들은 도태될 것

현재 파비리서치 웹사이트에는 Cloudflare의 여러 기능 중 APO(Automatic Platform Optimization)이라는 기능이 추가되어 있다. Cloudflare는 웹사이트 앞에 붙어서 접속하려는 트래픽이 이상한 경우에는 에러 메세지를 보내는 보안 서비스와, 글로벌 서버에 우리 웹사이트를 저장해서 갖고 있다가 접속자 근처에 있는 서버에서 바로 정보를 보여주는 CDN기반 캐시 서비스로 널리 알려져 있다.

우리 회사가 APO를 쓰게 된 것은 영어로 번역기가 돌아간 서비스가 글로벌 사용자를 대상으로 진행되고 있기 때문이다. 대표적인 예시가 아래의 사이트들이다.

그런데, 파비리서치만 멤버십, 회원 결제가 함께 돌아가는 와중에 APO가 붙으니까 관리자 페이지를 캐시해 가기도 하고, KG이니시스 결제모듈이 떠서 결제를 했는데 내용이 반영이 안 되거나, 결제 네이버/카카오로 로그인을 했는데 로그인이 안 된 화면이 나오기도 했다. 해외 서비스들만 했으면 안 나타날 상황이 한국이라 터진 것이다.

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

해외 서비스와 호환되지 않는 한국 전용 기능들

자, 같은 상황이 한국에서 터졌다고 생각해보자. 일반적인 개발자들은

  • 최근 코드, 검증된 코드를 썼기 떄문에 문제가 있을리 없다
  • 개발 코드 문제가 아니니 개발한테 묻지 마라 (라고 하는데 그래도 너네가 답을 찾아야 한다고 지적하면)
  • 왜 문제가 생겼는지 알아봐야 한다

라고 이야기를 하고는 한국인 개발자 커뮤니티에 질문을 올리고, 어쩌다 영어로 된 해결책들을 찾더라도 구글 번역기를 쓰고 있을 것이다. 한국에서 사용자가 그나마 많은 서비스라면 한국인 개발자 커뮤니티들에서 어떻게 답변을 찾을 수 있을지 모르지만, 한국에서 사용자가 많지 않은 서비스라면

  • 검증되지 않은 코드를 써서 이런 문제가 생겼기 때문에 서비스를 바꿔야 한다

라고 주장할 것이다. 몇 달간 만든 서비스를 다시 뜯어고치려면 또 긴 시간을 써야 한다. 단순히 한국에는 Cloudflare의 APO가 맞지 않으니까 국내 서비스를 찾아라는 식으로 답을 던지고는, 적절한 대안을 찾는 것은 대표 너의 일이지 개발자인 나의 일이 아니라는 태도를 보일 가능성이 높다. 그간 겪어본 개발자 애들은 개발자 커뮤니티에서 추천 받은 정보 이상으로 본인들이 열심히 자료 조사를 하고, 우리 회사 사정에 적합한 서비스를 찾고, 그 서비스가 조금 문제가 생겼을 때 미세 조정을 위해 뜯어고치는 일을 할 수 있는 인력들이 아니었기 때문이다. 즉, ‘못하는 일’인 것이다.

이걸 다른 직원들한테 이야기하면

  • 개발자 업무 아닌가요?

라고 자기는 모르겠다고 발을 빼고, 실제로 관련 문서들을 읽고 이해할 능력도 없다. 당연히 자기는 무슨 말인지 모르니까 개발자들은 알겠지라고 생각할 수밖에 없을 것이다. 같은 맥락에서 개발자들도

  • 무슨 서비스를 쓰라고 정하면 그걸 쓰겠다

는 태도이기 때문에, 회사에서 무슨 외부 솔루션을 써서 어떻게 문제를 해결하는 것이 가장 효율적이라는 자료 조사를 하는 사람이 있기 어렵다. 기껏해야 개발자들이 갖고 오는 해결책이라는게 개발자 커뮤니티들에서 주워들은 정보이고, 그 솔루션을 쓰는 사람들이 많다고 해야, 거기서 대답을 잘 해 준다고해야, 그 서비스 이름을 공유해주는 정도다. 괜히 말했다가 ‘이상한 거 공부해야 된다’라고 생각하더라.

원칙적으로 했어야 하는 접근

위의 문제가 생겼을 때, 가장 먼저 했던 것은 Cloudflare 커뮤니티에서 유사한 사례를 검색하는 작업이었다. 뾰족히 만족스러운 대답을 찾을 수 없었고, 회사 사정을 상세하게 담아 커뮤니티에 질문 글을 올렸다. 대답이 금방 돌아오지 않고, 최소한 24시간, 주말이 끼어있을 경우에는 3~4일이 걸릴 수 있다는 것을 알고 있으니까, 답을 하염없이 기다릴 게 아니라 내 나름대로 문제의 원인을 찾고, 해결 조건들을 따져봤다.

가장 먼저 찾은 해결책들은 로그인 사용자들의 Cookie 정보에 맞춰 APO가 적용되는 방식을 세분화할 수 있도록 Cloudflare의 Enterprise 버전을 쓰라는 것이었다. 1개 웹사이트 당 월 200달러를 내야 한다. 어쩌면 월 200달러를 내는게 합리적인 해결책이었을 수도 있는데, Enterprise 버전을 써도 Cookie 문제 해결하는데는 여전히 세부 셋팅을 직접 해야된다는 커뮤니티 글들이 계속 눈에 밟혔다.

어차피 모든 Cookie에 대해서 따로 지정을 해 줘야 하는게 아니라, 사용자 권한별로 직접 기사 편집을 하는 부류, 유료 가입자, 무료 가입자, 비 가입자, 이렇게 4개의 기능으로 구분이 된다는 것을 먼저 따져봤다. 이 중 유료 가입자, 혹은 유료 가입을 위해서 무료 가입을 막 진행한 사람들만 문제가 되는 상황인만큼, 이 분들에 대한 해결책을 찾으면 되는 것이지, 굳이 무턱대고 월 200달러 결제를 해야할 이유는 없다.

어차피 직접 기사 편집을 하면서 관리자 페이지를 보는 분들은 로그인 작업이 분리되어 있으니까, 유료/무료 가입자들이 로그인 직후 어떤 페이지를 보여줄지만 작업하면 되겠더라.

다행스럽게 Cloudflare의 각종 기능을 미세조정해주는 플러그인 중에 Super Cache for Cloudflare라는걸 쓰고 있는데, 거기에 로그인한 사용자들에게 캐시된 정보를 보여주는 방식을 바꾸기 위해 했던 셋팅이 있었다.

평균 90% 이상의 사용자들이 캐시된 정보를 보고 있어서 웹사이트 접속 속도가 비약적으로 빨라져 있었는데, 저 셋팅을 바꾸고 테스트를 하려면 어쩔 수 없이 캐시를 꺼야 되겠더라. 1주일 넘게 0%에서 90%까지 끌어올리느라 많은 시간과 노력을 썼는데, 캐시를 끄고 다 삭제하려니 가슴이 아팠지만, 위의 문제를 해결하겠다고 확신도 없는 월 200달러 프리미엄 서비스를 덜컥 결제할 수는 없었다. 앞으로 돌려야 하는 서비스가 1개만 있는 것도 아니고, 글로벌로 돌아가는 서비스들에 모두 월 200달러씩 적용하면 트래픽도 많지 않은 초창기 서비스가 월 몇 천 달러를 써야할 상황이었기 때문이다.

저걸 끄고 1일 후에도 네이버/카카오 계정이 정상적으로 로그인 절차가 진행됐고, 결제도 캐시 때문에 꼬이는 일이 없어졌다. 다만 보안 문제로 이메일 주소를 @naver.com에서 @example.com으로 변경해버리니까 로그인을 다시한번 더 해줘야 되는 일들이 종종 생기기는 하더라. 이건 캐시의 문제일수도 있고, 로그인 연동의 문제일 수도 있을텐데, 워낙 다른 일들이 많아 원인 파악을 완벽하게 하진 못한 상태다.

이런 문제들에 대한 원인을 찾고 해결책을 갖고 오라고 하면 한국인 개발자 중에 몇 명이나 내 눈높이를 충족시킬 수 있을까?

요즘 개발 팀에서 나와서 ‘해결사’ 비슷하게 일하는데 말야

학부 친구 중 하나가 모 유명 게임사에 개발자로 들어갔다가 이런 저런 일들을 한 이야기를 전해 들었는데, 그 때 들어떤 표현 중에

  • 요즘 개발 팀 일은 안 하고 ‘해결사’ 비슷하게 일하는데….

라는 구절이 기억난다. 그 회사 구조상 아마 대부분의 개발자들이 그 학부 친구처럼 머리가 번개같이 돌아가는 천재형 인력은 없었을 것이다.

내가 기억하는 그 친구의 학부 시절은, 남들은 ‘괴짜’라고 부르고, 실제로는 굉장히 비상한 머리로 남들과는 다른 해결책을 항상 찾아오던, 천재형 인재였다. 회사가 무슨 개발이건 하다가 막히는 일이 터지고, 기존 인력들은 시간만 허비하고 있는 상황이 많았을텐데, 그 친구가 문제의 원인을 파악하고, 필요한 정보를 매우 빠른 속도로 습득하고, 적절한 해결책을 순식간에 적용해서 회사의 온갖 문제를 풀어내는 자리에 배정됐다고 생각했는데, 속사정을 자세히 듣지는 않았지만 그런 방식으로 그 천재형 인재를 썼다면 회사에서 인재를 적절한 자리에 배정했다고 생각한다.

근데, 내가 보기에 그런 개발자 아니면 나머지 개발자들은 그냥 아파트 건설 인부랑 다를게 하나도 없는 기능직 막노동꾼들이다. 생각을 안 하고, 들은대로, 시킨대로, 그냥 정해진 시스템을 그대로 따라만 가고 있기 때문이다.

그리고 지난 2달, 이제 12월 말이니 3달간 내가 겪고 배운 것을 공유하고 있는 내용을 모두 따라오신 분들이면 공감을 하겠지만, 그 정도 인력들이 만들고 있는 시스템은 이미 워드프레스 정도에서 해결이 된다. 워드프레스가 만능이 아니지만, 모든 기능을 다 개발할 수 있는 시스템은 아니지만, 여러분들이 흔히 쓰고 있는 서비스들인 포털, 블로그, 유튜브, 게시판, 커뮤니티, 쇼핑몰 정도의 서비스는 이미 워드프레스가 지난 20년간 탄탄한 서비스 커뮤니티를 쌓아놨다.

고급 인력들만 살아남는 시대가 온다

개발들한테 시킨 결제 서비스를 내가 직접 붙이면서 많은 고난이 있었다. 위에 썼듯이 아직 내 마음에 들도록 깔끔하게 문제가 해결된 상태가 아니기 때문에 여전히 찜찜하다. 아마 무슨 기능이건 하나 추가할 때마다 위의 APO 사건처럼 호환성 이슈가 발생할 수 있고, 또 문제 해결에 상당한 시간을 써야 할 수 있다. 근데, 이제 한국인 일반 개발자들은 그런 문제를 해결할 수 있는 능력이 있는 경우가 아예 없다는 것에 대한 확신이 있기 때문에, 자신있게 한국어로 ‘[개안뽑]’을 외칠 수 있게 됐다.

반대로, 저 위의 천재인데 왜 기업에서 자기 천재성을 썩히고 있는지 모르겠는 저 개발자 학부 친구같은 인재들은 ‘안 뽑’이 아니라 ‘반드시 뽑’아야 하는 인재다. 그리고, 저런 인재들만 개발자로 고액 연봉을 받고 살아남아야지, 다른 인력들은 인도, 동유럽 같은 나라들에 있는 저비용 인력들로 다 대체되어야 한다.

한국은 고급 인력을 육성하는데 실패한 나라다. 대학 교육은 사실상 망했고, 폐교 수순만 남았다. 고급 교육을 받은 인재들이 글로벌에서 경쟁력 있는 상품을 만들어낸 것은 반도체/자동차가 유이하고, 나머지 기업 중 글로벌 경쟁력이 있는 곳들이 있다면 아마 회사 오너가 저 위의 천재 같은 인재였기 때문이지, 채용한 인력들의 노력으로 그런 상품을 뽑아낸 곳을 없었을 것이라고 자신있게 이야기할 수 있게 됐다.

인력 양성이야 어차피 어느 나라나 저런 천재들이 앞서가고, 나머지들은 그저 따라가기만 하는 수준이니 그렇다 치더라도, 한국에서 사회 초년병 시절 경험이나 귀국 후 지난 몇 년간 이런저런 인력을 뽑으면서 알게된 국내 인력들의 사고 방식 상태를 보면, 인력 양성보다 인력들의 사고 방식 문제가 더 큰 것 같다. 어떤 문제가 생겼을 때 그걸 대응하기 위해 정보를 찾고, 회사가 원하는 해결책을 찾아내는 부분에서 굉장히 ‘쪽집게 과외형’으로 사고 방식이 갖춰져 있다. 말을 바꾸면, 답이 왜 5번인지가 중요한게 아니라, 5번이 답인 것을 알면 넘어가버리는 사람들이더라.

이번 러시아-우크라이나 전쟁에서 군인 대신 드론을 작전에 투입하고, 드론 4대, 10대, 100대가 작전을 동시에 수행할 수 있는 편대 비행을 할 수 있도록 게임이론과 머신러닝/딥러닝/인공지능을 엮어서 문제를 푸는 Military start-up에 막대한 투자금이 투입되는 걸 보면서, Multi-agent 게임을 자동화 알고리즘으로 풀어내는 인재 1명에게 드론 1,000대가 주어지면 적군 10만명을 너끈히 막을 수 있겠다 싶더라. 답이 왜 5번인지 알고, 더 어려운 문제를 풀어낼 수 있는 인재 1명이 있으면 5번이 답인 것을 외우고 넘어가는 인재 10만명을 제압할 수 있는 시대가 오는 것이다.

어차피 천재는 못 따라간다. 근데, 최소한 천재가 뭘 하는지를 알아야 그 드론 100대짜리 편대 1개를 모니터링이라도 할 수 있는 인재가 되지 않을까? 오늘은 ‘[개안뽑]’을 나 혼자서만 외치고 있을지 모르지만, 10년이 지나면 대부분의 IT기업들이 일반 개발자 1,000명 대신 천재 1명과 자동화 시스템 1대만 주는 것이 당연하다고 생각하게 될지도 모른다. 최소한 한국 개발자 쓰는 것보다 인도/동유럽 개발자 쓰는 것이 훨씬 더 효율적이라는 내 주장에 공감하는 사람들의 비중이 지금보다 훨씬 더 늘어나겠지.

Similar Posts