getogrand's hypermedia

안녕하세요. 주원영입니다. 2013년부터 소프트웨어 개발자로 일하며 살고 있습니다. 연락은 getogrand@hey.com으로 부탁드립니다. 단순 수다, 업계 이야기, 기술에 대한 문의/논의 및 이를 위한 커피챗 요청 환영합니다.

계정들

커리어

대기업 SI 조직에서 커리어를 시작했습니다. 첫해에는 QCO(Quality Control Officer)로 활동했고, 후에는 Java, Spring Framework, JSP, JSTL, MyBatis, jQuery 등을 이용해 웹페이지를 개발했습니다. 마지막 해에는 주로 JavaScript를 이용한 UI 개발을 많이 했습니다. 지금은 아무도 안 쓰는 Backbone.js와 Marionette.js를 사용했습니다.

이후 스타트업 씬에 합류했습니다. 이때 한창 React에 꽂혀서 React 개발자로 10명쯤 되는 작은 뷰티 O2O 스타트업에 들어갔습니다. 어쩌다 보니 Ruby on Rails 서버도 만지고 Golang으로 그 서버를 다시 쓰기도 했습니다. 후에는 기존 네이티브 앱을 웹앱으로 변경해야 했습니다. 이때 Cordova와 React Native를 사용해 봤는데 둘 다 이건 아니다 싶어, 그냥 직접 Swift로 iOS 앱을 만들어 웹뷰로 감쌌습니다. Android 앱도 만들던 중에 투자가 불발되면서 회사는 문을 닫았습니다.

전 회사 동료분의 추천으로 당시 50명 정도 규모의 토익 앱 스타트업에 합류했습니다. 바로 전 회사에서 SPA 웹앱에 회의감이 들기도 했고 iOS 앱을 만져본 경험이 재밌었기 때문에 iOS 앱 개발자로 들어갔습니다. 여기서 Spotify 모델을 따르는 목적 조직을 처음 경험했습니다. 이 회사에서 데이터 기반으로 가설 및 검증을 하고 이를 끌어나가는 것이 어떤 것인지 처음 경험했습니다. iOS 앱은 기술적으로 꽤 실험적이었습니다. 여기서는 iOS UIKit에 대한 경험보다 ReactiveX와 함수형 프로그래밍에 대한 경험이 주되었습니다.

다음에는 다시 13명 정도의 작은 정육 스타트업에 iOS 앱 개발자로 합류했습니다. 여기서는 별도 서버나 RDBMS 없이 모든 데이터를 Firebase Realtime Database와 Firestore에 저장하고 대부분의 비즈니스 로직을 클라이언트에서 처리했습니다. 어느덧 회사 규모는 100명대를 넘어 200명대로 진입했고 프론트엔드팀장을 맡게 되었습니다. 이 과정에서 저는 중앙집중식 매니지먼트를 사용하고 개발자가 최대한 많은 시간을 개발에만 쓸 수 있도록 했습니다. 그리고 이 방식의 명확한 한계, 그리고 매니저로서의 저에 대해서도 한계를 느꼈습니다.

그러던 중 전 직장 동료분의 창업 소식과 함께 합류 제안이 들어왔습니다. 고등학생들이 수능 및 모의고사 공부를 하는 학습 태블릿 앱이었습니다. 이때 UI 구현으로는 가장 도전적인 경험을 했습니다. SwiftUI의 거친 추상화와 TCA 성능 문제가 작업을 까다롭게 했습니다. SwiftUI와 WebView를 섞은 컴포넌트에 다량의 애니메이션을 넣고 나서는 iOS 앱 개발에 지쳐버렸습니다. 고민 끝에 백엔드 챕터로 옮겨 TypeScript API들을 만들고 고쳤습니다. 이 회사에 다니면서 내가 하는 일이 우리 비즈니스를 영위하는데에 정말로 도움이 되는가에 대한 생각을 많이 했습니다.

다음 커리어는 다시 Full-Stack 웹 개발자 혹은 백엔드 개발자로 생각하고 있습니다. HTML-over-the-wire 류의 기술과 Full-Stack 프레임워크를 함께 써서 제가 생각한 합리적인 기술 스택을 직접 검증해 보고 싶습니다. 기술적 검증에 성공하고 비즈니스도 잘 되어 과연 이 스택으로 어디까지 스케일업이 가능한지 확인할 수 있다면 더할 나위 없이 좋겠습니다.