14 minute read

23년 돌아보기

성과평과 최고점을 받다

받을 수 있는 가장 좋은 평가를 받았다.

연봉도 좀 오르고 성과급도 많이 나와서 2주 정도 기분이 좋다가

급속도로 불행해지기 시작했다.

다음에도 좋은 평가를 받기 위해 내가 해야 하는 것을 고민하기 시작했는데

몇 달 동안 생각을 해도 딱히 답이 나오지 않았다.

내가 할 수 있는 게 없다는 무기력감에 빠져 한동안 힘들게 지냈다.

한편,

회사에 사이드 프로젝트 노하우를 공유하려고 지금까지 만든 것을 정리할 기회가 있었다.

회사에서 한 사이드프로젝트

예전에 한 사이드프로젝트

사내 위키와 개인 블로그에서 지금껏 해온 것을 돌아보니

나는 프로그램을 만드는 것을 좋아하는 사람이고

그 일을 오랫동안 해왔고

꽤나 잘하는 사람이라는 걸 잊고 있었다.

 

성과급을 더 받는다고 인생이 크게 바뀌지 않는데

그 돈을 받기 위해 싫어하는 일을 억지로 할바에

내가 좋아하고 잘할 수 있는 일에 집중해야겠다는 생각이 팍 들었다.

하고 싶은 것

30년 뒤에 성공적으로 은퇴해서

노후 보장 다 해놓아서 돈 걱정도 집 걱정도 없고

인생의 모든 미션을 다 마친 뒤 남의 시선을 신경 쓸 것도 없고

체력도 남아 돌아서 아무거나 해도 괜찮다면

나는 뭘 하고 싶은가? 하고 생각해 봤다.

 

그렇다면 무조건 코딩. 정확히는 제품 개발

돈은 못 벌어도 사람들의 문제를 제대로 해결하고

아름다운 디자인과 말도 안 되게 편한 UI를 가진 제품을

만들기 위해 하루종일 고민하고 몰입해서 개발하는 일만 하고 싶다.

 

그 일을 왜 하고 싶은지 이유를 찾기 위해

내 마음속을 파고들다 보면 논리적으로 설명할 수 없는 지점에 다다른다.

이유는 없다. 그냥 좋다.

 

근데 이걸 하기 위해 돌고 돌아 30년을 기다릴 필요가 있을까?

지금 당장 할 수 있을 거 같은데..

“좋아서 한다”에서 “싫어도 한다”로

좋아하는 일을 계속하는 것

그것은 즐겁지 만은 않아

- 요아소비 <군청> 가사 중

나중에 회사를 차리고 싶을 때

아무리 좋은 아이디어, 기술력, 충분한 자본이 있더라도

내가 중간에 싫증을 내거나 지쳐서 그만두면 망할게 확실하다.

 

이에 대한 예방책으로 작은 습관을 들였다.

일단 토요일이 되면 점심 챙겨 먹고 바로 여의도 카페로 간다.

아무리 하기 싫어도, 컨디션 안 좋아도 일단 간다.

카페에서 노트북을 펴기만 하면 그날 하루는 성공이다.

가서 뭐라도 하기 때문이다.

 

이렇게 습관을 들이기까지 정말 정말 힘들었다.

카페로 가는 매 걸음마다

‘다른 사람들은 가족, 친구와 행복한 주말을 보내고 있을 텐데 나는 지금 뭐 하고 있는 거지?’

‘내가 지금 하고 있는 게 진짜 도움이 될까? 그 시간에 주식 코인 부동산 공부하는 게 맞지 않나?’

같은 생각이 계속 들었지만 나에 대한 의심을 잠시 접어두고

당장 할 수 있는 일을 조금씩 해봤다.

 

이렇게 세 달 정도 지나니까

순수하게 내 생각으로, 내 손으로 만든 작고 소중한 제품 하나가 만들어졌고

그 과정에서 노하우가 쌓여서 나만의 개발 프로세스가 정립됐다.

제품 개발 프로세스를 몇 번 반복하니까 나름 빠르고 안정적으로 제품을 뽑아내는 기술도 생겼다.

그 바탕엔 꾸준하게 시간을 쏟는 습관이 인프라로 깔려있다.

잘하고 싶다 보단 전하고 싶다

미나미 선생님의 오랜 무명가수 생활을 끝낸 한마디

뭔가 잘 안 되고 힘만 든다면 너무 잘하려고 해서가 아닐까

기술 발표를 하든, 작은 서비스를 만드려고 하든

그저 잘하려고만 하면 할 일이 끝도 없고, 딱히 그걸 사람들이 원하지도 않는 거 같다..

내가 전하고 싶은 메시지를 딱 하나라도 명확히 알고

나만이 할 수 있는 방식으로 표현하기만 해도 충분해 보인다.

그게 힘도 덜 들고 효과도 확실한 듯

인생 루프에 작은 함수 끼워넣기

작지만 큰 효과를 봤던 습관들이 좀 있다.

1. 하고 싶은 걸 눈에 잘 보이게 하기

Atomic Habits 한 장 요약이다.

Atomic Habits

해야 할 일이 있으면 눈에 잘 보이는 곳에 적는다. (방문에 붙인 부착식 화이트보드)

적으니까 300일째 98% 확률로 목표 달성하고 있다.

이게 아침에 일어나서부터 계속 눈에 보이니까

조금 벅찬 목표도 어떻게든 할 방법이 찾아지는 거 같다.

할일 보드

2. 가장 중요한 일부터 하기

오전의 1시간이 오후의 4시간보다 가치 있다.

정말 하고 싶은 일이 있으면

어떻게든 시간 내서 가장 먼저 처리하고 있다.

오후에 하면 3시간 걸릴 일도

가장 머리가 맑을 때, 계획 잘 세워서 하면 20~30분 안에 끝나는 거 10번 넘게 경험했다.

3. 오늘 하루 돌아보기

어제의 나와 오늘의 나를 diff 떠서 차이가 없다면 슬플 거 같다.

지금 능력이 많이 부족한데

유일하게 기댈 수 있는 건 성장 기울기 뿐이라서

내가 잘 성장하고 있는지 확인하기 위해

오늘 새롭게 배우고 생각하게 된 것, 실수한 거, 더 잘할 방법을 매일 적고 있다.

매일성장하기첫날 (5월부터)

매일성장하기최근 (어제까지)

하루를 요약하면 이런 느낌

while (timeLeft--) {
  잠자기();
  가장_중요한_일부터_하기();
  일하기();
  밥먹기();

  운동하기();
  하루_성장_돌아보기();
  내일할일_정하기();

  if (day === Saturday) {
    카페가서_코딩하기();
  }
}

함수 하나하나는 작고 하기 쉬운데

시간이 한참 지난 뒤에 보면 크게 성장해 있을 거라 믿는다.

기능은 사라지고 느낌만 남는다

우리는 기능보다 그 기능이 불러일으키는 감정에 더 관심 있다.

프로젝트를 완료하는 비결 한 가지를 뽑으라면 바로 ‘느낌’이다.

이게 완성되고 나서 내가 어떤 느낌을 받을지 미리 상상해 본다.

기분이 좋거나 편안하다면 어떻게든 하는 게 맞고

뭔가 쓰흡..하고 걸리는 느낌이라면 안 하는 게 맞다.

그 느낌, 젠틀몬스터 김한국 대표님의 말을 빌리면 ‘설렘’이라고 할 수 있는데

그 설렘 쫓아가다 보면 프로젝트 중간에 길을 잃지 않을 수 있고

완성된 게 내가 느꼈던 설렘을 주는지로 성공 여부를 알 수 있다.

지라 태스크

최소한의 입력으로 지라 이슈를 만들 수 있는 크롬 확장이다.

이슈를 만드려고 지라에 들어갈 때마다 느린 로딩과 복잡한 UI 때문에 스트레스를 받아서 만들었다.

태스크, 서브 태스크, 에픽 모두 지원하고

스프린트, 에픽, 컴포넌트, 레이블도 하나하나 키보드로 입력할 필요 없이 클릭만으로 추가할 수 있다.

40명 정도 쓰고 이걸로 이슈가 500개 넘게 만들어졌다.

참고

경험치 시스템

위키 문서를 읽고 경험치를 얻을 수 있는 시스템이다.

위키 문서 하단에 임베딩해서 쓴다.

경험치 시스템 데모

만든 과정

일상 속 사물이 알려주는 웹 API 디자인를 보고 필요한 엔티티를 찾고, API를 설계했다.

경험치 시스템 API 설계

내가 재밌게 쓸 수 있는가?를 기준으로 UI 동선도 짰다.

경험치 시스템 UI 동선

UI 동선을 기반으로 피그마로 디자인도 했다.

컨셉은 장난스러운 분위기가 맞춰서 네오 브루탈리즘으로 채택했다.

경험치 시스템 디자인

이후에 마크업 > API 구축 > FE 구현 순으로 진행했음

경험치 시스템 목록

얻은 것

사용자에게 주는 가치는 약하지만 기술적으로 얻고 싶은 게 있어서 만들었다.

사실 그것보다 폭죽 라이브러리를 쓸 일을 만들고 싶었음 😆

요거 3주 동안 만들어서 배운 거:

  • 여러 페이지에 걸친 사용자 동선을 짜는 방법
  • 기능을 분석해서 필요한 API를 발견하는 방법
  • SvelteKit, Sqlite, DrizzleORM으로 데이터 저장하고 불러오는 방법
  • 사내 SSO 시스템 연동하는 방법
  • 쿠키 기반 인증

책장 플랫폼

Dribbble에서 본 온라인 서점 디자인을 보고

내가 읽었던 책을 모아서 볼 수 있고, 다른 사람한테도 보여줄 수 있는 공간이 있으면 좋겠다 하고 만들었다.

드리블 책장

책을 보기에도 좋고, 정리하기 편한 UI를 일주일 내내 생각해서 만들었다.

책장 플랫폼 다이어그램

컨셉은 편함과 따뜻함

오두막집 벽난로의 따뜻함과 그 앞의 소파에 앉아서 책을 읽고 있을 때의 편안함을 상상하면서 디자인했다.

책장 플랫폼 디자인

이후에 마크업 > FE 구현 > BE 구현 > 배포를 진행했다.

책을 검색해서 추가할 수도 있고

책장 플랫폼 수정

내가 책장 목록도 요렇게 볼 수 있다.

책장 플랫폼 메인

얻은 거

전에 경험치 시스템 만들면서 배운 지식을 활용하고 + 디자인만 새롭게 해서 3주 만에 만들었다.

  • Figma의 Auto Layout 사용법
  • 적당히 만족할 만한 디자인을 만들고 다음으로 넘어가기
    • 한 부분에 너무 많은 시간을 쏟지 않기
  • 관계형 DB에서 순서정보를 저장하는 방법
  • 살짝 복잡한 DB 쿼리 짜는 법
  • 사용자 편의와 서버 부하 간 균형 맞추기

사이트 배포 플랫폼

사이트 배포 플랫폼 히어로

회사 인프라가 정말 잘 되어 있어서 서버 개발자에겐 천국이지만

FE 개발자가 편하게 쓸 수 있는 건 많이 없었다.

특히, 간단하게 사이트 배포해서 테스트 해보려면

도커 파일은 무조건 만들어야 하고, k8s 클러스터 띄우거나 구글 클라우드 런 비슷한 서비스를 이용해야 하는 등 최소 2~3시간은 걸렸다.

Netlify drop이나 Surge 처럼 그냥 파일을 올리면 바로 배포되는 서비스가 하나 있으면 좋겠다고 생각하던 차에

사내 과제로 진행할 기회가 생겨서 바로 참여했다.

초기 버전

일단 돌아가는지 확인하는 게 중요했기에

처음부터 잘 만드려고 하지 않고

  1. 파일을 업로드할 수 있는 CLI
  2. 업로드한 파일을 폴더에 저장하는 노드 서버
  3. 폴더에 저장된 파일을 서빙해 주는 NGINX 서버

3개로 구성된 초간단 버전을 팀원들과 만들었다.

초기 버전 배포

이 정도만 돼도 실사용에 문제가 없어서

팀원들에게 홍보했는데 아무도 쓰질 않았다…

사실, 나도 쓰고 싶은 마음이 들지 않았다.

뭐가 문제일까

문제는 안정감과 신뢰감이라는 생각이 들었다.

FE개발자는 CLI보다 웹 UI에 더 익숙하다.

지금 만든 앱은 CLI만 딸랑있고, 파일이 어떻게 저장되고, 다시 접근하려면 어떻게 해야 하는지 불투명했다.

편하게 쓸 수 있고, 고급스러운 디자인으로 신뢰감을 주는 웹 UI와

올린 파일을 내가 통제하고 있다는 느낌과 안정감을 주는 각종 기능이 필요했다.

제작 과정

일주일 동안 온몸을 비틀면서 고민하며 내가 받고 싶은 느낌을 구체화하고

그 느낌을 줄 수 있는 UI 구성과 페이지 동선을 생각해 냈다.

IMG_2559 IMG_2560

사용자가 능력 있는 사람임을 느끼게 주고 싶어서 shadcn ui, vercel의 무겁고 고급진 디자인을 메인 컨셉으로 채택했다.

shadcn

책장 플랫폼 만들면서 배운 Auto Layout을 요긴하게 쓰면서 Figma로 디자인했다.

화려하지도 재밌지도 않지만 오랫동안 질리지 않을 디자인을 하고 싶었다.

사이트 배포 플랫폼 디자인

추석 연휴 기간 동안, 코딩하다 누웠다 코딩하다 눕기만 2주 정도 반복하다 보니 완성됐다.

폴더만 올려놓으면 배포가 끝난다.

HTTPS가 적용된 사이트 주소가 자동으로 생성되고

SPA 라우팅, 자동 삭제 타이머까지 설정할 수 있다.

홍보하기

1페이지 마케팅 플랜의 고객의 고통을 공략하라 챕터를 보고

FE개발자라면 공감할 수 있는 이야기를 만들었다.

한 FE개발자가 웹사이트를 배포하다가 복잡한 사내 인프라의 벽에 절망한다.

우리 서비스를 만나 편하게 웹사이트를 배포하고 행복하게 퇴근하는 스토리다.

사이트 배포 플랫폼 포스터

미팅 때 좀 더 몰입감 있는 버전을 써서 홍보하니까 사람들이 엄청 집중하는게 보였다.

상상 이상으로 잘됨

지금 작업하고 있는 걸 기획자에게 확인받는 용으로

다른 팀원들에게 기능을 바로 테스트할 수 있는 링크를 건네주는 용으로

가볍게 쓰기 편해서 많은 팀원들이 사용해주고 계신다.

지금 사이트 100개 넘게 배포됐다.

배포 자동화 기능

프로젝트라는 공용 폴더 비슷한 기능 단위를 추가하고 CLI 기능을 강화해서

CI 상에서 빌드한 사이트를 바로 배포할 수 있게 했다.

PR 올리면 댓글에 레포 + 브랜치 이름으로 된 사이트 주소가 달린다.

사이트 배포 PR댓글

전엔 코드가 잘 동작하는지 보려면 로컬에서 브랜치 체크아웃하고 직접 빌드해야 했는데

이젠 사이트 링크에 접속해서 바로 확인하면 된다.

점을 찍고보니 선이었다

당장 도움이 안 되고, 아무도 쓰지 않을 거 같지만

재밌어보여서 시도한 프로젝트가

다음 프로젝트를 하는데 꼭 필요한 기술을 익히게 해줬다.

그렇게 프로젝트를 여러 개 하다보니까

쓸 만한 게 하나 걸려들기도 한다.

지금까지의 경험을 살려서 또 뭘 해볼까?

읽은 책

23년 읽은 책

24년 목표

  • 매일 할 수 있는 일에 집중하기

Categories:

Updated: