4년차 프론트엔드 개발자의 2023년 회고
잡담

4년차 프론트엔드 개발자의 2023년 회고

 

2023년. 작년 한 해도 쏜살같이 지나갔고, 정말 많고 많은 일이 있었다.

2022년의 내가 새로운 환경에서 크게 성장했다면 2023년의 나는 내면의 갈등과 안정, 그리고 내가 무엇을 추구하는지 스스로를 들여다보는 일에 많은 시간을 쏟았던 것 같다.

 

상반기

새로운 시도와 열정, 동시에 좌절과 고민이 많았던 상반기였다.

 

숙소... 애증의 숙소

2022년 말부터 신규 사업인 숙소 도메인 개발을 위해 숙소 스쿼드에 합류하여 개발을 진행했다.

스쿼드 내에 자리 잡은 무기력함(?)을 타파하기 위해 내 나름대로의 encouraging에 열과 성을 다했다. 스쿼드 체제 내부에서 구성원들의 자율성과 독립성, 추진력을 바탕으로 더 나은 결과를 만들 수 있을 거라는 믿음이 있었고, 애자일 관련 도서들을 읽으면서 여러 시도를 녹여내 보려 노력했던 시기이다. ('함께 자라기'는 정말 정말 좋았다)

 

지금 생각해보면 프론트엔드 개발자인지 스크럼 마스터인지 스스로의 정체성에 혼동이 올 정도로 스쿼드 내부에서 여러 시도와 노력을 했던 것 같다.

결론적으로 나름 파이팅 넘치게 숙소 도메인이 론칭되었고... 결과는? 비즈니스적으로 기대 이하의 성적표를 마주하면서 무력감이 생겨버렸다. 팽팽한 고무줄이 끊어진 기분으로 번아웃과 함께 여러 가지로 힘든 시기가 찾아오고 말았다.

 

내가 했던 노력과 결정이 더 큰 의사결정으로 인해 무용지물이 될 수 있다는 사실은 나로 하여금 이전에 겪어본 적 없는 무기력감을 느끼게 만들었고, 이어진 수습 과정에서의 추가적인 피드백과 의사결정 또한 아쉬움이 남았다.

 

나는 일에 스스로를 투영하지 않으려고 노력하는 편인데... 이 시기에는 온몸을 다해 열정을 쏟으며 일에 나 자신을 투영해 버린 게 아닌가 싶다.

 

 

AI

연초부터 ChatGPT를 위시한 LLM의 범람과 LLM 기반의 AI 서비스들이 우후죽순으로 발표 및 출시되었다. 나는 AI라는 키워드가 이 정도로 우리의 삶에 빠르게 그리고 직접적으로 영향을 끼칠 줄은 전혀 상상하지 못했다. 대체 어떤 일이 일어나고 있는지 알아내기 위해 주의를 기울이고 새로운 정보의 홍수에 허우적거리며 시간을 보냈다.

 

프롬프트 엔지니어링, 파인 튜닝 등을 통해 비즈니스와 연계하려는 여러 시도들이 눈에 띄었는데, 사실상 연계 서비스의 출시 속도보다 기술의 원천인 OpenAI의 신규 제품 발표 속도가 더 빨라 큰 임팩트를 기대하기에는 어려워 보였다.

 

LLM을 활용한 서비스들이 어떤 가치를 줄 수 있는지는 아직도 고민 중인 포인트인데, 내 생각은 '원래 잘하는 것이 있는 기업이 LLM을 접목하면 더 큰 가치를 만들 수 있지만, 타사의 LLM과 프롬프트 엔지니어링 만으로는 고유한 비즈니스 가치를 창출하기 어렵다'로 수렴되었다.

 

회사에 있는 어학당 도메인에 CX비용을 줄이고자 컨텐츠 전처리 + 벡터 임베딩 + 프롬프트 엔지니어링을 통한 챗봇 서비스를 시도해 본 것도 굉장히 새로운 경험이었다. (RAG 개념이 어렴풋하게 정립되려던 시기로 기억한다)

 

 

크리에이트립, GPT-3 기반 챗봇 '어학당 지니' 출시 : 크리에이트립 공식 블로그

[더구루=최영희 기자] 종합 한국 정보 플랫폼 크리에이트립이 GPT-3를 기반으로 한국어학당 정보 제공을 위한 챗봇 ‘어학당 지니’를 출시했다고 25일 밝혔다. 어학당 지니는 한국으로 유학

creatrip.co.kr

 

초기 PoC 및 구현 방향의 설계를 하고 진행했는데 결과적으로 아쉬운 부분들도 있었지만 좋은 시도였다고 생각된다. 프로덕트 팀을 비롯해 사내에 AI 리터러시가 좀 더 확산되는 계기였고, 이때의 경험은 추후 전체 도메인의 자동 번역을 LLM 기반의 번역으로 전환하는 데에 도움이 되었다.

Slack에서 사용할 수 있는 chatgpt 봇도 만들어서 배포했다

 

 

오픈소스

 

GitHub - Jonghakseo/chrome-extension-boilerplate-react-vite: Chrome Extension Boilerplate with React + Vite + Typescript

Chrome Extension Boilerplate with React + Vite + Typescript - Jonghakseo/chrome-extension-boilerplate-react-vite

github.com

 

기존 보일러 플레이트는 꾸준히 유지보수를 하고 있었고, 그 과정에서 새롭게 배우는 것들이 정말 많았다.

내 오픈소스 레포를 보며 기여하거나 이슈를 남기는 다른 개발자들이 때때로 내 스승이 되어주기도 하고, 내가 그들에게 뭔가 인사이트를 주는 경험도 있었다.

 

원하는 프롬프트 + 드래그 후 클릭으로 ChatGPT를 호출하면 편할 것 같아 오랜만에 익스텐션도 만들었다.

https://nookpi.tistory.com/166

 

DragGPT chrome extension 개발기

배경 최근 ChatGPT 열풍이 거세다. 연구 영역에 있던 생성 AI의 위치를 대중에 가깝게 옮기면서 대중들로 하여금 급격한 기술 발달이 이뤄지고 특이점이 왔다(?)는 생각을 하게 만드는 것 같다. 기

nookpi.tistory.com

 

이때 익스텐션을 개발하면서 처음으로 유한상태머신의 js 구현체인 XState를 사용했는데, 사용 경험이 매우 좋아서 개발팀 내부에도 공유하는 시간을 가졌다.

https://nookpi.tistory.com/177

 

React + xState

2023.03.20 개발팀 세미나

nookpi.tistory.com

 

 

CS 스터디

4월부터 8월까지 프로덕트 팀원들과 매주 CS스터디를 진행했다.

대표적인 디자인 패턴들과 OS, 네트워크 관련 기본 지식들을 다지는 시간이었고 기대 이상으로 매우 알찼다.

 

특히 OS 쪽에서 멀티 프로세싱과 스케줄링 부분을 공부하며 핵심 구현체와 그 컨셉은 추상화 Layer가 올라가더라도 활용할 수 있는 기본기로 남겠다는 생각이 많이 들었다.

 

굉장히 즐겁게 공부했던 시기였다.

 

하반기

감정이 널뛰던 상반기와는 다르게 전반적으로 차분한 하반기를 보냈다.

숙소 도메인의 여파가 상반기 초입까지 이어졌고, 의사결정에 대한 불신도 남아있었으나 차츰 체념하면서 내가 할 수 있는 범위에서 최선을 다 하자는 마음을 먹게 된 시기였다.

특히 하반기에 새로운 목표를 세우면서 또 다른 원동력도 생기기 시작했다.

 

오픈소스

미국의 한 스타트업에서 내 보일러 플레이트를 관심 있게 봤다는 연락과, 해당 보일러 플레이트를 사용해서 가장 최근에 만든 DragGPT 익스텐션을 기반으로 크롬 익스텐션 프로덕트를 만들고 있다는 연락을 받았다.

 

Hello JongHak,
 
I'm a big fan of the Chrome extension boilerplate repo you've developed! We are developing ~ and have decided to use your boilerplate for our Chrome extension.

 

추가 기능 구현에 도움이 줄 의향이 있다면 시간 단위 계약으로 일을 맡기고 싶다는 연락과 함께...

 

첫째로 내 성과물을 지구 반대편의 회사에서 인정해 준다는 점이 날 고양시켰고, 그들이 제시한 시간당 임금도 마음에 들었다.(역시 미국...?)

직장생활을 하고 있었고 업무에 지장이 생기길 원치 않았기 때문에 주말마다 적은 시간을 할애할 수 있다고 답했고 그들이 기꺼이 이해해 준 덕분에 미국에 있는 스타트업에 원격으로 조인해서 함께 업무를 해보는 귀중한 경험을 해 볼 수 있었다.

 

감사하게도 그 이후에도 여러 좋은 제안을 해주셨고, 최근에는 크롬 익스텐션 관련 업무의 니즈가 적어 내가 하는 일은 거의 없지만 이때를 계기로 아직 좋은 인연을 이어 나가고 있다.

 

https://nookpi.tistory.com/188

 

오픈소스 1K Stars 를 달성하며 느낀 것들

vite를 사용해보고자 했던 단순한 마음으로 시작했던 오픈소스가 어느덧 1K Stars를 돌파했다. GitHub - Jonghakseo/chrome-extension-boilerplate-react-vite: Chrome Extension Boilerplate with React + Vite + Typescript Chrome Extens

nookpi.tistory.com

 

 

10월이 되면서 오픈소스 레포의 Stars가 1000개를 넘겼는데, 이때 내 경험을 공유하면 좋을 것 같아 그간의 기록과 나의 감상을 블로그 글로 남겨두었다.

 

실리콘 밸리에서 일하시는 리크루터였다...ㅎㄷㄷ

 

최근에는 딱히 관리하지 않는 링크드인 계정으로 이런 메시지도 받아봤다. 이게 다 오픈소스 덕분이다...!

 

고민

9월~10월 즈음에 내 인생의 가치와 앞으로의 방향성에 대해 고민이 많아졌다.

미국 스타트업의 정규직 제안도 받고, 모 기업의 테크 인터뷰도 통과하면서 솔직히 내가 지금 결정하는 것은 무엇이든 이룰 수 있을 것 같은 자신감으로 가득 차 있었다.

하지만 반대로 내가 뭘 하고 싶은지는 제대로 정리되지 않았고, 어떤 방향성을 가지고 살아야 하는지 고민을 거듭하게 되었다.

 

남들처럼 평범한 인생의 궤적을 원하기도 하면서 동시에 남들처럼 평범하게 살기는 싫었다.

한국에 있는 남들 다 아는 기업에서 주변 사람들의 인정을 받고 평범하게 결혼 후 가정을 꾸리고 살고 싶기도 했지만, 동시에 모든 걸 내려놓고 해외에 나가 맨땅에서 새로운 도전을 해보고 싶기도 했다.

 

사실 지금도 내가 진실로 원하는 게 무엇인지 잘 모르겠다. 아니 애초에 둘 중에 하나를 원하는지도 모르겠다.

 

최근 읽은 '어른의 중력'에서 이러한 구분을 '안정형'과 '의미형'으로 구분하던데, 인간은 결국 두 개의 가치가 조화로워야 행복해진다나 뭐라나...

 

의지력

하반기에는 스스로의 의사결정에 있어 내 조악한 의지력을 이겨내기 위한 도구를 만들었다. 그 도구는 3개의 질문을 통해 몸을 강제로 움직이는 프로세스에 가깝다.

 

1. 하면 좋은 일인가?

2. 할 수 있는 일인가?

3. 하지 못하는 이유가 있는가?

 

하면 좋고, 할 수 있고, 딱히 하지 못하는 이유가 있는 것들은 내 생각에 정말 해야 되는 것, 안 하면 바보 같은 것이다.

스스로에게 위 3개의 질문을 하면서 게으른 몸을 조금 더 움직이고 나태함과의 싸움에서 승리의 경험을 만드는 것은 험난했지만 그 무엇보다도 큰 성취감을 가져다주었다.

 

회사

10월 즈음에는 회사 동료들과 좀 더 사적인 자리를 많이 가졌다.

영종도, 양평 등 주말에 카페 및 맛집 투어를 다니면서 즐거운 시간을 보냈다. 편하고 친한 사람들이어서 그런지 즐거움이 참 많았다. 오픈소스 프로젝트도 같이 진행하는 등 회사 동료분들과 더 친해지는 계기였다.

 

이맘때의 활동은 근황 글에 자세히 남겨둔 관계로 해당 글로 갈음한다.

 

https://nookpi.tistory.com/187

 

근황

0. 직장 동료들과 함께 주말에(!) 영종도에 유명한 카페에 가고 을왕리 해수욕장에도 갔다. 주말에 직장 동료들과 사적인 시간을 보내는게 처음이라서 어색했으나 굉장히 즐거운 시간을 보냈다.

nookpi.tistory.com

 

 

파트 리드

12월 초부터 프론트엔드 파트 리드를 맡게 되었다. 여러 우여곡절이 있었지만, 가장 큰 부분은 스스로의 심경 변화였다.

 

나는 지금 회사에서 자율과 책임의 원칙 아래 좋은 피드백을 받으며 큰 성장을 이뤘다고 생각한다. 그리고 이런 성장은 동료들의 피드백과 지지 없이 스스로 절대 이룩할 수 없었던 부분이라고 진심으로 생각하며 팀에 감사하고 있다. (말로 다 표현 못하지만 늘 감사합니다...)

 

그런 이유로 나는 팀에 일종의 채무감을 늘 가지고 있었다. 새로 합류한 프론트엔드 파트원들이 내가 받은 것과 동일한, 혹은 더 뛰어난 피드백과 격려, 지지를 받아 스스로 만족할 수 있을 만큼 성장하게 도와드려야 한다고 생각했다.

 

쉽게 말해 받은 만큼 돌려주고 싶다는 마음이었던 것 같다.

 

하지만 죄송하게도 그렇게 하지 못하고 있다는 느낌을 늘 받고 있었고, 누군가 총대를 메고 이 부분을 개선해야 한다고 생각하고 있었다. 골치 아픈 일을 피하고 싶은 나의 욕심과 방황에 밀려 크게 신경 쓰지 못했던 것도 죄송하고...

 

"그걸 왜 네가 해?"라고 누군가 물어본다면... (다소 건방지게 들릴지 모르지만) '내가 매니징을 하는 것 자체를 귀찮아하는 것과 별개로 잘할 자신은 있다'라고 대답할 수 있겠다.

 

파트 리드를 맡고 제일 먼저 한 것은 파트원들과의 1:1이었다. 제대로 진행되지 않던 1:1을 다소 촘촘한 간격으로 진행하면서, 파트원 개인이  가지고 있는 각자의 니즈와 만족하는 부분에 촉각을 곤두세웠다.

 

각자가 원하는 것에 대해 알아내는 것은 정말 어려운 일이었지만, 모두의 니즈를 충족시킬 수 있는 나의 스탠스를 정립하는 것은 그 이상으로 힘든 일이었다. 회사의 비즈니스 방향성과 파트원 개인의 니즈를 일치시켜 윈윈 할 수 있는 구조를 만들기 위해 노력했고 스쿼드 재배치, 업무 분장의 정리 등으로 구성원의 만족도도 올리면서 아웃풋도 개선되는 성과를 거뒀다.(고 생각한다)

 

두 번째로 한 일은 모든 Pull Request에 대한 코드 리뷰였다. 파트 리드에게 요구되는 역량은 조직마다 조금씩 다르겠지만, 우리 팀에서는 프로덕트의 방향성과 코드 퀄리티 등 개선안에 대해 자신감 있게 의견을 낼 수 있는 기술적인 역량도 크게 요구되었다. 더불어 파트 전체를 관통하는 컨텍스트의 공유를 위해 나 스스로가 일종의 허브가 되기로 결심했다.

 

파트원들의 생산성을 높이고 바퀴를 재발명하는 일이 없게끔 시작한 전체 코드 리뷰였지만, 초반에는 정말 쉽지 않았다. 열심히 일하는 파트원분들 덕분에 하루에 10개에 달하는 코드 리뷰를 보는 날도 있었다. 9시에 출근해서 3시까지 코드 리뷰만 본 날도 있었다.

 

한 편으로는 모든 PR을 리뷰하기 정말 잘했다는 생각이 들었는데, 리뷰를 하면서 자연스럽게 파트원 5명의 업무 진행 방식이나 진척도 등 업무 진행에 대한 정보도 알게 되었고 각 스쿼드 간에 존재하는 비효율 등을 찾아 생산성을 개선할 수 있었다. 무엇보다도 리뷰어가 없이 소외되는 PR이 생기지 않았고 양질의 리뷰와 성장에 초점을 둔 리뷰 코멘트를 남기려고 노력했다.

 

추후 구성원들로 하여금 업무에 대한 피드백이 이뤄지고 있으며 이로 인한 성장이 업무 만족도에 영향을 준다는 부분을 알게 되어 뿌듯했다. 궁극적으로는 성장을 통한 자아효능감이 팀원들의 리텐션에도 좋은 영향을 주지 않을까...?

 

세 번째로 한 일은 파트 내부의 유대감을 만드는 일이었다. 파트 내부의 유대감을 빠르게 형성하는 게 신규 입사자에게도 중요하고, 기존 구성원들에게도 심리적인 안정감을 제공해 줄 수 있다고 생각했다.

 

파트원들의 접점이 적고 대화의 시간 자체가 절대적으로 부족하다고 판단해서 매주 금요일에 1시간씩 '기술 잡담' 시간을 만들었다. '기술 잡담'이라는 이름에서 드러나듯이 구성원들이 부담 없이 기술에 대한 이야기를 할 수 있는 공간이면서 동시에 기술 이야기를 하지 않고 잡담만 해도 되는 시간을 만들었다.

 

첫 주에는 다소 어색한 분위기에서 기술적인 이야기보다는 잡담 위주로 시간을 보냈지만, 매주 이러한 시간이 지속되니 점차 편한 분위기에서 기술적인 고민을 나누거나 아젠다를 준비해 오는 빈도가 늘어나기 시작했다.

 

또한 기존 슬랙 프론트엔드 채널에서 업무 이야기를 함께 나누다 보니 가벼운 일상을 공유하기 어렵고, 업무 관계자들이 이미 채널에 많이 들어와 있어 부담스럽다는 건의가 있었다. 이를 수용하여 프론트엔드 파트원들만 수다를 떨 수 있는 편한 채널을 개설해서 외부 인원의 유입을 막고 소소한 일상을 나눌 수 있게 했고, 지금은 파트원들이 해당 채널에서 여행 경험이나 사진 등 활발하게 일상을 공유하고 있다.

 

그 밖에도 퇴근 후 회식이나 번개의 빈도도 늘려 좀 더 친하게 지내려고 많이 노력했던 것 같다.

 

매니저로서도 동료 개발자로서도 좋은 자극을 주고받으며 행복하게 일할 수 있는 환경을 만들기 위해 나름 최선을 다 했다고 생각한다. 물론 모든 부분에서 완벽하진 못했지만 2024년 초 현재까지는 체감적으로는 프론트엔드 파트의 분위기가 상당히 좋아진 것 같아 뿌듯하다.

 

 

2023 총평

'비 온 뒤에 땅이 굳는다'라고 한다.

비가 온 직후, 땅은 걷기도 힘들고 보기에도 안 좋은 진창이 되지만 시간이 지나 물이 마르면 적당히 단단하고 폭신폭신한 걷기 좋은 흙길이 된다.

 

작년 한 해가 나게에는 그런 과정이었다고 생각한다.

 

상반기에는 많은 비가 나를 진창에서 허우적대게 만들었고 실제로 내 모습도 썩 보기 좋지 않았다. 다행히 하반기에 이르러 비가 적당히 마르고 내 스스로의 날도 어느 정도 벼려진 보기 좋은 모습으로 마무리했다고 생각한다.

 

올해는 또 다른 큰 도전을 해보려고 한다.

걷지 않은 길은 늘 두렵지만, 또 늘 그렇듯이 걷고 나서 뒤돌아보면 정말 별거 아니었다.

 

용기는 낭떠러지 앞에서 꽉 쥐는 주먹이 아니라, 낭떠러지까지 걸어 올라온 두 발에 숨어있다고 생각한다... 내년에도 잘 해보자!