본문 바로가기

일상/개인 생각

카카오톡 자동 응답 라이브러리 일지

반응형

카카오톡에서 플러스 친구 응답 API를 공개한지 대략 2년이 지났다. API 문서를 보면 해당 API를 구현할 수 있는 스펙에 대해 설명하고 curl 요청과 응답 예시를 들어 놓았다.
즉, 아무래도 curl 요청과 같은 비개발자들이 다루지 못해봤던 내용이 있기도 하고, sdk 또한 제공하지 않아서 스펙에 맞게 직접 구현하는 방법밖에 없었다. 그리고 에러가 발생했을 때 에러 코드 대한 설명이 매우 빈약한 편이다. "415 wrong keyboard initialize"라고 하는데 이게 서버가 요청을 받아오지 못해서 생기는 이슈인 건지 아니면 json 코드를 파싱할 때 에러가 발생한 것인지가 확인이 불가해서 디버깅을 할 때 많은 어려움이 있을 수밖에 없었다.
이러한 이유 때문에 개발자가 아닌 사람들은 해당 방식을 사용하지 못하고 키워드형 응답 기능을 사용하거나 개발자들에게 외주를 맡겨서 해당 기능을 사용하는 방법만이 존재했다.

 

415 에러로 올라온 issue만 해도 64개나 된다.

 

이러한 이유로 2016년 7월 PHP를 이용해서 카카오톡 자동응답 봇을 간단하게 구현할 수 있는 라이브러리를 만들어서 github에 공개를 했다.
개발 목적을 비개발자들이 손쉽게 해당 기능을 이용할 수 있게 하는 것이 목적이었기 때문에 DB를 사용하지 않고 파일을 이용해서 해당 로직을 처리하는 것을 목표로 했다.
그리고 매우 가볍게 만들고자 외부 라이브러리나 CodeIgniter와 Laravel과 같은 프레임워크를 사용하지 않고 구현했었다.
아무래도 관리자 페이지 기능을 추가할 때 컨트롤러(Controller) 부분과 뷰(View) 부분의 로직을 분리해서 제작을 했어야 했는데, 당시에 구현을 쉽게 한다고 한 파일에 모두 작성한 부분을 잘못 했었다.

 

admin.php의 난잡한 코드. 로직과 뷰를 한 파일로 만들었다.

 

기존에는 관리자 페이지 없이 구현하여 PHP 5.3과 5.5 버전에서 테스트를 진행했었으나 관리자 페이지 기능을 추가하면서 PHP 5.3에서 에러가 발생하게 되었다.
이 부분은 테스팅을 하지 않았던 나의 잘못으로 github에 해당 이슈가 올라오기 전까지 눈치채지 못했었다.
관리자 페이지를 만들면서 딱히 특별한 함수를 사용하지도 않았고 메이저 버전도 5로 동일해서 에러가 발생하지 않을 것이라고 무작정 단정한 점이었다.
그냥 단순히 취미로 만들어서 배포해서 다행이지 판매하여 회사에서 사용했을 경우에는 책임을 졌어야 했을 것 같다. 이 경험을 통해 배포전 테스팅이 얼마자 중요한지를 알 수 있었다.

 

PHP 5.3에서 동작하지 않는다고 알려온 issue 내용

 

마지막으로 비개발자를 생각해서 만든 서비스라고 생각했으나 처음 설치 과정부터 하지 못하는 사람이 많았는데, 블로그 댓글의 대부분이 설치가 제대로 안된다거나 API 테스트에서 통과하지 못한다는 내용이었다.
.htaccess 파일을 잘못 세팅하였거나 해당 모듈이 설치 되지 않은 경우, 파일 쓰기 권한이 없는 경우가 있었으며 심지어는 nodejs 환경에서 돌리려고 하는 사람도 있었다.
.haccess 파일을 수정하는 방법을 해당 글에도 써놓았으나 모르겠으니 해달라고 하는 사람도 있었다. 위에 달려 있는 댓글을 읽어보지도 않고 그냥 무작정 댓글을 달아놓은 사람도 있었다.

 

아무래도 이 부분은 로직 설계 과정에서 비전공자를 고려하지 않고 설계하여 이런 문제가 발생한 것 같다. 그래서 나중에 닷홈 무료 호스팅에서 플러스친구 자동응답을 세팅하는 방법을 동영상으로 촬영해서 올려야겠다. 일단 테스트용으로는 충분한 용량과 트래픽을 제공해주기 때문에 간단하게 운영하는 용도로는 괜찮기 때문이다. 이외에도 웹호스팅에서의 구축 방법이 많이 유사하기 때문에 다른 호스팅에서도 비슷하게 할 수 있기 때문이다.

 

가끔씩 기능 하나만 추가해달라고 하는 사람들이 있는데, 이런 사람들은 어떻게 해야할 지 모르겠다.
아무래도 소프트웨어는 눈에 보이지 않아서 그런 것 같은데, 눈으로 보이는 방식으로 설명하면 이미 만들어진 로봇에 팔을 더 달아달라는 것과 같다.
즉 처음부터 확장될 것을 생각하고 로봇을 만들었다면 쉽게 팔을 추가할 수 있는 것과 같이 소프트웨어도 동일하다.
하지만 어떤 부분으로 확장될지를 모르기 때문에 기능 추가가 어렵다는 것이고, 추가를 하려면 다른 부분까지 건들어야 하므로 시간이 많이 소요된다.
그렇기 때문에 무료로 기능 추가 요구를 하지 않았으면 좋겠다.

쉬운 작업이라고 하면 본인이 '직접' 하면 될 것 같다.

반응형

'일상 > 개인 생각' 카테고리의 다른 글

네이버 지식iN 수정 요청 外  (0) 2018.12.11
티스토리에 대한 개인적인 생각  (1) 2016.06.18