Daily
Good Bye 2022

Good Bye 2022

2021년을 돌아보며

작년의 글 (opens in a new tab)을 읽어보며 올해를 돌아보았을 때 나는 과연 작년보다 더 나아졌는가? 혹은 생각했던 목표들을 이루었는가 내 스스로 대답은 “어느 정도 그렇다” 이다. 과거의 나를 돌아보면 꽤 우울했다. 행복이란 무얼지 고민했었고 공허하진 않을지 걱정했다. 지금에 나는 별로 그런 생각이 들지 않는다. 작년의 나에게 고생했다고 말해주고 싶다.

21년에 말했던 22년의 목표 중 하나는 How보단 Why를 생각하며 공부하기, 내가 사용하는 기술에 대해 깊이 있게 공부하기 등 좀 더 단단해지는 게 목표였다. 21년의 초반의 나는 취업이 목표였었고 취업하고선 적응하는 게 목표였다. 개발 공부를 시작한 지 2년도 채 안 되던 시절이었기에 항상 부족함을 느꼈었고 그건 지금도 마찬가지다. 그렇기에 그때도 지금도 내실을 다지려 노력하는 중이다.


올해는 어땠을까

2021년의 했던 나의 고민과 행동들은 무엇인가 정리해보면

  • 교내 동아리 멘토링 활동을 진행했다.
  • 사내 디자인 시스템 구축 및 운영을 했다.
  • 피아노를 배웠다.
  • 과거의 내가 만든 부채를 갚아야만 했다.
  • 성장하고 싶었고 나는 어떤 개발자일까

21년 8월에 커리어를 시작한 나는 벌써 2년 차 개발자이다. 현재 하고 있는 개발과 동떨어진 삶을 살다가 20년 개발을 처음 접하고 나서부터는 어느덧 3년째 개발을 하고 있다. 즉 공부를 시작하고 운 좋게 빠른 취업을 한 나는 이점에 나는 스스로 많은 아쉬움과 갈증이 있다. 정보통신학을 전공했지만 앞으로 개발직을 할지 몰랐던 나는 전공수업은 거의 듣지 않고 듣고 싶은 교양만 들었었다. 그러기에 비전공자에 가깝고 남들보다 배경지식이 부족함을 끝없이 느꼈다.

지금도 연차가 쌓이는 게 무섭고 2년 차 개발자라 말하기보단 16개월 차 개발자라고 나를 소개하고 싶다. 물론 연차가 전부를 표현할 수는 없다고 생각한다. 그런데도 가장 직관적인 말이기에 무시할 수가 없다. 주변의 선배 개발자들을 보면 나도 그들의 연차가 되었을 때 부끄럽지 않을 수 있을까 더 잘할 수 있을까 고민한다.


교내 동아리 멘토링

나의 학교생활을 요약해보자면 20살 학교에 다닐 시절에만 해도 그전부터 프로게이머가 되고 싶었고 그에 맞는 생활을 했었다. 학교는 거의 나가지 않았고 내 인생에 필요가 없다고 생각하여 친구를 사귀기는 커녕 거의 출석도 하지 않은 채 한 학기 후에 휴학했다. 그러다 게임을 관두고 방황 했고 일단 학교로 돌아가 보자 생각한 뒤 엇복학으로 어영부영 그림자처럼 조용히 1년을 다니고 다시금 휴학했다.

이후에 개발 공부를 시작하고서도 대외활동만 알아보았지, 교내로는 눈길을 돌리지 않았었다. 학교에 친구도 없었고 집에서 멀기에 굳이 찾아가고 싶은 마음도 없었다. 그러다 21년 취업 직전 학교에 수료 증명서를 발급받으러 갈 때 문뜩 학교 친구들은 어떤 사람들일까 궁금해서 교내 동아리에 가입했다.

도와주고 싶었다. 학교에는 내가 업으로 삼고 있는 프론트엔드 개발을 공부하는 친구가 없었다. 하더라도 이제 막 시작하는 친구 한 두명만 있었고 과거의 내가 생각났다. 나는 혼자서 공부 했었다. 혼자서 정보를 찾아보고 잘 알지 못하는 사람들에게 내 이력서 첨삭해달라고 부탁하고 등 주변에 물어볼 사람이 없었다. 공부 자체의 힘듦보단 내가 잘하고 있는 건가? 에 대한 물음에 답하기 어려웠고 엄청 스트레스를 받았었다. 그렇기에 내가 아는 선에서 최대한 도와주려 노력했다. 물론 모든 날 그러지는 못했지만, 자체적으로 과제를 만들기도 면접 질문지를 만들어 모의 면접을 진행하기도 학교에서 실무보단 이론 공부를 하는 친구들이 물어볼 때면 이러한 길도 있다 제시하기도 했다.

가끔 병역특례를 하고 있는 동료들과 학교로 돌아가면 어떡할 거냐는 주제로 이야기를 하곤 한다. 지금은 학교에서 있는 시간보다 혼자 스스로 공부하는 시간이 훨씬 더 도움이 된다 생각하기에 복학한다면 최대한 시간을 알차게 써야 한다. 학교로 돌아가면 나의 주변 환경은 학교일 수밖에 없으므로 나중가서 비슷한 고민을 하는 친구가 없다 탓하기보단 지금 조금이라도 긍정적인 기여를 하고 싶다.


사내 디자인 시스템 구축 및 운영

프로덕트의 일관성 있는 UI 및 생산성을 위해 올해 초부터 사내 디자인시스템을 구축했다. 처음에는 디자이너가 미리 구축한 피그마를 보고 최대한 통일성 있게 사용할 수 있게끔 제약을 두었다. 시간이 지나고 깨달은 것은 제품은 살아 성장하는 것이고 그에 따라 디자인시스템도 초기와는 다르게 확장할 수 있게끔 유연해야 된다는 것이었다.

기존에 디자인 팀에서 먼저 구축한 디자인시스템이 있었기에 새로운 유즈 케이스는 없을 거라 간과 했던 게 오만이었다. 제품이 성장함에 따라 기존 디자인시스템에서 새로운 요구사항이 발생하고 그를 맞추기 위해 비용이 많이 들었다. props로 인자를 받아 많은 유즈 케이스를 감당 하게끔 제너릭하게 사용되던 컴포넌트는 변경에 대응하기 위해 또 다른 prop을 받아야 되고 이에 따라 분기 처리를 해주며 몬스터가 되었다.

아무리 StoryBook으로 유즈케이스에 대한 문서를 만들어두었다 하더라도 사용하려면 그 컴포넌트가 어떤 값들을 받을 수 있는지 직접 들어가 확인해보기 다분했고 이는 개발자에게 안 좋은 경험을 주었다.

그러던 와중 지난 분기 참여했던 FeConf 2022 디자인 시스템, 형태를 넘어서 (opens in a new tab)를 보고 영감을 받아 사용처에서 필요하게 되면 조합해서 사용할 수 있게끔 즉 기존에 사용처에 모든 용례를 생각하지 않고 커스텀을 전제로 추상화를 하는 식으로 개편했다. 또 Headless UI (opens in a new tab) 를 참고해 기본적인 동작만 정의해둔 컴포넌트를 만들어두고 컴포넌트 합성 패턴을 이용하여 개편했다.


피아노를 배웠다

여름에 피아노 학원에 등록했다. 어릴 적에 조금 배웠던 게 전부 였던 나는 잘치고 싶어서 배움을 시작 했다기 보단 그 당시 정신적으로 힘들었기에 숨구멍이 필요했다. 공부할 것도 너무 많았고 잘하고 싶었지만 잘하지 못했기에 그러한 상황에서 공부를 해봤자 효율이 좋지 않고 정신만 갉아먹었다. 그래서 일 외적으로 다른 취미가 필요했고 고민의 시작부터 학원 등록까지는 1시간도 채 걸리지 않았으며 경험은 너무 좋았다. 오랜만에 일 외적인 사람들과 관계를 쌓았고 시간이 지나고 나서는 내 기준(사실 엄청 못침) 그래도 조금은 괜찮게 친다 까지 성장의 달콤함도 느끼고 올해 가장 만족스럽던 취미 중 하나였다. 현재는 내가 좋아했던 취미인 등산과 더불어 해야만 하는 일들이 많기에 잠시 접어두고 있지만 다시 여유가 되면 언제든 일 순위로 배우고 싶다.


과거의 내가 만든 부채를 갚아야만 했다

회사에서는 마켓 핏을 찾기 위해 끊임없이 새로운 프로젝트를 진행했었다. 그렇기에 당장 전에 만들어둔 프로젝트는 잠시 뒤로 물러났으나 어느 정도 안정기를 찾고 시간이 지나고 나서 과거의 프로젝트에 기능 추가를 해야 하는 일이 더러 생겼다. 그래서 과거의 내가 짠 코드를 보았을 때 과거로 돌아가서 꿀밤 10대는 놔주고 싶었다.

일정에 쫓겨서 어쩔 수 없었다는 핑계라고 생각한다. 그때는 그렇게 스스로 합의를 보았지만 그건 내 책임감 결여다. 내가 만든 컴포넌트들은 어떤 역할을 하는지 한눈에 보기 힘들었고 여러 데이터에 의존이 얽힌 커스텀 훅들은 데이터의 흐름을 쫓기 어려웠다. 이렇기에 기존 기능 삭제 혹은 수정 시 어디를 건드려야 하고 어떤 사이드 이팩트가 발생할지 두려웠다. 뼈아픈 경험은 나에게 많은 깨달음을 주었고 계층을 어떤 기준으로 나누고 관심사를 분리할지 또 공통이란 무엇일지 어느 수준까지 추상화를 해야할지 구조적인 고민을 하게 되었다. Clean Architecture (opens in a new tab) 라는 책을 읽고 관련한 생각을 발표 주제로 스터디에서 발표 (opens in a new tab)도 하였다. 아직도 이 역량은 많이 부족하다고 생각한다. 현재는 GraphQL + Relay를 사용하며 DDD(Data driven dependency)에 기반한 컴포넌트 설계 방식을 공부하고 있다.


성장하고 싶었고 나는 어떤 개발자일까

먼저 내가 생각하는 성장의 정의는 무엇인가? 나는 성장이란 단순하게 새로운 일이 발생했을 때 과거보다 더 다양한 관점으로 접근할 수 있는 능력을 얻는 것이라 생각한다.

지난 몇 년간 내가 깨달은 건 성장에 은총알은 없다 성장은 어떤 지식을 학습한다고 하는 것이 아닌 경험을 통해 얻는다고 생각한다. 나에게 어떠한 문제가 발생하고 그 문제를 해결하기 위해 어떤 고민들을 하고 이후에 어떡하면 더 잘할 수 있었을지 다시 한번 생각해보는 과정에서 이루어진다 생각한다. 그리고 Comfort zone을 벗어나 계속 새로운 시도를 해야만 얻어낼 수 있다고 생각한다. 그 과정은 내 지난 경험에 비추어보았을 때 고통스러웠다. 새로운 것은 모를 수밖에 없고 무력감을 느끼게 만든다. 그렇지만 인간은 적응의 동물이기에 그렇게 믿고 늘 새로운 도전하는 것을 피하지 않으려 한다.

나는 어떤 개발자일까? 올해 사내 연말 파티에서 회사에서 책이나 강의 주문을 가장 많이 한 사람으로 자기 개발상을 받았었고 왠지 모를 씁쓸한 미소를 띠게 되었다. 작년의 나의 글에도 이걸 배우고 싶고 저걸 잘하고 싶고 이런 식의 글들을 써놓았는데 나는 아직 잘하고 싶은 개발자이다. 내 스스로 부족한게 너무 많이 보인다. 그렇기 때문에 남들보다 더 노력해야하고 노력 뿐만 아니라 더 잘하고 싶다. 이러한 태도가 나를 옭아매며 힘들게 만들었고 강박 혹은 불안에 따른 우울증도 생기게 만들었다. 그러나 지금은 다르다. 관조적으로 바라보았을 때 결국에 이런 나의 태도가 어릴 적 처음으로 좋은 성적을 거둘 때도, 프로게이머를 준비할 때도 더 많은 시도를 하게 만들고 나를 성장시켰다.아주 어릴 때 부터 지금까지 변하지 않은 것이기에 이것을 인정하고 적당한 스트레스만 받으며 긍정적으로 생각하려 한다. 성장에 은총알은 없기에 남들보다 부족하면 더 노력하고 새로운 시도를 하려는 마음가짐? 앞으론 이러한 것들을 토대로 하드스킬을 높이고 싶고 더 다양한 경험을 하고 싶다.


마무리

회고를 쓸 때면 항상 내년의 회고가 궁금해진다. 내년에 나는 어떤 생각을 할지, 어떤 경험을 했을지 궁금하다. 내년 8월이면 그동안의 병역특례가 끝이 난다. 회사를 계속 다닐지 잠시 해외를 다녀올지 어떻게 할지는 아직 확정 짓지는 못하였다. 분명 그때의 내가 좋은 판단을 내릴 거라 믿고 내년 한 해도 열심히 발버둥 쳐보아야겠다.

작년에는 주로 강의를 보았다면 올해는 책을 조금 더 읽었다.

  • Clean Architecture
  • 쏙쏙 들어오는 함수형 코딩
  • Clean Code
  • 객체지향의 사실과 오해

주로 아키텍처 관련된 책들을 읽은 것 같다. 곧 가는 훈련소에서 읽을만한 책들을 고르고 있다. 가면 자유시간에 책 읽는 것 밖에 할게 없다길래…

지금 내가 관심있는 기술은 아래와 같다.

  • GraphQL + Realy 혹은 Remix를 사용하며 data fetching 후 Render 까지 최적화 방식에 대한 이해
  • 컴포넌트 추상화 ← 도메인을 아는 영역은 어디까지로 두어야 할지 공통화는 어디까지 할지 컴포넌트가 의존하는 것들은 어떤 것들이 있을지 항상 고민하고 어떤 기준으로 추상화를 할지 항상 고민해야 한다.
  • Infra에 관련하여 공부하고 싶다.

공부 방식에도 많은 변화가 있었다. 작년에는 주로 유튜브, 공식문서 혹은 구글링(스택오버플로우)로 공부를 했었다면 올해는 해당 기술 커뮤니티(주로 discord), 해당 기술 깃헙 이슈, ChatGPT,혹은 책으로 공부한다. 기술을 직접 만든 사람들에게 질문하는게 더 이해가 쉽고 여러 유즈 케이스를 알 수 있었다. ChatGPT는 openai인데 진짜 진짜 너무 좋다. 뭐 다 알고 있고 옆에 모든걸 다 아는 개발자 한명 두고 공부하는 것 같다. (꿀팁은 한국어보단 영어로 응답을 받는게 더 빠르고 한 번에 길게 얻는다.) 책은 뭔가 근본인거 같다.

마지막으로 내년 이맘때 쯤에 나에게 인사한다 안녕~