저는 LMS (Learning Manangement System)을 개발하는 회사에 다니고 있습니다. 가장 최근에 마친 프로젝트는 LinkedIn Learning과의 컨텐츠 연동입니다. 최근 LMS 시장을 보면 LMS 회사끼리 서로 가지고 있는 컨텐츠를 공유하여 수익을 창출하는 비즈니스 모델을 진행하고 있는 곳이 많습니다. 고객이 자신만의 컨텐츠를 만들려면 비용이 많이 발생하기 때문에 아주 General한 컨텐츠를 LMS 회사들이 만들어 놓고, 고객에게 팔고 있으며 서로 간의 크로스 마케팅 및 추가 수익 창출을 위해 컨텐츠를 공유하고 있지요.
LinkedIn도 마찬가지 입니다. LinkedIn이 Lynda.com을 인수한 이 후 다른 LMS 사업자와 컨텐츠 공유를 하기 시작했습니다. 저희 회사 이사가 라스베가스에서 있었던 LMS 관련 포럼에 참석하여 LinkedIn 담당자를 만나 컨텐츠 공유에 대한 이야기를 나눈 후 저희 회사가 LinkedIn의 컨텐츠를 이용할 수 있도록 계약을 맺었습니다. 저희 회사는 컨텐츠를 만들지 않고 SaaS로 플랫폼만 제공하기 때문에 LinkedIn에 줄 수 있는 것은 없지만 업계 Top 5 안에 드는 회사여서 그런지 서로 간의 크로스 마케팅을 목적으로 계약을 체결한 것 같습니다.
컨텐츠를 관리하는 시스템을 마이크로 서비스 형태로 개발하였는데, LinkedIn의 모든 Learning 컨텐츠를 이 마이크로 서비스에 저장한 후 저희 LMS에 제공하는 형태입니다. 전형적인 ETL 프로세스 개발인데, 저희는 ETL 툴을 사용하지 않고 Scratch로 개발을 하였습니다. 물론 ETL 툴을 개발한 것은 아니고, 데이터 Sync 작업만 수행하고, LMS와 Restful로 연동하는 마이크로 서비스를 만든 것입니다.
개인적으로 왜 ETL을 툴을 쓰지 않는지 모르겠습니다. 전문 툴을 사용하면 개발 생산성이 급격히 향상될텐데, 아키텍트가 다른 툴을 쓰는 것을 선호하지 않는 것 같습니다. 그래서인지, LMS의 많은 기능들을 자체 개발한 것이 많이 있습니다. UI도 ExtJs나 Telerik 같은 라이브러리를 사용하면 훨씬 편하겠지만 여기는 모든 것을 직접 다 개발했습니다. 시간이 많이 걸렸겠지만, Cutomization은 최적화 되어 있다고 보면 됩니다.
이 프로젝트에 참가하기 전 약 9개월을 유지보수 팀에 있다가 처음 신규 개발팀으로 옮긴 것이라 엄청 쫄았던 것도 기억나고 영어 때문에 엄청 고생한 것도 기억에 남습니다. 유지보수는 많은 대화가 없이 성능이나 버그를 수정하면 되지만, 신규 개발은 새로운 비즈니스 요건에 대해 BA와 계속 대화를 해야 하기 때문이지요. 아직도 영어가 서툴러 많은 고생은 하고 있지만, 어찌되었건간에 살아 남았습니다. 또한 유지보수팀에 있을 때는 나무만 보다가 신규 프로젝트를 하니 전체 구조에 대한 숲을 볼 수 있는 기회였습니다. 특히, CQRS 패턴에 대해 많은 것을 배운 프로젝트입니다.
지금은 개발한 모든 내역이 운영 서버에서 잘 돌아가고 있습니다. 사용하고 있는 고객도 조금씩 늘어가고 있는 추세이고요. 하지만 많은 수익 창출을 하지 못하는 것이 안타까운 프로젝트입니다. 하지만, 현재 하고 있는 비슷한 프로젝트는 회사 Revenue에 많은 영향을 줄 수 있을 것 같고, 이에 일조할 수 있는 기회를 가지게 되어 행운이라 생각합니다. 아마 내년 연봉 협상에는 좀 더 연봉 상향을 기대할 수 있을 것 같습니다.
최근댓글