기술은 도구일 뿐,
핵심은 가치를 만드는 것입니다.

안녕하세요. 개발자 문동욱입니다.
저는 폭넓고 보편적인 지식을 쌓는 것을 추구하며, 본질을 탐구하고 사유하는 삶을 지향합니다.
기술적인 지식 외에도 비즈니스, 조직 문화, 심리학, 교육, 금융 등 현실의 문제를 해결할 수 있는 모든 지식에 대한 관심이 많습니다. 최근에는 토스에서 프론트엔드 챕터 리드로서 건강하고 재미있게 일 할 수 있는 팀을 만드는 것에 집중하며 팀의 문화, 사기, 내재적 동기부여 등 인간을 움직이게 하는 모든 것에 대한 고민을 주로 하고 있습니다.
Work
비바리퍼블리카(토스)
Frontend Chapter Lead
2024.02 ~ 현재토스는 금융을 쉽고 간편하게 만들 수 있는 모든 것에 도전하는 금융 플랫폼입니다. 다양한 기술적 도전과 함께, 재미있게 일하는 사람들이 만들어가는 문화가 어떤 것인지도 함께 경험하고 있습니다.
Frontend Chapter Lead
토스의 B2C 대고객 서비스를 만드는 프론트엔드 개발자들이 모인 Frontend Mobile Chapter를 리딩하고 있습니다. 챕터원들이 탁월한 개발자로 일하고 성장할 수 있는 문화/환경을 설계하며 채용과 인사, 멘토링 등의 실무를 담당합니다. 더 나아가 토스 프론트엔드 챕터가 전 세계에서 가장 유능한 프론트엔드 집단으로 자리매김할 수 있는 전략을 고민합니다.
토스의 오픈소스 위원회를 리딩하며 각 라이브러리 오너들에게 라이브러리의 성장과 브랜딩 전략을 제안하고, 대한민국의 개발자들이 더 이상 소비자가 아닌 생산자의 역할로 변모할 수 있는 발판을 마련합니다. 오픈소스 프로젝트를 토스 외부의 개발자들에게 공개하고 공유하여 국내 개발 커뮤니티의 기술력 향상에 기여하고, 더 나아가 국내 뿐 아니라 글로벌 오픈소스 커뮤니티까지 영향력을 확대하는 것을 목표합니다.
쿼타랩
Frontend Chapter Lead
2022.03 ~ 2023.10쿼타랩은 스톡옵션이나 RSU와 같은 복잡한 비상장 증권/금융 데이터나 법인 운영에 필요한 주주 명부 관리, 영업보고 등을 사용자들이 편하게 이해하고 관리할 수 있는 금융 플랫폼 쿼타북을 운영하고 있습니다.
쿼타랩 팀 내에 챕터라는 조직의 개념을 처음 도입하고 프론트엔드 챕터 빌딩부터 운영에 대한 DRI를 맡았습니다. 최고의 인재를 모셔 온전한 자율과 책임 기반의 문화를 구현하겠다는 미션을 달성하기 위해 적극적인 채용 인플로우, 브랜딩, 프로세스 수립 등에 기여하였습니다.
디자인 시스템 개발 및 도입
팀의 생산성을 높이기 위해 디자인 시스템의 필요성을 제안하고 길드를 만들어 필요 인력을 모아 프로젝트를 진행했습니다. 비즈니스를 방해하지 않으면서 성공적으로 디자인 시스템을 적용하기 위해 가장 핵심적인 토큰부터 도입하고, 이후 복잡한 컴포넌트를 점진적으로 도입해나가는 1년 로드맵을 실행하는 전략을 사용했습니다.
VC Tribe / Engineering Manager
투자 딜, 펀드 관리, LP보고 등 VC의 심사역, 관리자 등이 포트폴리오를 편하게 관리하고 투자 대상 기업과의 커뮤니케이션을 원활하게 할 수 있는 기능을 개발하였습니다. 또한 스쿼드 내 엔지니어들의 기술적 역량 향상, 커리어 발전을 위한 1 on 1 등의 활동을 진행하며 내재동기를 부여하였습니다.
Startup Tribe
투자 유치, 영업 보고, 주주 및 이사회 관리, 스톡옵션/RSU 부여 등 비상장 스타트업들이 금융/리걸 맥락에서 느끼고 있는 어려움과 불편함을 제거하고 개선하였습니다.
비바리퍼블리카(토스)
Frontend Developer Lead
2019.12 ~ 2022.03토스는 금융을 쉽고 간편하게 만들 수 있는 모든 것에 도전하는 금융 플랫폼입니다. 다양한 기술적 도전과 함께, 재미있게 일하는 사람들이 만들어가는 문화가 어떤 것인지도 함께 경험하고 있습니다.
Frontend Developer Lead
토스 코어의 혁신 비즈니스를 담당하는 사일로에 소속된 프론트엔드 개발자들의 업무 생산성을 향상시키고 성장 방향성을 잡는 것을 도와주는 애자일 리드 업무를 수행하였습니다. 5-6명 정도의 프론트엔드 개발자가 소속된 조직을 리딩하며 구성원들이 겪고 있는 어려움을 해결하고 각자의 개성을 살린 성장 방향성을 수립하여 팀원 간 시너지를 극대화하는 것에 집중했습니다.
Benefit Silo
토스를 사용하는 유저들에게 금융과 일상 혜택을 제공하는 만보기, 브랜드 캐시백, 행운퀴즈 등의 제품을 개발하였습니다.
Ads Silo
토스팀 내부에서 처음으로 광고 제품을 비즈니스 도메인으로 가진 Ads Silo의 초기 멤버로서 이번 주 미션, 머니알림 등 혜택 탭 내에 들어가는 제품들과 토스의 멤버십 서비스인 토스 프라임을 개발하였습니다.
Insurtech Silo
토스 앱 내의 내 보험 서비스를 개발하고, 계열사인 토스 인슈어런스를 지원하며 CRM 개발 및 AWS와 Travis CI, Terraform를 사용한 프론트엔드 배포/운영 인프라 구축을 담당하였습니다. 토스 인슈어런스의 배포/운영 인프라의 경우 토스에 있는 어떤 프론트엔드 개발자가 토스 인슈어런스를 지원하는 상황이 오더라도 생산성을 유지할 수 있도록, 토스와 토스 인슈어런스의 인프라와 개발환경을 최대한 동일한 구조로 맞추는 것에 집중하였습니다.
브레이브모바일(숨고)
Frontend Developer
2017.05 ~ 2019.11브레이브모바일은 온/오프라인의 서비스 제공자와 소비자를 연결하는 O2O 플랫폼 숨고를 운영하고 있습니다.
고수와 소비자가 숨고 서비스를 벗어나지 않고 앱 내부에서 커뮤니케이션을 이어나가도록 만들어 서비스 이탈율을 낮추고 매칭 여부를 확인하기 용이하도록 Web Socket과 Notification API를 사용한 노티 기능을 추가하였습니다.
FCP를 개선하기 위해 Assets Caching 전략 개선, 번들 사이즈 감축, Critical Rendering Path 과정 등의 작업을 수행하여 FCP를 70% 가량 개선하였습니다.
TypeScript 도입
기존에 있던 Vue 어플리케이션의 빌드 프로세스에 ts-loader를 추가하여 타입스크립트 빌드 프로세스를 구성하고, 비즈니스 개발 속도에 영향을 주지 않으면서 타입 커버리지를 점진적으로 늘려나가는 전략을 제안하고 실행하여 타입 안정성을 확보했습니다.
Webpack3로 번들러 마이그레이션
처음 입사할 때 구성되어있던 gulp & gulp-webpack 플러그인으로 구성되어있던 빌드 프로세스를 webpack만으로 번들링과 트랜스파일링할 수 있게 마이그레이션하였습니다.
공팔리터
Frontend Developer
2016.07 ~ 2017.01공팔리터는 소비자가 직접 상품을 사용해보고 리뷰를 공유함으로써 판매자는 불필요한 광고 비용을 절약하고, 소비자는 합리적인 가격의 소비를 할 수 있도록 연결해주는 리뷰 플랫폼입니다.
4개 언어의 i18n 작업 진행
기 존에는 영어와 한국어로만 제공되고 있던 공팔리터 서비스의 i18n을 4개 언어로 확장하는 작업을 진행했습니다. 최종적으로 영어, 한국어, 중국어, 인도네시아어 4개 언어로 서비스가 제공되었으며, 이 과정에서 불필요하게 발생하는 개발자와 번역 인원 간의 커뮤니케이션 비용을 감소시키기 위한 작업 프로세스를 정의하고 팀 내 전파하였습니다.
중국 Social Account 도입 및 중국 브라우저 Cross Browsing 진행
중국 유저들이 주로 사용하는 Weibo, QQ, 치타 등 다양한 브라우저들에 대한 Cross Browsing 진행 및 중국 SNS 서비스와 OAuth 2.0 방식으로 연동하였습니다.
Lubycon
Frontend Developer
2015.05 ~ 현재루비콘 팀은 지난 2014년 결성된 사이드 프로젝트 팀으로 팀의 멤버들은 모두 개발을 독학한 비전공자로 구성되어있습니다. 처음에는 스터디와 사이드 프로젝트 위주의 작업을 진행했으나 구성원들의 경력이 점차 쌓여감에 따라 멘토링, 스타트업 기술 컨설팅, 투자 계정 운용 등 다양한 범위의 활동을 이어가고 있습니다.
주니어 개발자와 디자이너를 대상으로 하는 멘토링 프로젝트입니다. 3개월 동안 함께 토이프로젝트를 개발하며 커뮤니케이션, MVP 정의, 가설 검증 등 효율적인 협업을 위해 필요한 소프트스킬과 챕터 내에서의 코드 리뷰, 디자인 크리틱을 통한 하드스킬 모두 성장하는 것을 목표로 합니다. 총 3개의 기수를 진행하였으며 모든 멘토링은 무료로 진행되었습니다.
중고같은 신입이 되기 위해, 또는 공부를 위해 사이드 프로젝트를 찾는 사람들을 위한 서비스. 조건에 맞는 토이 프로젝트를 찾거나 사람을 찾아서 프로젝트를 진행할 수 있도록 도와주고 싶은 마음에 시작한 사이드 프로젝트입니다. FE는 Vue와 TS, BE는 Express와 일부 API는 AWS Lambda를 사용한 Serverless API로 구현하였습니다.
사이드 프로젝트로 제작했던 Lubycon 프로젝트가 너무 방대한 코드로 인해 회사를 다니면서 유지 보수가 불가능해짐을 직감하고 Artwork 부분만 따로 떼어내서 작업해보기로 한 서비스입니다. AngularJS를 사용하였고, 처음으로 AWS와 Docker를 사용하여 서비스를 제공하기 시작하였습니다.
WebGL 기반의 3D 모델 웹 뷰어 및 에디터입니다. OBJ 파일을 JSON 형태로 파싱하는 Parser를 직접 구현하였고, Geometry에 텍스처 적용, 내부 광원 생성 및 Geometry의 질감과 스펙큘라 설정 등의 기능을 구현하였습니다. 3차원 공간에서의 물체 배치, 회전 등의 원리를 이해하기 위해 벡터와 텐서, 오일러 각, 쿼터니온 등의 개념을 독학했습니다.
Projects
TypeScript, Vue.js, Three.js(WebGL)을 사용해 제작한 실시간 태양계 천체 궤도 시뮬레이터입니다. 기본적으로는 케플러 궤도 요소와 케플러 방정식을 사용하여 특정 날짜의 행성 위치를 추정할 수 있다는 원리를 사용하였고, 이심률이 큰 궤도의 경우에는 레가르 다항식을 사용하여 궤도를 보정했습니다.
딥러닝의 기초를 이해하기 위해 만들어본 간단한 인공 신경망입니다. 기초적인 Sigmoid, MSE 등의 알고리즘을 사용하여 구현되었으며 레이어의 개수와 노드의 개수, 학습 횟수 등을 설정하면 학습 과정에서의 y값의 변화와 Loss의 변화를 시각화하여 확인할 수 있습니다.
사운드 엔지니어로 일했을 때의 추억을 담아 만든 간단한 오디오 이펙터 어플리케이션입니다. Compressor, Reverb, Delay, Filter (LPF, HPF), EQ, Distortion, Tremolo 7개 이펙터를 구현했으며, 각 이펙터가 제공하는 기능은 예전에 직접 사용해봤던 경험을 토대로 했고 원리는 인터넷으로 찾아보고 구현했습니다.
Activities
구름 COMMIT 행사에서 비즈니스 마인드를 가진 개발자라는 주제로 발표했습니다.
개발자가 기업에 제공하는 기술 서비스의 가치는 기술 그 자체에 있는 것이 아닌, 그 기술을 통해 사용자에게 실질적 가치를 전달하여 기업의 목표를 달성했는지에 따라 결정된다는 점을 강조합니다.
2023년 9월 8일 - 9월 9일에 개최된 2023 NE(O)RDINARY CONFERENCE에서 발표한 내용입니다.
2021년에 비해 현재 2023년의 시장 상황은 많이 바뀌었지만, 정작 개발자로써 일을 시작한지 얼마 되지 않은 분들에게 이러한 현실에 대한 이야기를 해주시는 분들이 많지 않다고 느껴, 조금은 특이한 발표 주제를 정하게 되었습니다.
이 강의에는 정규식이 제공하는 간단한 기능들과, 제가 실무에서 직접 접했던 문제들을 어떻게 이 기능들을 사용해 효율적으로 해결할 수 있었는지에 대한 내용을 담았습니다.
더 나아가 단순히 정규식의 기능만을 나열하는 것이 아니라 정규식이라는 기술을 누가, 어떠한 이유로 만들게 되었는지 그 원리까지 재미있게 설명합니다.
이 책에서는 VueJS에 대한 API뿐만 아니라 어떻게 활용하면 되는지에 대해 효과적으로 설명합니다. 이러한 활용 예제는 실전 애플리케이션을 구축해나가는 과정을 쉽고 효과적으로 학습하도록 도와줍니다.
어플리케이션은 실무와 동일하게 REST API를 제공하는 백엔드와 통신을 통해 데이터를 받아온 후 클라이언트에서 상태 관리를 하는 과정으로 진행되며, 이때 필요한 REST API는 Github을 통해 프로젝트를 클론받는 방식으로 제공하고 있습니다.
그 뿐만 아니라 실전 애플리케이션을 구축해나가는 과정에서 겪을 수 있는 트러블 슈팅과 필자의 실무 경험을 바탕으로 하는 조언도 함께 학습합니다.