일하는 방식

If you work really hard and you're kind, amazing things will happen.
코난 오브라이언열심히 일하고 친절하게 굴면 놀라운 일이 생긴다

이 말을 믿고 지내 왔습니다. 아직 놀라운 일까지는 모르겠지만,이 두 가지는 제가 할 수 있는 일이라 붙잡고 있습니다.

Character

어떤 사람인가

i.동료는 한배를 탄 사람

리더도 해 보고 팀원도 해 봤습니다. 그러면서 동료는 한배를 탄 사람이라는 생각을 하게 됐습니다. 멀리 가려면 배 안이 편해야 하고, 각자 잘하는 게 나올 자리가 있어야 하더라고요.

ii.먼저 말을 붙이는 쪽

그래서 분위기를 살피는 편입니다. 잘 웃고, 먼저 말을 붙이고, 막혀 있는 분이 보이면 옆에 가서 같이 들여다봅니다. 제가 대단한 걸 해내서라기보다, 같이 일하는 분들이 편하게 일하셨으면 해서요.

iii.쉽게 무너지지 않으려고

일이 잘 안 풀리는 날도 있습니다. 원인은 안 보이고 일정은 다가오고, 야근이 며칠씩 이어질 때요. 그럴 때 쉽게 무너지지 않으려고 합니다. 제가 흔들리면 옆도 같이 흔들린다는 걸 알아서, 적어도 분위기만큼은 지키려고 애씁니다.

iv.가만히 있질 못해서

가만히 있는 걸 잘 못 합니다. 일이 끝나면 다음에 배울 것을 찾고, 퇴근하고 나서도 스터디를 열고, 주말에는 못 해 본 것을 만들어 봅니다. 남보다 빨리 가려는 건 아니고, 멈춰 있으면 불안해서 계속 걷는 쪽에 가깝습니다.

v.제 이름이 걸린 일

맡은 일에는 제 이름이 걸려 있다고 생각합니다. 그래서 더 잘하고 싶은 욕심이 납니다. 아직 모자란 게 많지만, 모자란 만큼 더 오래 붙잡고 있습니다.

Practice

어떤 개발자인가

i.경계 밖으로 나가다 보니

프론트엔드로 시작했는데, 문제를 따라가다 보니 자꾸 경계 밖으로 나가게 됐습니다. 화면이 뜨려면 서버가 필요해서 서버를 짜 봤고, 배포가 없어서 배포를 만들어 봤고, 매장 프린터에 닿아야 해서 그 사이를 잇는 프로그램을 만들었습니다. 잘해서가 아니라 그렇게 해야 풀리는 문제였습니다.

ii.한 과정씩 밟을 기회

운 좋게도 한 과정씩 제대로 밟을 기회가 있었습니다. 얕게 훑은 게 아니라 각각을 한 번씩은 끝까지 해 봤습니다.

  1. 디자인01

    웹비즈 크리에이티브

    시안부터 반응형 퍼블리싱까지 직접

  2. 프론트엔드now

    실무 · 심화 교육

    3D 관제 · 실시간 미디어 · 모바일 앱

  3. 백엔드03

    풀스택 부트캠프

    MSA 7개 서비스 설계·구현

  4. 인프라04

    수업 · 대회

    CI/CD 파이프라인, 컨테이너 배포

iii.그래서 생긴 두 가지

그래서 생긴 게 두 가지입니다. 하나는 말이 통한다는 것. 디자이너에게도 백엔드에게도 그쪽 언어로 물을 수 있습니다. 다른 하나는 버그를 한 방향에서만 보지 않게 된 것. 화면이 이상할 때 화면만 뒤지지 않습니다.

iv.통째로 맡아도

덕분에 프로젝트 하나를 통째로 맡아 현장에 들어가도 감당할 수 있게 됐습니다. 아직 모르는 게 훨씬 많지만, 어디를 파야 하는지는 감이 옵니다.

v.재 보고, 고치고, 남기고

돌아가는 걸 확인하면 거기서 한 번 더 봅니다. 느낌으로 고치면 고친 게 맞는지 알 수가 없어서, 재 보고 고치려고 합니다. 그리고 왜 그렇게 했는지를 남깁니다. 제 다음에 올 분이 제 코드 앞에서 헤매지 않았으면 해서요.

Range

해 본 범위

1 – 5프론트엔드백엔드인프라·배포기록·공유협업·소통디자인·퍼블리싱프론트엔드 5/5 — 3D 관제 · 실시간 미디어 · 모바일 앱까지 실무에서백엔드 4/5 — MSA 7개 서비스 설계·구현, 메모리 걸리는 구간은 Go로인프라·배포 3/5 — GitHub Actions · Docker 파이프라인, 스토어 제출까지기록·공유 4/5 — 인수인계 문서 13편, 스터디 세 개 운영협업·소통 5/5 — 사업부와 1대1로 붙어 현장까지, 팀장 대신 회의 참석디자인·퍼블리싱 3/5 — 웹비즈에서 시안부터 반응형 퍼블리싱까지 담당
  • 프론트엔드3D 관제 · 실시간 미디어 · 모바일 앱까지 실무에서
  • 백엔드MSA 7개 서비스 설계·구현, 메모리 걸리는 구간은 Go로
  • 인프라·배포GitHub Actions · Docker 파이프라인, 스토어 제출까지
  • 기록·공유인수인계 문서 13편, 스터디 세 개 운영
  • 협업·소통사업부와 1대1로 붙어 현장까지, 팀장 대신 회의 참석
  • 디자인·퍼블리싱웹비즈에서 시안부터 반응형 퍼블리싱까지 담당

잘한다는 뜻이 아니라, 어디까지 직접 해 봤는지를 그린 그림입니다. 실력 등급이 아니라 해 본 범위입니다.

Principles

중요하게 보는 것

코드 퀄리티

돌아가는 건 절반이라고 생각합니다. 한 번 짠 코드는 한 번 더 줄이고, 동작 다음에 성능, 성능 다음에 읽기 쉬움을 봅니다. 느낌으로 고치면 고친 게 맞는지 알 수 없어서 재 보고 고치려고 합니다.

그래서 이렇게 했습니다
인수인계받은 앱이 0.5초마다 849KB를 통째로 다시 쓰고 있었습니다. 저장 구조를 나눠 필요한 것만 쓰도록 바꿔 한 번 저장이 7.89ms에서 0.058ms가 됐고, 같은 작업에서 진입 번들도 1,485KB에서 652KB로 줄었습니다.

적재적소의 자원관리

도구도 시간도 남아돌지 않습니다. 익숙한 것과 맞는 것이 다를 때는 맞는 쪽을 고르고, 배워야 한다는 이유로 후보에서 빼지 않습니다. 반대로 새것이라고 덥석 올리지도 않습니다 — 이 프로젝트가 감당할 수 있는지를 먼저 봅니다.

그래서 이렇게 했습니다
폐쇄망 지하철에는 WebRTC를, 매장 사설망 프린터에는 ESC/POS를 골랐습니다. 둘 다 그때 처음 다뤄 본 것이었지만 그 문제에는 그게 맞았습니다. 반대로 MMKV와 zod는 최신이 아니라 호환 기준으로 v3에 고정하고, 올리지 않은 이유를 문서에 남겼습니다.

클라이언트의 시선

좋은 화면은 만드는 사람 눈이 아니라 쓰는 사람 눈높이에 맞춘 화면이라고 배웠습니다. 누가 어디서 어떤 손으로 쓰는지를 먼저 묻고, 제 취향은 그 뒤에 둡니다.

그래서 이렇게 했습니다
부산 도시철도는 중년의 공무원분들이 조명 밝은 관제실의 큰 모니터로 보셨습니다. 빛이 반사돼 옅은 글씨가 지워진 것처럼 보이길래 대비를 올리고, 상태를 색 하나로만 알리지 않고 글자를 같이 붙이고, 누르는 단계를 줄였습니다.

도메인에 대한 이해

화면만 보고 만들면 어딘가는 반드시 어긋납니다. 그 일이 실제로 어떻게 돌아가는지를 먼저 익히고 손을 댑니다. 용어를 알아들어야 같은 회의에 앉을 수 있다고 생각합니다.

그래서 이렇게 했습니다
골프장에서는 티오프 간격과 캐디 배정, 주문이 주방으로 넘어가는 순서를 익히고 나서야 화면이 제자리를 찾았습니다. 지하철에서는 시설물 9종이 어떤 상황에 어떻게 제어되는지를 협업처에 물어 가며 맞췄습니다.

프로젝트의 완성도

화면이 뜨는 데서 멈추지 않으려고 합니다. 실제로 쓰이기까지 필요한 일이 있으면 거기까지 맡습니다.

그래서 이렇게 했습니다
React Native 앱은 처음 맡았지만 화면 구현부터 네이티브 설정, 릴리스 서명, 스토어 제출까지 마쳤습니다. 지하철은 현장에 배포한 뒤 그 자리에서 고쳐 다시 올리는 일까지 맡았고, 설치 담당자를 위한 안내 화면도 만들었습니다.

배움과 기록

모르는 게 나오면 그게 다음 할 일입니다. AI로 빠르게 만들 수 있는 때일수록, 쓰는 언어와 도구가 왜 그렇게 동작하는지 알아야 한 단계 더 나아갈 수 있다고 생각합니다. 그래서 직접 재 보고 뜯어 보고, 배운 것과 판단한 이유는 다음 사람이 처음부터 고민하지 않도록 남깁니다.

그래서 이렇게 했습니다
스터디 세 개를 팀장으로 꾸려 가며 스터디원들과 렌더링 방식을 직접 만들어 Lighthouse로 재 보고, 자바스크립트·타입스크립트는 컴파일 단계까지 파고들었습니다. ChatFlow에서는 AI에 기대지 않고 웹소켓을 손으로 익혔고, Argos에서는 반대로 AI에게 규칙·역할·검증을 붙여 파이프라인으로 돌렸습니다. 인수인계를 앞두고는 구조와 판단 근거를 문서 13편으로 남겼습니다.

Tools

쓰는 기술

주로 쓰는 기술과, 프로젝트에서 필요할 때 써 온 기술

자주 쓰는 것

  • 프론트엔드

    ReactNext.jsTypeScriptVue.js

  • 실시간 · 3D

    WebRTCLiveKitWebSocketThree.jsWebGL

  • 테스트

    StorybookJestTesting LibraryCypressPlaywright

  • 백엔드 · 인프라

    Spring BootKotlinGoDockerKafkaRedis

Ahead

앞으로 이런 개발자이고 싶습니다

지금

2021년에 시작해 실무 2년 11개월째입니다.

  1. 3년 뒤

    맷집

    기술적인 난관 앞에서 덜 당황하는 사람이 되고 싶습니다. 여러 파트를 직접 부딪혀 보면서, 낯선 일이 와도 일단 해 볼 수 있는 맷집이 생겼으면 합니다.

    그때까지 할 일
    • 처음 보는 문제 앞에서 감으로 고치지 않고 먼저 재는 습관 붙이기
    • 쓰고 있는 것들의 안쪽을 한 겹 더 들여다보기
    • 맡은 프로젝트를 처음부터 끝까지 책임지고 마무리해 보기
  2. 5년 뒤

    보증수표

    저에게 일을 맡기면 결과가 괜찮더라는 말을 듣고 싶습니다. 이름값이라는 게 그렇게 쌓이는 거라면, 그때까지 성실하게 쌓아 두고 싶습니다.

    그때까지 할 일
    • 혼자 잘하는 쪽에서 옆 사람이 잘하게 돕는 쪽으로 옮겨 가기
    • 제가 내린 판단을 남이 그대로 이어받을 수 있게 남기기
    • 아무도 손대고 싶어 하지 않는 문제를 먼저 집어 보기
  3. 10년 뒤

    생존자

    이 바닥은 흐름이 빨라서 따라가는 것만으로도 벅찹니다. 그래서 오래 살아남는 사람이 제일 강한 거라고 생각합니다. 10년을 쉬지 않고 왔다면 그때는 조금 덜 두렵지 않을까요. 그때도 지금 마음이 남아 있으면 좋겠습니다.

    그때까지 할 일
    • 새로 나온 것에 겁먹지 않고 계속 배우기
    • 배운 것을 혼자 갖고 있지 않기 — 스터디와 기록 이어 가기
    • 그때도 만드는 일이 재밌었으면

Write to me

연락

새로운 기회나 함께 일할 제안을 기다리고 있습니다.

이메일
plumxeun@gmail.com
코드
GitHub