신기술 잘 골라 쓰는 개발자가 되려면, 퍼플아이오 CTO 김충섭

개발자에게 새로운 기술은 가슴을 뛰게 하지만 부담이 되기도 합니다. 기술이 빠르게 발전하는 만큼 끊임없이 학습해야 하는 어려움도 있죠. 저번 주에 시작한 프로젝트가 오늘 보니 구식 같이 느껴질 때도 있고, 가끔 누군가 올린 SNS 글을 보면 뒤처져 있다는 느낌이 들 때도 있죠.

신기술을 찾아보고 새로운 언어를 공부하는 것만이 정답일까요? 최신 기술이 모두 좋은 기술은 아닐 거예요. 개발 환경, 개발 능력, 조직 구조 등을 고려해 상황에 적합한 기술을 신중하게 선별해야 합니다.

2월 COMMIT에서는 바로 이 문제를 다뤄보려고 합니다. 2월 COMMIT 스피커이신 퍼플아이오(Purple IO) CTO 김충섭 님을 먼저 만나 적정기술에 대한 이야기를 나눠봤어요.

44bits김충섭

Q. 자기소개 부탁드립니다.

안녕하세요. 김충섭입니다. 퍼플아이오 CTO로 노코드 팝업 빌더 ‘코드앤버터’를 만들고 있습니다. 44BITS에서 기술 이야기도 전하고 있고요. 자동화 기술과 효율적인 개발 프로세스에 관심이 많고 데브옵스(DevOps)와 도커(Docker), 쿠버네티스(Kubernetes), 리액트(React.js)를 좋아합니다. 요즘은 어떻게 해야 조직 전체가 즐겁게 일하면서 개개인이 성장할 수 있을지 고민하고 있어요.

Q. ‘퍼플아이오’는 어떤 회사인가요?

현재 코오롱몰을 운영하고 있고 상품관리, 고객관리, 물류관리 등 이커머스에 필요한 전반적인 시스템을 개발하고 있어요. ‘코드앤버터’ 같은 SaaS 서비스도 만들고 있고요. 기술을 이용해 문제를 해결하고 새로운 가치를 만들고 있습니다.

전체 구성원 중 개발자가 80% 가까이 됩니다. 기술 기반의 비즈니스를 탄탄하게 구축해 나가고 있어요. 내부적으로는 개발자들이 즐겁게 성장할 수 있는 환경을 만들기 위해 노력하고 있고요.

Q. 개발을 처음 시작하게 되신 계기가 궁금합니다.

8살 때 동네 컴퓨터 학원에 다니면서 시작했어요. 타이핑하는 게 너무 재밌더라고요. 초등학교, 중학교 때도 개발에 관심이 있긴 했는데 주로 게임하기 바빴습니다. 그래도 개발 공부는 틈틈이 계속했어요.

고등학교 때는 한 분야만 잘하면 특기생으로 대학에 입학할 수 있어서 컴퓨터 공부를 열심히 했습니다. 그렇게 대학교를 거쳐 개발 회사에서 병역 특례를 하면서 본격적으로 개발에 자신감이 생겼어요. 개발 커리어는 2006년부터 본격적으로 시작했습니다.

Q. 2월 COMMIT에서는 어떤 이야기를 준비하고 계신가요?

‘적정기술’에 대한 이야기를 나눠보려고 해요. 적정기술은 해당 지역의 인프라나 사용자를 고려해 만든 기술을 말합니다. 아무리 좋은 기술이어도 쓰는 사람이 먼저잖아요. 개발 생태계에 적용하면 개발 환경, 개발 능력, 서비스 요구사항 등 현재 상황에 적합한 기술을 선별해야 한다는 뜻이에요.

2월 COMMIT에서는 적정기술이 무엇인지 알아보고, 새로운 기술을 프로젝트에 도입하는 과정을 이야기해보려고 합니다. 신기술 도입 희망 편이랄까요?

Q. 많은 개발자가 좋은 회사의 조건으로 ‘신기술 도입이 자유로운 곳’을 뽑는다는 글을 봤습니다. 개발자는 왜 신기술을 쓰길 바라나요?

개발자들만의 독특한 해커 문화 때문인 것 같습니다. 생계를 책임지는 수단으로만 개발을 하는 분들도 계시지만, 정말 개발이 재미있어서 하는 분들도 많아요. 예를 들어 홈페이지를 만든다고 하면 결과물뿐만 아니라 개발 과정이 재미있는지도 중요하게 생각하는 거죠.

신기술이 지적 호기심을 충족시키는 데 좋은 수단이 되기도 하고, 신기술을 사용하면 개인 경력과 성장에 도움이 된다고 생각하는 분들도 많은 것 같습니다.

Q. 개발자 성장 측면에서 신기술을 어떻게 생각하시나요?

성장하고 싶은 개발자에게 신기술은 굉장히 좋은 치트키입니다. 성장에는 여러 가지 방법이 있지만, 저는 신기술을 도입한 사이드 프로젝트를 진행하는 걸 추천해요.

저는 사이드 프로젝트로 ‘마이세팅’이라는 개발자 커뮤니티 서비스를 개발했었어요. 본인이 사용하는 개발 프로그램이나 팁, 장비를 공유하는 단순한 서비스인데, ‘Tailwind CSS’와 ‘Supabase’를 처음 써봤었습니다. 이 프로젝트 덕분에 Tailwind CSS는 회사 프로젝트에 적용해 사용하고 있고, Supabase로 PostgreSQL의 강력한 함수 기능을 알게 됐죠.

Q. 보통 어떤 절차를 거쳐 새로운 기술을 도입하나요?

회사에 새로운 기술을 도입하려면 기술 검토, 일부 프로젝트에 선적용 및 테스트, 전사 프로젝트로 확대하는 과정이 필요합니다. 이 중 가장 중요한 건 팀원들을 설득하는 과정이고요.

성장과 신기술에 대한 욕심이 있는 팀원들을 모아서 새롭게 도입할 기술이 어떤 문제를 해결할 수 있고, 프로젝트에 어떤 도움이 되는지 설득합니다. 이후에는 내부 스터디를 진행하면서 자유롭게 기술을 다룰 수 있는 수준으로 끌어올리고, 아주 작은 기능부터 도입하죠.

Q. 팀원들은 어떻게 설득하셨어요?

공감이 중요한 것 같아요. 아무리 좋은 기술도 팀과 조직이 공감하고 지지하지 않는다면 도입할 수 없겠죠. 도입하려는 의도를 정확하게 전달하고 함께 적용하는 작은 경험을 계속 쌓다 보면 자연스럽게 안착하는 것 같아요.

Q. 신기술 도입을 검토할 때 어떤 요소를 살펴봐야 할까요?

최근 종영한 ‘재벌집 막내아들’에 이런 대사가 나옵니다. “그게 순양에 도움이 됩니까?” 제가 생각하는 가장 중요한 기술 선정 기준과 같아요. 정말 우리 프로젝트에 적합한지, 우리의 문제를 해결해 줄 수 있는지가 중요합니다.

처음 신기술을 검토할 때는 기존 기술보다 사용법이 쉽고, 안정성도 높아 도입만 하면 많은 문제를 해결해줄 것처럼 보입니다. 이런 생각이 들 때가 가장 위험해요. 기술을 좀 더 객관적으로 바라봐야 합니다.

도입하려는 기술을 책임질 수 있는지도 검토해야 해요. 현업 프로젝트는 사이드 프로젝트와 달리 운영과 인수인계도 고려해야 하기 때문입니다. 인기는 어느 정도인지, 관리는 잘 되고 있는지, 메이저 버전이 바뀔 때 업그레이드는 어떤 식으로 이루어지는지를 확인해야 해요.

입소문에 이끌려 새로운 기술을 도입하는 건 신중해야 합니다. 새로운 기술이 나오면 직접 써보고 좋다고 하는 사람도 있지만, 분위기나 문서만 잠깐 보고 열광하는 분들도 있습니다. 기술 도입을 검토할 때 분위기를 감지하는 건 도움이 되지만, 실제 프로젝트 환경을 고려해 더 깊게 고민해야 해요.

김충섭

Q. 최근에 새로 도입한 기술이 있으신가요?

최근에 팝업을 렌더링하려고 ‘스벨트(Svelte)’를 도입했습니다. 홈페이지 메인에는 ‘더 적은 코드’, ‘No Virtual DOM’, ‘복잡하지 않은 상태관리’가 스벨트의 특징으로 적혀있는데요, 스벨트를 도입한 이유는 이 세 가지와 무관했습니다.

우리는 오히려 스벨트를 도입하면 기존에 사용하고 있던 React 대신 추가 학습이 필요한 상황이었어요. 게다가 현재 프로젝트에 별다른 문제도 없었습니다. 코드가 길지도 않고, Virtual DOM을 쓰던 진짜 DOM을 쓰던 고객 입장에서 유의미한 차이도 없고, 상태관리도 복잡하지 않았거든요.

그럼에도 도입한 이유는 React 용량 때문이었어요. ‘코드앤버터’는 많은 분께 빠르고 가볍게 팝업을 띄워야 하는데 무거운 React 라이브러리를 로드하고 있었거든요. 물론 가장 좋은 방법은 Vanilla JS를 사용하는 건데, 그러려면 밑바닥부터 만들어야 했습니다. Svelte는 컴파일러 레벨에서 Vanilla JS 수준으로 코드를 최적화해줘 도입하고 나서 React에 비해 용량을 1/10로 줄일 수 있었습니다.

Q. 도입에 실패해 롤백했던 경우는 없으셨나요?

‘Micronaut’ 도입이 생각나네요. Micronaut은 Spring Boot와 비슷한 프레임워크로 서버리스에 특화되어 빠르고 가볍게 동작합니다. 도입 전에는 Spring Boot를 이용하고 있었는데 2개의 데이터 소스를 비교해 대사를 체크하는 작업이 필요했어요. 가볍게 서버리스 방식을 사용할 수 있는 Micronaut를 도입했죠.

도입하니 Spring Boot와 비슷하지만 약간의 차이가 있어 오히려 사용하기 어려웠어요. 다행히 롤백에 문제는 없었습니다. 아주 작은 기능이라 코드를 새로 작성하는 게 크게 어렵지 않았거든요.

신기술은 좋아 보이지만 언제든 문제가 생길 수 있습니다. 연애를 글로 배웠다는 말을 들으면 어떻게 응용할지 의아하잖아요. 신기술도 비슷합니다. 아무리 사용 방법이 간단해도 실제 프로젝트에 도입하면 생각하지 못한 변수가 많아요. 롤백을 고려해 작은 기능부터 점진적으로 도입하는 게 중요합니다.

Q. 프로덕트와 개인의 성장을 위해서는 신기술에 많은 관심을 가져야 하죠. 충섭 님은 어떤 방법으로 공부하고 계신가요?

기술 트렌드는 보통 트위터나 페이스북 등 SNS를 참고하는 편입니다. 트렌드에 재빠른 분들을 팔로우하고 있어요. 새로운 기술에 관심은 두지만, 다른 분이 같은 기술을 한 번 더 언급하면 그때 찾아봅니다. 문제 해결에 도움이 될 것 같은 느낌이 들면 테스트해보고요. ‘SNS는 인생의 낭비다’라는 말이 있는데, 기술 트렌드를 따라잡으려면 SNS보다 좋은 건 없는 것 같습니다.

새로운 기술을 공부하다 보면 스스로 한계를 정하고 익숙한 방법으로 돌아가려는 유혹에 빠지는데요, 많이 시도하고 많이 실패하고 많이 써보세요. 처음 경계를 깨는 게 생각보다 어려울 수 있는데 한번 넘으면 깨달음을 얻을 때가 많습니다. 성장할 수 있다는 믿음으로 포기하지 말고 어려움을 극복해 보세요.

Q. 이번 COMMIT은 누가 들으면 좋을까요?

개발을 좋아하고 성장하고 싶으신 모든 분을 환영합니다. 새로운 기술에 관심이 많고 신기술 도입을 고민하고 계신다면 더욱 도움이 되실 거예요.

스타트업과 적정기술에 대한 자세한 이야기는 2월 15일 수요일, 구름스퀘어에서 열리는 구름 COMMIT에서 들을 수 있습니다. 신청하고 2월 COMMIT에서 만나요.

Edit Sunny Design Lil

Posted by
goorm

ANYONE CAN DEVELOP