[개안뽑] ㉔개발 라이브러리 없으면 개발 못하는 개발자, 플러그인 없으면 기능 추가 못하는 워드프레스

pabii research
개발용 라이브러리 없으면 기능 개발 못하는 개발자들이 압도적인 대다수
일부 고급 전문 개발자를 제외하면, 사실상 워드프레스 플러그인 설치하는 것과 큰 차이 없는 상황
워드프레스 플러그인 쓰면 비용 절감, 개발 기간 단축 효과도 얻을 수 있어

개발자를 굳이 뽑지 않고, 워드프레스로만 거의 모든 서비스를 다 만들 수 있다고 하니 각종 지적들을 받는다. 그 중 가장 많이 듣는 이야기가, 개발자들은 직접 코드를 치니까 모든 기능을 다 만들 수 있는데, 워드프레스를 쓰면 해당 기능을 지원하는 플러그인이 있어야 기능을 추가할 수 있다는 이야기다.

반은 맞고 반은 틀린 이야기라고 생각하는데, 먼저 지적하고 가고 싶은 부분은 개발자들 중에 개발용으로 만들어진 라이브러리가 없을 때 직접 기능을 다 만들 수 있는 능력자가 과연 몇 명이냐, 기능 중에 복잡한 고급 기능일 경우에는 과연 몇 명이나 될 것인가는 반박 질문과, 워드프레스 플러그인을 직접 만들거나, 제작을 의뢰하는 경우가 의외로 많다는 점을 반박 포인트로 들 수 있을 것 같다.

워드프레스로 회사 웹사이트를 다 만들기로 결정하고 난 다음, 지난 몇 달간 코드를 칠 일이 거의 없기는 했지만, 때로는 일부 기능들이 마음에 들지 않아서 기능을 켜고 끄는 단순한 코드 몇 줄 추가 작업부터, 없는 기능을 새로 만드는 기능 추가까지, 코드 작업을 완전히 피할 수는 없었다. 때로는 플러그인 제작자가 만들어 놓은 기능을 고치려다가 플러그인 제작자와 메일을 주고 받기도 했고, 네이버 로그인 기능이 없는 플러그인 제작자 같은 경우는 한국에서 네이버의 위치를 듣더니 자기가 직접 개발하겠다고 날더러 직접 만든 버전을 쓰거나, 아니면 좀 기다려 달라는 말을 한 적도 있다. SIAI 리뉴얼 중에 요청한 기능은 묶어서 $150라는 인보이스(Invoice)를 받기도 했다.

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

개발 라이브러리와 워드프레스 플러그인

대략 5년 전 쯤으로 기억한다. 모 대기업 내에서 계열사 직원들을 묶어 만든 태스크 포스(Task Force) 형태의 개발 프로젝트가 있는데, 날더러 조언을 좀 해달라고 해서 찾아간 적이 있다. 뭔가 간단한 앱을 만든다던데, 계열사 직원들 중 개발자라는 사람들을 모아놓은 프로젝트였던 걸로 기억한다. 그 때 내가 3년차라는 개발자들과 나중에는 PM에게까지 받았던 질문이

  • 무슨 라이브러리 쓰세요?

였는데, 솔직히 말하면 그 말의 의미를 그 자리에서는 이해를 못 했었다.

난 Matlab을 쓰다가 R로 넘어왔던 당시, R에서 패널 데이터(Panel data) 관련 함수가 너무 없길래 직접 만들어 쓴 적이 있고, 그 때 썼던 함수 묶음을 연구실 동료들한테 공유해주니까, 연구실 친구들이 아에 R에 패키지로 올리자고 그래서 패키지 파일을 만든 적은 있다. 나중에 시간이 지나고 나니 개발자들 사이에서 그렇게 특정 목적의 기능을 하는 함수 파일들을 묶은 패키지를 ‘개발용 라이브러리’라고 부른다는 것을 알게 됐고, 거의 모든 R 사용자가 패키지 없으면 ‘망했다’, ‘직접 할려니 괴롭다’, ‘이번 수업 과제는 아예 패키지 없이 생으로 코드를 다 쳤다’라는 표현을 쓰는 것과 비슷한 맥락으로, 개발에 쓰는 ‘라이브러리’가 없으면 개발자들 상당수가 어려움을 겪는다는 것을 개발자들을 겪으면서 조금씩 알게 됐다.

난 연구실에서 시간이 좀 걸려도 직접 패키지를 만들어 쓴 경험도 많고, ‘그까짓 함수 만들지 뭐’라는 생각으로 불편함을 감수한 적이 있었기 때문에, 개발자라는 분들도 그렇게 함수를 만들고 묶어서 ‘라이브러리’라는 걸 자기가 직접 만들고 주변이랑 공유하는 일이 잦을 줄 알았다.

그런데, 한국에서 개발자들을 만나면서 알게 된 건, 다들 ‘라이브러리를 어떻게 갖다 쓰면 된다’, ‘어떤 라이브러리를 쓰면 더 좋다’ 같은, 굉장히 피상적인 지식만 개발자들 커뮤니티에서 공유되고 있다는 것이었다. 어떤 라이브러리는 무슨 계산을 어떻게 하고 있기 때문에 무슨 제약이 있다는 정도의 정보만 말할 수 있어도, 그래서 자기가 그 라이브러리를 뜯어고칠 수만 있어도 엄청난 실력자로 대접받는 것도 알게 됐다.

경제학에서 처음 Matlab, R을 쓸 때만 해도 계산 속도(Computational Performance), 혹은 계산 비용(Computational Cost)이라는 표현을 쓸 일이 없이, 수학으로 다 풀어놓은 계산에 데이터 입력하는 작업에만 쓰다가, 계산과학을 중심으로한 Math Finance로 넘어가면서 컴퓨터를 이용한 계산 작업에 ‘효율적인 구성’이라는 점을 굉장히 신경을 쓰게 됐다. 예를 들면, For-loop를 중첩해서 반복적으로 쓰면 속도가 엄청나게 느려지기 때문에 For-loop를 한번만 쓰면서 데이터 구성을 바꾸는 방식을 쓰거나, ‘과학적 프로그래밍(Scientific Programming)‘이라는 수업에서 가르치는 것처럼 정확도를 약간 포기하면서 데이터의 형태를 변형하는 수학적인 도구들을 더 쓰게 됐다.

이런 식으로 개발자들 커뮤니티 사이에서도 주어진 라이브러리를 적극적으로 뜯어고쳐서 쓰는 것이 일상이라고 생각했는데, 그게 아니라 단순히 수정하는 정도에서 그치더라. 근데, 정확하게 똑같은 작업을 내가 워드프레스 플러그인을 쓰면서 하고 있다. 회사 사정에 맞지 않아서 조금씩 고쳐서 쓰는 작업이라는 관점에서 하나도 다를 게 없는 상황이다.

워드프레스 플러그인은 완벽하지 않다. 개발용 라이브러리도 완벽하지 않다.

Data Science를 가르치면서 패키지, 혹은 라이브러리가 만들어진 밑바닥에는 결국 누군가가 그 수학 문제를 풀어서 수식을 코드로 바꿔놓은 구성이 있기 때문에, 그 수식을 이해하고 나면 라이브러리가 정상 작동하지 않을 때 쉽게 고쳐 쓰거나, 정상 작동하고 있더라도 회사에서 필요한 목적에 맞춰 바꿔 쓸 수 있다는 이야기를 정말 몇 년 동안 줄기차게 해 왔다.

그러나 현실을 보면 ‘어떤 라이브러리가 더 잘 맞는다’라는 표현을 쓰고 있는 개발자 출신, 혹은 코딩만 할 줄 알면서 자기가 Data Science 전문가, 혹은 ‘인공지능 전문가’라고 주장하는 수 많은 가짜 Data Scientist들을 만날 수 있다.

이 분들은 ‘안 맞으면 다른 걸로 바꿔 쓰면 된다’라고 생각하시는데, 내가 워드프레스 플러그인을 쓰는 방식이 완전히 일치한다. 어떻게 만들었는지 모르고, 기능만 구현되면 되기 때문이다.

그런데, 워드프레스로 이미 여러차례 서비스를 만들었다가 포기하기를 반복하면서, 자칫 이상한 플러그인을 몇 개 설치하게 되면 서비스 속도가 엄청나게 느려지는 것을 헤아릴 수 없이 많이 겪었다. 요즘도 대부분의 플러그인은 아주 다급한 경우가 아니면 바로 실제 서비스 사이트에 적용하지 않고, 테스트 사이트에서 점검을 거친다. 그 점검 중 가장 큰 부분은 당연히 기능적인 구현이지만, 그 다음으로 중요하게 생각하는 것은 웹사이트 속도에 미치는 영향과 오류 횟수 같은 것들이다. 개발자들 표현을 빌리면 ‘코딩 수준이 낮은’ 경우를 걸러내겠다는 뜻이다.

그런데, 헤아릴 수 없이 많은 라이브러리들도 그렇게 개발자들의 선택을 받지 못하고 사라진다. 특히 하나의 라이브러리가 수익성을 띤 사업의 일부면 당연히 누군가 철저하게 관리해서 돈을 더 벌려고 노력하겠지만, 무료 라이브러리는 관리가 안 될 것이다.

나 역시 당시에 만들었던 패널 데이터 전용 패키지가 구 버전과 호환되지 않으니 코드 고쳐라, 내가 사용한 다른 패키지가 버전 업데이트 되면서 안 돌아간다는 지적들을 몇 차례 듣다가, 귀찮으니까 그냥 내려버렸다. 그걸로 돈을 버는 것도 아니고, 내 논문에 쓸 수만 있으면 됐지, 남들이 쓸 수 있도록 ‘추상화’ 작업, 설명서 붙이기 작업을 하기가 너무 귀찮았기 때문이다.

그렇게 운영된다는 관점에서 워드프레스 플러그인의 사정도 크게 다르지 않다. 대부분의 무료 플러그인들이 당장은 무료니까 좋지만, 정작 내가 필요한 기능, 내 서비스에 맞춘 최적화를 하려면 유료 모델이 없는 경우에는 직접 코드를 뜯어고쳐야 하고, 그 제작자가 코드 관리를 안 하고 있을 것이다. 반면 유료 서비스가 있는 경우에는 한 카피라도 더 팔려고 적극적으로 서비스 개선 사항을 받아들이고, 끊임없이 수정을 하고 있는 걸 볼 수 있다.

개발 라이브러리가 Java, Javascript로만 나올까? PHP로도 나올까?

혹자는 한국에서 가장 많이 쓰이는 Java라는 개발 언어가 범용성이 크니까 가장 좋은 언어고, 몇몇 ‘기술’ 기업들이 Node.js, React.js, Vue.js 등의 Javascript 기반 언어를 쓰니까 다른 직장을 찾아갈 때도 문제가 되고, 범용성도 낮다는 표현을 쓴다. 그 분들의 표현을 그대로 빌리면, 전세계에서 가장 많이 쓰이는 개발 언어는 PHP니까, 가장 범용성이 큰 언어라고 할 수 있다.

한 때 PHP가 개발을 사실상 손 놨던 시절을 빼면, 워드프레스의 서버용 언어인 PHP가 그렇게 관리 상태가 부실한 언어도 아니고, 매년 굵직한 업데이트들을 내놓는다. 글로벌에서 가장 많이 쓰이는 개발 언어인만큼, 생태계도 안정적으로 구성되어 있다.

챗GPT를 REST API로 연동해서 쓰라고 서비스를 공개하던 당시를 돌이켜보자. Java, Javascript로 공개가 안 되면 우리나라 개발자들이 지금처럼 ‘인공지능 붙였다’라며 자기 회사 서비스에 붙였다며 ‘인공지능 개발자’라고 주장하는 일이 없었을 것이다. 실제로 REST API로 연동할 수 있도록 해 주니까 개발자들 커뮤니티에 너도나도 붙여봤다고 홍보? 자랑? 하는 글들이 올라오더라.

근데, PHP로 같은 API가 올라오면 그걸 라이브러리로 만들고, 플러그인으로 만들어내는 속도도 큰 차이가 나질 않는다. 글로벌에서 가장 많이 쓰이는 개발 언어가 PHP인만큼, 특별히 늦은 편도 아니고, 당연히 PHP용으로도 만들어줘야 된다고 생각하기도 한다.

즉, 특별히 Javascript라는 언어를 쓸 줄 아는 ‘고급 개발자’를 뽑아야 무슨 기능을 개발할 수 있는 것이 아니라는 것이다. 밑바닥에 있는 수학, 통계학을 다 이해해서 직접 만들 수 있는 연구 역량을 갖춘 개발자가 아니라면, 플러그인을 쓰는 것과 평범한 개발자들이 ‘라이브러리’를 ‘갖다 붙이는 것’ 사이에 그렇게 큰 격차가 나진 않는다. 물론 플러그인의 완성도와 라이브러리의 완성도라는 측면에서 개발자들 사이에서 쓰이는 라이브러리의 완성도가 일반적으로 더 높은 것은 사실이지만, 유료 서비스들의 세계로 넘어오면 큰 차이를 보기는 어렵다.

딱히 워드프레스 예찬론을 펼치려는 것이 아니라, 기능 추가라는 점에서 라이브러리 의존적인 개발자들과 플러그인 의존적인 일반 워드프레스 사용자 사이에 그렇게 큰 격차가 없다는 점을 강조하는 것이다. 워드프레스 플러그인을 나처럼 조금씩 뜯어고쳐서 쓸 수 있고, 제작자와 대화할 수 있는 수준으로 코드를 이해할 수 있으면 굳이 중급 이하 개발자 수십명을 뽑는 것보다 워드프레스 플러그인을 수십개 설치하는 편이 서비스 수준을 아주 조금 포기하면서 엄청난 인건비 절감, 개발 기간 단축 효과를 낳을 수 있다.

그런데도 굳이 개발자를 뽑으려고 해야할까?

Similar Posts