이론도 이론인데 일단 있는 라이브러리들도 써봐

규링은 응용 프로그램 개발로 시작했지만 대학원 다니면서 컴퓨터 아키텍쳐, CPU, 운영체제에 관심을 엄청 두고 이쪽만 죽어라 팠었다. 근데 결과 내놓고 하기에는 시간이 모자라서 막판에 다른 주제 확 잡고 프로젝트를 진행했었다.

그 때, NLP(Natural-language processing)를 해야 했었다. 논문에 꼭 필요한 내용이었다. 솔직히 관심도 없던 분야라 이론적으로 좀 배운 거 제외하곤 알지도 못했다. 그래서 일단 이론적으로 나와있는 내용에 대한 라이브러리들을 먼저 찾았다. 그러면서 좀 이해되는 내용들이 하나 둘 모이니깐 어떻게 해야 할 지 감이 좀 왔었다. 그걸 토대로 이리저리 좀 끼워맞춰 가면서 해보니 아주 완성적인 것은 아니지만 일단 먼저 필요한 부분은 적당한 수준으로 만들 수 있었다.

사실 규링이 만들고 있는 짤 필터링도 솔직히 제대로 이미지 프로세싱을 알고 하는 건 아니다. 단, 게임을 좀 만들어본 것하고 함께 머신러닝으로 필터링 기준을 학습시켜보는 것들을 미친듯이 짜집고 해본 결과로 만들어진 것이 지금의 짤봇이다. (수동 짤봇 계정이 갑자기 확확 올리는 짤들은 그걸 테스트 하는 것이다. ㅇㅅㅇ;)

가끔 개발자들끼리 좀 웃으면서 하는 이야기가 있다면 바로 “짜집기”일 것이다. 그렇다고 그냥 이론같은 거 다 필요없고 그냥 있는 거 죄다 긁어서 붙이고 하면 되는 이야기는 아니다. 다들 어떻게 돌아가고 하는지는 전부 제대로 알고 한다.  아니, 그래야만 한다. (의외로 치명적인 버그는 이런 부분을 무시한 결과 많이 발생한다.)

근데 이론에만 빠지고 하다보면 도중에 대학 수업때처럼 이론을 증명하는 프로그램을 직접 짜고 있을 경우가 있다. 근데 그건 직접 짜야 할 때가 오면 그때 하면 될 꺼다. 바로 당장 이걸 가지고 응용하는 프로그램을 개발해야 하는 입장에서는 이런 게 필요할까?

게다가 요즘 바로 눈앞에서 결과 보여주는 환경을 많이 겪은 개발자들의 경우에는 이론적으로 깊게 들어가거나 하는 그런 식의 방법을 아예 몸부터 거절하는 개발자들도 있다. 그런 이들은 아예 첨부터 바로바로 도는 예제를 같이 찾는 편이긴 하다만…. 틀렸다고도 할 수도 없다.

사실 그렇게 하나 둘 건드려보면서 뭔가 하나라도 해봤다는 진행을 한다는 느낌도 받기 때문에 이론만 파다가 힘들면 가끔은 저런 실행 가능한 코드나 라이브러리를 돌려보면서 확인하는 절차가 필요하다. 특히 요즘 원하는 수준들이 너무 높다보니 이론에 휘말려서 개판되는 경우 많다.