직접 붙고 싶었다

신고가 끝나면 고객에게 알림을 보낸다. 그때까지는 사람이 하나씩 보내고 있었고, 이걸 우리 시스템에서 보내게 하려고 했다.

경로는 카카오톡 알림톡으로 정했다. 신고가 끝났다는 통지는 알림톡이 받는 정보성 메시지에 그대로 맞고, 받는 사람이 채널을 친구로 추가하지 않아도 받는다.

계획서에는 연결 방식을 "직연동"이라고 적었다. 중간에 아무것도 안 끼우고 우리 서버가 카카오에 바로 붙는 것이다.

아무나 못 붙는다

알아보니 그렇게 되는 구조가 아니었다.

카카오톡 알림은 카카오가 심사해서 인증한 회사들만 본사 시스템에 직접 연결할 수 있다. 나머지는 전부 이 심사통과업체를 거쳐서 보낸다. 예외가 없다. 팝빌 같은 중계 서비스들이 심사통과업체를 거쳐 알림톡을 보내주는 쪽이다.

인증을 받으려면 발송 실적과 매출, 보증금, 기술 심사를 넘어야 한다. 앞의 셋은 규모를 보는 조건이다.

실무자 세 명인 세무사무소가 낼 수 있는 게 아니다. 계획서에는 글자 그대로 추진하면 영업 응대조차 받기 어렵고, 받더라도 자격이 안 된다고 적어뒀다.

이건 기술 문제가 아니다. 코드를 잘 짜서 넘을 수 있는 벽이 아니다. 작은 사업장에서 뭔가를 붙이려고 할 때 자주 만나는 종류의 벽이고, 대개 문서 어디에도 "당신은 자격이 없습니다"라고 안 적혀 있다. 조건을 읽고 스스로 알아채야 한다.

"직연동"에는 뜻이 둘 섞여 있었다

남은 길은 하나였다. 심사통과업체를 거쳐서 보내는 것이다. 그러면 계획서의 "직연동"은 통째로 막힌 셈인데, 그 단어를 다시 뜯어보니 뜻이 둘 섞여 있었다.

하나는 카카오와 직접 계약을 맺는 것이다. 이건 자격이 안 돼서 불가능하다.

다른 하나는 사람이 남의 사이트에 로그인해서 손으로 보내지 않는 것이다. 중계 서비스들은 대개 자기네 웹 화면을 주고, 거기 로그인해서 보내면 발송은 된다. 다만 그건 우리 시스템 밖에서 일어나는 일이다. 원래 만들려던 것에는 보낸 기록을 우리 쪽에 쌓고 실패한 건 우리 화면에서 다시 보내는 일까지 들어 있었다. 남의 화면에서 보내면 그 기록부터 우리 쪽에 없다.

내가 진짜로 원한 건 두 번째였다. 첫 번째는 그걸 이루는 방법이라고 착각한 거였다.

비교도 처음부터 잘못 세워져 있었다. "직접 붙는 것"과 "거쳐서 보내는 것"을 견주고 있었는데, 직접 붙는 건 애초에 선택지가 아니었다. 실제 선택지는 "거쳐서 보내는 것"과 "지금처럼 사람이 손으로 보내는 것" 둘이었다.

그러면 답이 나온다. 중계 서비스를 거치더라도, 그쪽이 열어둔 연결 통로를 우리 서버가 직접 부르면 된다. 사람은 남의 콘솔에 로그인하지 않고, 발송은 우리 화면에서 우리 시스템을 통해 나간다. 원하던 건 그대로 된다.

팝빌은 이미 있었다

어디를 거칠지도 답이 있었다. 이 시스템을 처음 짤 때부터 외부 연동은 팝빌로 하기로 정해두고 계정도 열어뒀는데, 팝빌이 바로 그 알림톡 중계를 하는 곳이었다. 새로 계약할 곳도, 새로 결제를 걸 곳도 없었다.

처음 짤 때 규칙도 하나 걸어뒀다. 팝빌 코드는 연동 전용 자리에만 들어오고, 핵심 로직 쪽에서 팝빌을 직접 부르면 빌드가 깨진다. 나중에 중계 서비스를 바꿔야 하면 그 자리 하나만 바꾸면 된다. 그렇게 자리만 만들어두고, 팝빌을 실제로 부른 건 알림톡이 처음이었다.

1인이 운영하는 시스템에서는 관리해야 할 계정이 하나 늘어나는 게 기능 하나 만드는 것보다 무거울 때가 있다. 결국 거래처는 하나도 안 늘리고 끝났다.

팝빌로 알림톡을 붙이는 순서

붙이는 순서는 넷이다.

  1. 사무소 카카오 채널을 팝빌에 연결한다. 알림톡은 카카오 비즈니스 채널 이름으로 나가는데, 채널은 이미 만들어져 있었다. 팝빌 관리 화면에서 그 채널을 등록한다.
  2. 보낼 문구를 팝빌에 템플릿으로 올려 카카오 심사를 받는다. 알림톡은 심사를 통과한 문구만 보낸다. 정보를 알리는 통지만 되고 광고처럼 읽히는 표현이나 혜택 안내가 섞이면 떨어진다. 굵은 글씨는 아예 안 되고 이모지도 줄여야 해서, 내가 써둔 초안에서 굵은 글씨가 빠지고 이모지 다섯 개가 빠졌다. 세목마다 문구가 따로 필요해 다섯 종을 잡았다가, 종소세 납부 안내와 환급 안내 두 종으로 먼저 시작하고 나머지는 운영이 자리 잡으면 붙이기로 했다. 심사는 한 번에 2~3영업일쯤 걸리고 문구를 고치면 다시 받는다. 넷 중 제일 오래 걸리는 게 이 심사다.
  3. 팝빌 연동 키를 서버에 넣는다. 키는 시험용과 운영용이 따로다. 가입하면 시험용이 나오고, 운영용은 운영 전환을 신청해야 메일로 따로 온다. 시험 환경은 요금이 나가지 않고, 운영 쪽에서 심사를 통과한 채널과 템플릿이 시험 쪽에도 따라온다. 시험용 키로 운영 쪽을 부르면 오류로 돌아온다.
  4. 서버가 팝빌 SDK로 알림톡을 보낸다. 고객 이름이나 금액 같은 빈칸은 우리 시스템이 채우고, 템플릿은 팝빌이 매긴 번호로 고른다. 카톡이 안 닿는 사람에게 문자로 대신 보내는 기능도 있는데, 그러려면 보내는 번호를 팝빌에 따로 인증받아야 하고 통신사에서 이용증명원을 떼어 올려야 한다. 처음엔 알림톡만으로 시작하기로 했다.

붙여보니 계획서와 달랐던 것

계획서대로 되지 않은 게 셋이었다.

  1. 계획서에는 채널을 연결한 뒤 '발신 키'를 따로 받는 단계가 있었다. 막상 SDK를 열어보니 그런 값을 넣는 자리가 아예 없었고, 채널만 연결돼 있으면 보낼 수 있었다.
  2. 템플릿 번호도 예상과 달랐다. 카카오 쪽에서 매기는 템플릿 ID를 쓰는 줄 알았는데, 발송 때 넘기는 건 팝빌이 따로 매긴 숫자였다.
  3. 팝빌 키를 비워둔 채 운영 서버에 배포했더니 서버가 통째로 안 떴다. 키는 심사가 끝나면 넣을 생각이었다. 키가 없으면 알림 쪽만 꺼지게 해뒀는데, 그 알림 쪽을 쓰는 다른 부분이 빈자리를 못 견뎠다. 키 칸에 "심사 끝나면 교체"라는 임시 값을 채우고서야 올라왔다.

셋째는 처음 짤 때 걸어둔 규칙과 부딪힌다. 팝빌 코드는 한 자리에 가둬뒀는데, 그 자리가 비자 서버 전체가 섰다. 남의 코드를 한곳에 가두는 것과, 남이 없을 때도 버티게 만드는 건 다른 일이었다.

남길 것

계획서에 "직연동"이라고 적었을 때, 나는 방법을 목표 자리에 적어두고 있었다. 그래서 그 방법이 막히자 목표까지 같이 막힌 것처럼 보였다.

막힌 게 목표인지 방법인지는 구분해야 한다. 대부분은 방법이 막힌다. 그리고 방법이 막혔을 때 물어볼 건 어떻게 뚫느냐가 아니라, 내가 원래 뭘 하려던 거였느냐다.

작은 사업장에서 뭘 붙이려다 자격에서 걸리는 일은 앞으로도 계속 있을 것이다. 그때마다 규모를 키워서 자격을 맞출 수는 없다. 대신 원하던 것을 다시 적어보면 대개 다른 길이 하나쯤 있다.

profile
AI를 부려 낯선 도메인을 해체하고 현장의 문제를 해결합니다.

0개의 댓글