개발자라면 돈을 받고 코드를 작성하는 사람이다. 나도 그렇다.
그중 대부분은 회사에서 제품을 만들거나, 남의 제품을 만들어서 납품하거나, 스스로 제품을 만들 것이다.
그런데, 어쩌면 많은 개발자가 모르는 시장이 있다.
"코드" 자체를 돈 받고 파는 개발자가 있다.
워드프레스의 테마, 플러그인이나 카페24 쇼핑몰 같이 플러그인 형태의 생태계가 구성되어 있는 경우는 "코드"를 판다기보다는 제품을 파는 것에 가깝지만, 사실 이것들도 코드를 사는 것이다.
왜냐하면 어떤 플러그인을 구매하면 그 플러그인의 코드를 직접 볼 수 있고, 개발자가 직접 수정해서 사용할 수도 있다.
엥 그러면 오피스를 구매하는 것도 코드를 사는 것이냐고 할 수 있지만, 이건 제품을 사는 것이다.에잉 복잡하네.
이 포스팅에서는 이런 코드를 사고 파는 것에 대해 자세히 다루진 않고,
코드를 샀던 개발자로서의 경험을 써볼까 한다.
판매하는 코드를 살펴보면 대부분 매우 퀄리티 좋은 MVP로 보인다. 부트스트랩처럼 컴포넌트가 구성되어 있을 뿐만 아니라 훨씬 다양한 샘플 페이지들이 있다.
급기야 MVP가 아닌, 운영 중인 서비스 수준의 코드를 판매하는 경우도 있다.
https://codecanyon.net/item/openai-davinci-ai-writing-assistant-and-content-creator-as-saas/43564164
데모: https://davinci.berkine.me/
위 예시는 OpenAI를 이용한 플랫폼 서비스를 위한 모든 코드를 판매하는 상품이다. 상품 페이지를 보면 대부분의 OpenAI 요소와 블로그 콘텐츠를 제공하기 위한 페이지, 결제를 위한 PG 등 매우 많은 것을 제공한다.
이 정도라면 로고, 색상 프리셋 등만 변경해서 거의 바로 서비스할 수 있다.
만약 필요 없는 기능들이 있다면 일부 페이지만 숨기면 되니 매우 빠르게 MVP를 시도해볼 수 있다.
내 경우에도 정말 급하게 MVP가 필요했었다.
현재 회사의 메인 서비스인 비디어스와 필름업 둘다 코드를 구매해서 MVP를 개발했었다. 부트스트랩을 기반으로 페이지가 샘플 페이지가 많은 코드를 구매했었고, jQuery 기반의 HTML, CSS, JS로 구성된 템플릿을 구매했었다.
당연한 얘기겠지만 이렇게 코드를 구매하고 서비스를 만들면 개발자로서 성장할 수 없다.
하지만 언제나 성장이 가장 높은 우선순위일 수는 없다.
개인이 처한 상황에 따라 코드를 구매하여 개발을 마무리하는 것이 꽤 도움이 될 수 있다.
한 가지 예시를 더 확인해 보자.
만약 캘린더를 개발해야 하는 상황이라면 대부분 캘린더를 제공하는 컴포넌트, 플러그인 등을 살펴보고 도입한 후 커스터마이징한다. 내가 직간접적으로 경험한 상황을 돌아보면 캘린더를 직접 개발하는 경우는 보질 못했고 컴포넌트 선정 후 디자인, 기능 커스터마이징에 꽤 많은 시간을 쓴다.
그런데 의외로 비용을 조금 지불해서 (코드를 사서) 해결할 수 있다.
https://codecanyon.net/item/date-picker-in-fullscreen-jquery-plugin/20224980
jQuery-ui에 포함된 캘린더와같이 예스러운 디자인이 아니라 jQuery 환경이지만 깔끔한 (위와 같은) 디자인의 캘린더를 쓰고 싶다면 이런 상품을 구매해서 조금만 커스터마이징해도 쉽게 개발할 수 있다.
새로운 언어에 대해 학습할 때 유용하다.
보통 언어를 학습할 때, 책이나 강의를 많이 활용하게 된다. 당연히 필요하다.
다만 책이나 강의를 통해 완성된 결과물은 대부분 상용 제품의 코드와 갭이 크다.
상용 제품도 운영 기간에 따라 코드의 갭이 있다고 생각하는데,
학습용은 더더욱 갭이 있을 수밖에 없다.
코드를 사서 보면 이러한 갭을 조금은 줄일 수 있었다.
Flutter를 공부했을 때, 책으로 공부하고, 인강을 듣고, 미니 프로젝트를 했다.
보통 한 언어에 능통하면 다른 언어를 배우는 것이 비교적 쉽다고 한다.
그리고 나는 스스로 한 언어 정도는 능통하다고 생각하고, 배우기도 비교적 쉬웠다.
그런데, 그 배운 것으로 상용 제품을 만들 수 있는지는 완전히 다른 것이다.
(이것 까지도 쉬울 것이라고 기대했었다.)
그래서 Flutter 관련된 코드를 구매했었다. UI 템플릿을 구매해서 일반적으로 상태 관리는 어떻게 하는지, 도메인별로 컴포넌트를 어떻게 나는지 등을 한 번에 파악할 수 있었다.
당연히 구매하지 않아도 이런 자료는 오픈 소스를 열심히 뒤지다 보면 찾을 수도 있고, 아티클을 볼 수도 있다.
또는 직접 부딪히다가 깨닫게 될 수도 있다.
하지만 코드를 구매하면 이미 해놓은 코드가 있다.
이미 되어있는 코드에서 의도를 따라가기는 쉽다. 왜냐하면 정답을 보고 이유를 스스로 만들어 내는 과정이기 때문이다. 다만 그 과정을 정답이 아니라, 하나의 "경우"로 받아들이면 학습하는 데 매우 도움이 된다.
나의 경우 UI 템플릿이었지만 워드프레스와 같은 CMS를 백엔드로 두고, 앱을 통합해서 판매하는 경우도 있다.
이런 코드들은 바로 상용 서비스를 제공하기 위해 만들기 때문에 코드 퀄리티도 꽤 좋다.
학습용으로도 좋고, 직접 활용하기도 좋다.
외부 라이브러리나 컴포넌트를 쓸 때, 문제가 발생하거나 수정하고 싶을 때 수정할 수 있을 정도로 이해하고 써야 한다는 말을 한다. 스택 오버 플로우나 블로그에 있는 코드를 복붙하지 말고, 이해하고 쓰라는 말이랑 같은 의미로 하는 말이다. (요즘은 ChatGPT 같지만..)
그렇다면 사실 직접 다 만드는 것이 제일 확실하겠지만, 그럼에도 오픈된 코드들을 활용하는 이유는, 결국 개발자는 코드를 작성하는 사람이 아니라 기능이 동작하게 하는 사람이라 그런 것 같다. 더 나아가 제한된 시간 내에 기능이 동작하게 하는 사람이라고 생각한다.
그런 관점으로 보면 코드를 구매하는 것도 좋은 선택인 것 같다.