순수한 창작의 즐거움이 조직의 생산성으로 이어질 수 있을까
2024년 1월 24일 한국신용데이터 기업 기술블로그에 게재한 내용입니다. 원본 확인하러 가기
안녕하세요, 한국신용데이터의 프론트엔드 엔지니어 이원국(Lee)입니다.
평소엔 회사 메인 서비스 개발에 집중하느라 생산성 도구 등 미리 생각해 놓았던 사내 사이드 프로젝트를 진행할 기회가 없었습니다.
얼마 전 연말을 맞아 밀린 연차를 사용하면서 모처럼 개인적인 시간을 가질 수 있게 되었습니다. 그리고 그 시간 중 일부 짬을 내어 해가 지나기 전 아래 프로젝트들을 완성시켰습니다.
- 사내 어드민, 업무 소프트웨어, 서비스 호스트 등 다양한 링크를 모아놓은 KCD Works 호스트
- 컴포넌트 개발 단위로 디자이너와 소통하며, 개발 진척 상황을 공유하기 위한 스토리북 기반 레포 통합 컴포넌트 카탈로그 호스트
- 서버 런타임 개발 환경 on-demand 동적 구성 프로세스 자동화 및 호스트 스위처(switcher)
- CDN 콘텐츠를 관리하기 위한 클라이언트 앱과 인프라 구축 (S3 + Lambda + CF + ECS + Docker)
이 중 다양한 링크를 모아놓은 KCD Works라는 페이지를 만든 이야기를 풀어보려 합니다. 개인적인 시간에 왜 일을 하냐는 질문을 많이 받기도 하고, 일로서의 개발과 취미로서의 개발에 대한 생각을 정리할 겸 편안한 글로 적어보았습니다.
왜 이런게 없죠?
일을 하다 보면 당연히 있을 법한데 왜 아직까지 없었는지 의아한 것들이 종종 있죠.
저는 사내에서 사용되는 수많은 Sass와 업무용 툴, 내재화된 자체 서비스와 어드민들을 보며 왜 이런 자원들이 한 곳에서 정리되어 관리되지 않을까 궁금했습니다.
개발 환경에 따라 분기되기도 하고 어느 날 서브 도메인이나 루트 도메인이 변경되기도 하는 등, “뭐가 어디에 있어요?”와 “지금까지 이런 게 있는 줄 몰랐어요.”와 같이 낭비되는 생산성과 커뮤니케이션 비용이 참 아깝다는 생각이 들었습니다.
우리의 업무를 편하게 하기 위해 태어난 도구들이 일관성을 가지고 정리되고 관리되지 않으면 또 다른 짐이 아닐까 의구심을 가졌던 게 KCD Works를 만들게 된 배경입니다.
단순함의 힘 — 아이콘과 업무의 맥락 잇기
브라우저 즐겨찾기 폴더, 개인 문서, 노트 등 구성원 각자만의 방식으로 자원에 접근하기 위한 주소들을 가지고 계시겠지만, 모으는 것보다 동기화가 잘 안 되는 것이 문제일 겁니다.
동기화라 함은 최신 URL을 말하는 것도 있지만 시각적인 은유와 분류를 통한 직관성으로 어떤 도구가 어떤 맥락에서 사용되는지 구성원, 그리고 앞으로도 합류하실 분들의 인지 과정을 동기화시키고 싶었습니다.
눈에 많이 익어서 이미 익숙한 몇 개의 도구를 제외하고 업무 소프트웨어의 자체 심벌 대신 그 서비스가 어떤 맥락에서 사용되는 것인지 아이콘과 색상의 조합을 통해 빠르게 인지시키고자 했습니다.
예를 들어 'flex'라는 HR Sass를 이미 사용해 보신 분이 아니라면 HR=flex
와 같은 등호가 바로 성립되긴 어려울 겁니다.
휴일 = 빨간날
빨간 달력 = 쉬는날
휴가 등록 = flex
우리가 이미 알고 공유하는 시각 기호의 사회적 맥락에서 이런 인식의 흐름이 이어지지 않을까 생각해 봤습니다.
Confluence, JIRA와 같이 업무에서 거의 de facto인 친구들은 심벌과 주(primary) 색을 매칭하는 편이 인지가 더 쉬울 것 같아 푸른색과 서비스 심벌을 그대로 사용했습니다.
환경에 따라 호스트 주소가 다른 서비스는 클릭했을 때 원하는 접근 환경을 선택할 수 있는 플로팅 카드를 보여줍니다.
바깥에 목록들을 모두 나열하는 방식보다, 서비스를 선택했을 때 커서를 옮기기 편한 가까운 위치에 분기된 선택지를 보여주는 것이 깔때기처럼 자연스러운 선택의 연속으로 이어진다고 생각했습니다.
서비스를 개발할 때도 무엇을 어떤 순서로 보여줄 것인지, 어떤 분류를 기준으로 화면에 나타낼 것인지 해당 화면의 목표와 사용자의 니즈를 가늠해서 신중히 인터페이스를 그려나갑니다.
이런 작은 프로젝트들이 도움이 되는 것은 배치와 순서, 비례와 색상, 인터랙션 등 인터페이스를 구성하는 요소를 어떤 의도로 만들어 갈지 직접 생각하고 결정할 수 있다는 점입니다.
프론트엔드 엔지니어는 결국 사용자와 서비스, 서비스와 서비스가 만나는 계면, 인터페이스를 설계하는 사람이라고 생각합니다. 내가 쌓아 올리는 화면의 요소들에 부여된 역할과 기능을 온전히 다하여 나와 사용자의 의도와 기대를 충족시킬 수 있을지 고민하는 연습은 분명 좋은 인터페이스를 만드는 초석이 될 것이라 믿습니다.
개발자의 취미생활
저는 분명 무언가 만들어냄으로써 기쁨을 느끼는 사람입니다.
산업 디자이너로서의 삶에서도, 개발자가 되어 조금 다른 길을 걷는 지금도 쓰임이 있는 무언가를 만드는 것은 그 무엇과도 바꾸기 어려운 즐거움입니다.
개발자라는 직업도 특정 분야에서 가치 있는 것을 만들기 위한 수요에 의해 태어난 직업이 아닐까요. 무언가 만들어내는 재료가 다를 뿐 가치를 생산하는 것은 다른 분야도 크게 다르지 않다고 생각합니다.
개인적으로 저에게 조언을 구하는 분들에겐 무언가 목적과 의도를 가지고 작동하는 것을 만들어 보라고 말씀드립니다. 만들어야 하는 명확한 목적이 생긴다면 기술 그 자체를 위한 기술에 대한 공부보다 흥미를 훨씬 잘 느낄 테니까요.
취미 생활의 결과물이 조직의 생산성을 높이는 등 쓰임이 생기고도 도움이 된다면 더할 나위 없이 기쁠 것 같습니다.
만약 일상의 개발 업무가 권태롭게 다가온다면 한 번쯤 내가 기꺼이 즐겁게 할 수 있는 개발을 해보시길 추천드립니다.
기술이 문제인가
링크를 모아 하나의 페이지에 표시한 HTML 페이지를 서빙하는 웹 서버를 호스팅 하는 것은 기술적으로만 보면 전혀 대단하지 않습니다. 그저 만드느냐 만들지 않았느냐의 차이입니다.
한 시간 정도 뚝딱 만들어진 단순한 웹페이지임에도 도움이 될 수 있었다면 조금 거칠게 말해 우 리 주변을 둘러싼 다수의 문제들이 기술적으로 어려워서라기보다 행동으로 귀결되었는지 여부에 달렸다고 볼 수도 있겠습니다.
제가 요즘 보고 있는 책 『The Effective Engineer』의 저자 Edmond Lau는 생산성이 높은 개발자가 되기 위한 방법 중 하나로 레버리지가 높은 활동에 집중할 것을 제안했습니다.
내가 기꺼이 사용한 한 시간이 조직 구성원 분들의 시간을 매년 각 한 시간, 또는 그 이상으로 아낄 수 있다면 이 또한 레버리지가 높은 활동이라고 볼 수 있겠네요.
무언가의 필요성에 대해 일 년이 넘도록 이야기만 하는 것보다, 그저 조금 집중할 시간을 내어 해결하는 행동 지향적 태도가 더 많은 생산성의 향상을 가져오지 않을까 되돌아봅니다.
올해도 많은 것을 만들고 배우며 성취하는 기쁨을 누릴 수 있는 한 해가 되길 바랍니다.
다음 글로 다시 뵙겠습니다.