코딩 하는 가든

조금 이른 2021 회고 본문

주저리주저리

조금 이른 2021 회고

가든리 2021. 12. 2. 12:38

들어가며

 아직 회고글이 올라오기엔 이른 시기지만 여유시간이 생겨버려 일찍이 회고글을 작성 하게 되었다. 2021년은 진정한 의미로 사회인으로서의 첫발을 내딛은 해였다.(현 직장이 올 해 2월 정규직 전환이 되었기 때문에,,, 학교 졸업도 2월에 했다.) 회사에서, 또는 여러 활동을 하며 좋은 사람들을 만나고 많은 것을 보고 배운 의미 있는 한 해 였던 것 같다. 같이 취준을 하던 친구들 또한 모두 취업을 했으며 벌써 더 좋은 조건에 이직을 하거나 연협을 통해 좋은 보상을 얻어내는 친구도 있었다. 종종 주변 동생들의 취업 소식도 들린다. 나 뿐만 아니라 주변 사람들 에게도 좋은 일이 많이 있었던 한 해 였던 것 같다.

 

2021년에서 제일 기억에 남는것은 역시 회사생활이 아닐까 한다.


회사

 운이 좋게도 카카오라는 좋은 회사에서 첫 회사생활을 시작 할 수 있었다. 포털사이트 '다음'을 운영하는 팀을 만났고 시기가 들어 맞아 입사를 하자마자 다음 포털 서버 개편 프로젝트에 참여 할 수 있었다. 일일 PV가 수천만에 달하는 큰 서비스의 개편 프로젝트라니 정말 멋진 경험이었다.

 사실 시작하기 전에는 두려움이 더 크긴 했다. 나같은 쪼렙 개발자가 이렇게 큰 서비스를 다룰 수 있을까 라는 생각을 했다.(별도의 온보딩 기간 없이 바로 프로젝트에 투입 되었던것같다.) 하지만 이 팀에서의 개발 경험은 그런 걱정 따위는 바로 잊게 할 만큼 군더더기 없이 깔끔하고 좋았다.

 어떻게 하면 더 깔끔하고 유지 보수를 하기 좋은 코드가 될지? 해당 코드를 처음 접한 사람도 쉽게 접근 할 수 있도록 코드를 작성 할지? 등 많은 측면에서 공을 많이 들인 코드를 볼 수 있었다. 특히 디버깅 경험이 아주 훌륭했는데, 거의 웬만해서 문제가 생긴곳의 위치를 바로 알 수 있었다. 적절한 디자인 패턴의 접목과 DDD의 접목을 통해 좋은 품질의 코드를 만들어 볼 수 있었다.(사실 구조를 짜는것은 시니어분이 거의 다 하시긴 했다. 그 정도로 깔끔한 코드를 짜기 위해서는 수 많은 연습과 노력이 필요 하다는 것을 안다. 5년, 10년 후에는 나도 그런 경지에 다다르고 싶다.)

 사실 사내 깃헙에서 여러 프로젝트를 찾아 봤는데 이정도로 깔끔하게 짠 코드는 많이 보지 못했던것 같다. 이런 훌륭한 분들과 한 팀에서 함께 일 할 수 있었던 것이 가장 큰 행운이지 않았을까 싶다.(물론 카카오에 계시는 개발자들 모두가 훌륭한 분들이다.)

 결론적으로 다음 포털은 1초의 다운타임 없이 사용자 모르게 서버 전환을 성공 했다. 서버 구조는 완전히 바뀌었으며 쿠버네티스의 도입도 있었다. 이런 경험은 새내기 개발자인 나에게는 정말 의미있는 경험이었다.

 해당 프로젝트 이후에는 여러 운영 업무도 해보았고 공통 라이브러리를 만들어 사내 배포를 통해 여러 프로젝트에 적용시키는 일도 해 보았다. 이런 경험들을 통해 특히 엔지니어로서의 성장을 한 것 같다. 엔지니어는 기술을 통해 문제를 해결하는 사람을 뜻하리라. 비록 내가 개발자지만 기술이라 함은 꼭 코딩을 뜻하는것은 아닐 것이다. 어느 순간은 단 한 줄의 코드 추가 없이 문제를 해결 할 수 있는 순간도 올 것이다. 더 빠르고 효율적으로, 안전하게 문제를 해결 할 수 있고 그 방법을 찾을 수 있어야 진정한 의미로써의 엔지니어가 아닐까 싶다. 카카오에서의 1년은 나를 단순 코더에서 엔지니어란 무엇인가에 대한 길을 찾을 수 있게 해 주었다. (아래 영상을 통해 더 공감 할 수 있었다.)

https://www.youtube.com/watch?v=3H4umWD5bwI 


이직

 그렇다. 카카오에서의 1년을 뒤로 한 채 이직을 하게 되었다. 기회를 잡는 것도 기회라 했던가. 더 훌륭한 개발자가 되기 위한 기회가 찾아 왔다고 생각 한다.

 사실 이직을 준비 하고 있던건 아니었다. 카카오에서 더 배우고 성장 할 수 있다고 생각 하던 참이었고 적어도 3년정도는 있어야 겠다는 마음이었다. 그러던 중 토스팀에게 링크드인을 통해 연락을 받았고 토스팀에 대해 알아 보며 점점 흥미가 생기기 시작 했다.

https://www.youtube.com/watch?v=DRv8B8S_bzc 

 해당 영상이 나를 토스로 이끌었다. 특히 영상에 나온 부분 중 '우리는 이름만 대면 알만한 대기업부터 자그마한 소상공인까지 그들의 사업을 이어나가는데 도움을 주고 니즈를 가장 가까이에서 들을 수 있는 매력적인 포인트가 있다.' 라는 대목이 흥미를 느끼게 했다.

 토스팀의 채용 프로세스 경험은 매우 훌륭 했다. 리쿠르터, HR, 면접관 한 분 한 분 모두 너무 친절 하셨고 나를 배려 해 주시는게 너무 잘 느껴졌다. 면접을 보며 만난 개발자분들, HR분과 대화를 하며 그들 모두 재미있고 열정적으로 일하고 있다는게 느껴져서 참 좋았던 것 같다. 채용 프로세스 속도 또한 너무 만족 했는데 이력서 접수부터 최종 합격까지 열흘이 채 걸리지 않았다.(카카오에 올 때는 2달 이상이 걸렸다. 최근 면접 본 후배의 말에 따르면 많이 개선되었다고 한다.)

 면접이 끝난 후엔 1년 전에 비해 많이 성장한것을 느꼈다라는 피드백도 받았다.(작년 취준때 2020토스 NEXT채용 코테에서 떨어졌었다.)

 사실 학생때는 스프링계의 유명인이신 백기선님, 김영한님이 곧 바로 진리인 줄 알았다. 하지만 회사에 다녀 보니 앞서 언급한 두 분 못지 않는 훌륭한 분들이 너무 많이 계셨고 카카오에서의 1년은 나의 시야를 더 넓어지게 해줬다. 토스팀에서도 그런 훌륭한분들을 만날 수 있을거란 기대를 가지고 12월에 토스 팀에 합류를 결심 하게 되었다.

 이번 이직을 진행하며 또 느낀것이 있는데 기회가 오면 두려워 말고 잡아야 한다는 것을 느꼈다. 이제 막 2년차에 접어든 내가 벌써 토스로 이직하리란 생각은 하지 못했었다. 사실 카카오에 지원 할 때도 경력도 없는 내가 수시채용에 지원해도 될까 라는 두려움이 있었다. 카카오 수시채용은 아는 선배의 권유에 의해 지원 마감 2일전에 급하게 지원 했던걸로 기억 한다.

 기회는 예기치 못하게 찾아오며 그것을 잘 잡을 수 있어야 한다는 것을 알게 되었다. 물론 기회는 준비된 자에게 온다 라는 말도 조금은 동감 한다. 비록 딱히 이직 준비(코테, CS 지식, 기타 개발 지식 공부 등)를 한 것은 아니었지만 내가 지난 1년간 무엇을 했는지 왜 그런 결정을 내렸는지에 대해서는 막힘 없이, 맛깔나게 설명 할 수 있었다. 때문에 항상 내가 하고 있는 일을 진지하게 대하고 매 순간 최선을 다하며 복습과 회고는 항상 중요하다는 것을 다시 한 번 느끼게 되었다. 이것이 곧 이직 준비가 아니었을까 . . .

(사실 여기 가면 바빠질까봐 회고글을 미리 써놓는 것도 있다. . .)

 


자기계발

독서

 올해는 유독 책을 많이 읽었던 것 같다.(몇 권 안 돼 보여도 내 기준에선 많다..) 사실 개발 관련 서적이 대부분 이지만... 

  • 객체지향의 사실과 오해
  • 오브젝트
  • 클린 아키텍쳐
  • 스프링 5를 활용한 리액티브 프로그래밍
  • 네티 인 액션
  • 쿠버네티스 입문
  • Real Mysql
  • 쿠버네티스 인 액션(스터디 진행중)
  • 코틀린 인 액션(스터디 진행중)

얼마 전 부터는 마이크로 서비스 패턴 이라는 책을 읽기 시작 했다. 사실 작년에 서평 이벤트로 당첨되어 받은 것인데 당시에는 한 페이지도 공감을 못하다가 지금은 아주 재미있게 읽고 있다. 몇 일 전 '도메인 주도 설계로 시작하는 마이크로 서비스 개발' 과 '오브젝트 디자인 스타일 가이드' 라는 녀석들도 집에 들여 왔다. 다 읽을 수 있을진 모르겠지만 천천히 들여다 봐야 겠다.

 

개발 관련이 아닌것으로는

  • 군주론 - 마키아벨리
  • 인간실격 - 다자이 오사무
  • 달과 육펜스 - 윌리엄 서머싯

을 읽었다. 사실 연 말쯤 되서 다 몰아 읽은것 같다. 고전 문학을 좋아하는 편인데 뭔가 남는건 없더라도 문학은 읽을 때 만큼은 세상과 단절 되고 모든 걱정을 뒤로 한 채 온전히 책에만 집중 할 수 있게 해주는 매력이 있다. 아직 데미안(나의 원픽)을 처음 읽었을 때의 그 전율을 이길만한 책은 아쉽게도 찾지 못했다.(예전엔 이런 류의 책을 많이 읽었던 것 같은데 요즘 쉽지 않다...) 또 문학은 내가 구사 할 수 있는 어휘를 조금 더 다채롭게 해준다. 이런 능력은 각종 자소서나 이력서 등을 쓸 때 언젠가 도움이 되지 않을까? 이 글을 보며 그렇지 않은 것 같다고 느낀다면 기분 탓이다.(사실 잘 못쓰는 것 인정 한다... 역시 글은 쓰는것보단 보는게...)

그리고 요즘엔 너무 개발 관련만 읽다 보니 개발바보가 되는것 같아서 어제 알라딘 중고 서점에서 인문학 책도 한 권 들고 왔다. '지적 대화를 위한 넓고 얕은 지식'이라는 책인데 이걸 읽고 조금은 더 지적으로 보이는 사람이 되어봐야겠다.

내년엔 개발 관련이 아닌 여러 책들을 좀 읽고 싶다.

 

건강

 군대에 있을 땐 꾸준히 운동을 했었는데 전역하고 한참을 쉬다가 올 해 재택근무를 하는김에 PT를 등록해서 다녔었다. 4개월간 PT를 다녔고 확실히 배우지 않고 운동을 할 때 보다 더 많이 (근)성장이 되는게 느껴졌다. 하지만 8월에 PT가 끝나고 다시 헬스장에 등록을 못해서 근육은 다 빠진 것 같다. 요즘은 집 앞 도림천 런닝을 하는데 이것도 날이 추워져 슬슬 못할듯 싶다. 토스에 가게 되면 회사 근처 헬스장이라도 등록을 해야겠다. 사실 꾸준히 운동 하는건 자신 있는데 식단을 못해서 내 평생 바디프로필 한번 볼 수 있을까 싶다.

 카카오에 다니면서 재택근무 및 온라인 회식을 자주 하다 보니 배달 음식을 엄청 자주 시켜 먹게 되었다. 내년엔 어차피 출근을 할듯 싶지만 배달음식도 좀 자제하고 건강하게 챙겨 먹어야 겠다.

 먹고 있던 솔가 비타민 및 오메가3가 거의 다 떨어져서 영양제 개편도 한 번 필요 할듯 싶다. 집에 항상 두유를 두고 마시고 있었는데 대체품을 못 찾다가 야채주스가 맛있다는 말을 듣고 한번 사볼까 생각중이다.

 

여행

 코로나 사태가 벌어지고 여행이라는 단어는 많이 조심스러워졌다. 사실 여행은 아니었고 10월 한 달을 재택근무로 제주에서 보냈다. 카카오 제주 오피스에도 몇 번 출근을 했다. 카카오 제주 오피스 하면 다들 정문에 있는 코딩하는 돌하르방을 떠올리지만 개인적으로는 뒷편에서 보는 오피스 전경이 더 멋졌다.

 제주에서 근무를 하며 점심시간이나 근무 전 후로 바다 산책을 자주 했다. 해먹에 누워서 별을 보며 멍때리기도 하고 새벽에 일어나 일출을 보러 오름에 올라가기도 했다. 바다가 보이는 카페에서 아메리카노를 한 잔 하며 코딩을 하면 코드가 그렇게 잘 써...지진 않고 바다만 보인다. 근무를 할 때는 적당한 분위기는 필요 한 것 같다.(물론 제주에 근무 하면서 진행중이었던 프로젝트의 피쳐는 성실하게 잘 만들어 냈다.)

 그래도 확실히 답답한 서울의 원룸에서 일 할 때 보다는 능률이 훨씬 잘 나온 것 같다. 아마 2021년 10월의 기억은 잊지 못할 추억이 될 것 같다.

 

취미

 거의 10년간 손 놓았던 피아노를 다시 치기 시작 했다. 그동안 아주 작은 방 혹은 기숙사에만 살다가 이번에 전셋집으로 오게 되며 피아노가 들어올 자리가 생기게 되었다.(그래도 작긴 하다...) 오래 쉬어서 감이 잘 안 돌아오는것 같긴 하지만 이것도 연습만이 살 길 이다.

내년엔 유키 구라모토의 곡들을 연습 해 볼 생각이다.

 개인적인 피아니스트 원픽은 피아노 가이즈의 존 슈미트고 그 다음은 유키 구라모토다. 유키 구라모토의 작품을 감상해보시라.

https://www.youtube.com/watch?v=YfVGtJY1inU 

 

동아리

 매시업(https://www.mash-up.kr/) 이라는 동아리를 시작 하게 되었다. 학생과 직장인이 반반 정도 섞여있는 곳이다. 사실 동아리를 시작할 8월 즈음엔 반반이었던 것 같은데 지금은 그 사이에 많이들 인턴 또는 취업을 하여 회사 생활을 하고 있다. 실력있는 분들이 많이 모여 있는 곳이다. 내로라하는 IT기업 종사자들, 학생이 맞나 의심될 정도의 실력을 가진 분들이 많은 곳이다. 하루 하루 이곳에서 이야기 하며 배워가는 것들이 많다.

 해커톤 행사에서는 1위를 해 상금을 타기도 했다.(상금을 지원해준 SSG에게 감사 드리며 해커톤을 캐리 해준 클라이언트 개발자, 디자이너 분들에게 감사 드린다. 서버가 미흡해서 죄송할 따름...)

 프로젝트 팀 팀장을 맡아 회의를 주도 해 보기도 하고 이런 저런 일에 신경을 많이 썼던 것 같다. 적어도  초반 까지는 ... 뒤로 갈수록 이직 이슈 때문에 잘 참여를 못한것 같아 팀원들에게 미안하다. 다음 기수에는 끝까지 열심히 참여 해야지...

혹여나 하는 마음에 언급하지만 인원 제한과 방역수칙을 잘 준수하며 진행 되었다.

 이 동아리는 개발만 잘 하는게 아니라 놀기도 잘 한다. 술을 엄청 잘 마시는 사람들이 많다. 사실 나는 이런 류의 동아리가 매시업이 처음인데 다른 동아리(SOPT, 넥스터즈, YAPP 등)를 경험한 친구들에 의하면 분위기가 제일 괜찮다고 한다. 매시업 덕분에 재미있는 연말을 보내는 중이다. (매시업이 없었다면 올해가 너무 무료했을지도 ,,, 땡큐 매시업!)

 

개발

 스프링과 JPA를 사용하는 사람들을 위한 라이브러리 개발을 시도 했었다. 완성까진 한참 멀었다.

https://github.com/lee-garden/Jasmine

 

GitHub - lee-garden/Jasmine: Simple Jpa Admin Generator

Simple Jpa Admin Generator. Contribute to lee-garden/Jasmine development by creating an account on GitHub.

github.com

기존에 장고를 사용 하며 장고 어드민의 편의성에 아주 감탄을 하고 있었다. 하지만 스프링으로 넘어 오며 장고 어드민 같은 자동 생성 되는 어드민이 없다는것이 조금 불만이었다. 하긴 그도 그럴것이 장고는 어느정도 DB Access Layer를 강제 하지만 스프링에는 다양한 방법이 있으니 여러 상황에 대응 할 수 없겠다는 생각은 들었다.

적당한 선에서 타협을 하면 그래도 간단하게 쓸만한 정도는 되지 않을까라는 생각에 Spring + JPA를 사용하는 경우에 자동으로 어드민 사이트를 생성해주는 라이브러리를 개발 해보고자 하였다.

목표는 이러 하다. 의존성 추가를 하고 몇 가지 설정만 더해주면 어드민 사이트가 자동 생성이 된다. Reflection으로 JPA Entity를 읽고 JpaRepository를 가져와 JPA Entity의 메타데이터를 활용해 간단한 CRUD를 할 수 있는 페이지를 생성 해준다.

마지막 커밋은 한 달 전이고 아직 볼품없는 프로젝트지만 내년엔 완성 할 수 있지 않을까?

현재 라이브러리에 어드민용 템플릿을 추가 하면 라이브러리를 불러온 프로젝트에서 템플릿을 찾지 못하는 이슈가 있다. 사실 한 달 째 해결을 못하고 있다. ㅎㅎ... 오픈소스이니 추후엔 누군가의 기여도 기대해볼만 하지 않을까...


2022 계획

영어 공부

 자랑은 아니지만 영어를 못한다고 이야기 하고 다닌다. 사실 학창 시절 제일 자신 없는 과목도 영어였고 여전히 개발 문서를 읽는것도 쉽지 않다. 막 학원에 다니거나 문제집을 사서 풀겠다는 이야기는 아니다. 시간이 날 때 영어 듣기를 한다던가 미드를 보거나 해외 유튜버의 영상을 보며 영어와 친숙해지는게 먼저인것 같다.

 사실 이번에 이직을 하면서 외국계 기업에 대한 욕심이 생긴것 같다. 구글, 아마존, 페이스북... 꿈도 꾸지 못할거라고 생각 했었는데... 어! 영어만 된다면 의외로 할만 할지도? 라는 생각이 들었다. 젋고 열정이 있을 때 도전해봐야지 언제 해보겠는가! 못 먹어도 고(GO) 다.

 

MSA & DDD 공부

CQRS, Saga, 이벤트 소싱등 여러가지 MSA 환경에 어울리는 패턴들에 대해 공부 해보고 싶다. 가능 하면 예제 코드를 작성해서 남겨 두려고 한다. DDD를 적용 해 더 깔끔한 코드를 작성 하면 좋을 것 같다.

기본 코드 뿐만 아니라 테스트에도 조금 더 신경 쓰고 싶은데, 나는 코딩 뿐 아니라 여러가지 자동화를 통해 반복되는 작업을 없애는걸 좋아 한다. 이슈 알람 프로세스라던지 자동 테스팅이 그런 것들인데 이번에 아주 흥미로운 전략을 알게 되었다.

https://martinfowler.com/articles/consumerDrivenContracts.html

 

Consumer-Driven Contracts: A Service Evolution Pattern

Consumers should drive the definition of service contracts, while limiting to their individual needs. Suppliers should then validate against the union of their consumers' contracts.

martinfowler.com

소비자 주도 계약 패턴에 대해 공부 하고 spring cloud contract나 pact를 이용하여 어느정도 자동화를 통해 의존 하는 서비스간의 테스트를 더 정확하고 깔끔하게 작성 해보고 싶은 생각이 들었다.

 

회고

 조금 더 자주 회고를 작성 할까 한다. 사실 올해는 이게 처음이자 마지막 회고가 되겠지만 내년에는 가능하면 달에 한 번, 적어도 반기에 한 번은 회고를 하면 좋을 것 같다. 자주자주 메모 하고 기록하는 습관을 들여야겠다. 노션을 잘 활용해 보자. 올 한 해는 뭔가 기록물이 적은것 같아 아쉽다. 회사 업무일지라던지 업무를 진행 하며 느낀점, 스스로에 대한 회고 등 여러 글을 쓸 기회가 많았던것 같은데 그러지 못해 아쉽고 내년에는 더 많은 글을 작성해볼까 한다. 가끔씩은 일기도 써보면 좋을 것 같다. 여행을 갔을 때 남는건 사진뿐이라 하지만 그보다 더 오래 남는건 글이 아닐까

 

플러터

불로소득을 위하여! 화이팅!

 


마치며

사실 나도 취업을 할 때 주변에서 굉장히 도움을 많이 받았고 이제는 반대의 입장에 서서 많은 도움을 주고 싶다.

작년 말엔 '코알못이 개발자가 되기 까지' 라는 글로 4년간의 대학생활을 회고 하며 어떻게 취업을 준비 했는지에 대한 글을 썼다. 

 

코알못이 개발자가 되기 까지 - (1)

2021.03.26 원래 학교 후배님들을 대상으로 작성 했던 글이라 학교 얘기를 좀 써놨는데 ... 프로그래머스에 포탈이 열려서 많은 분들이 오시는것 같네요 들어오시는 모든 취준 하시는분들 화이팅

gardeny.tistory.com

 요즘은 조금 더 가까이에서 여러 사람들에게 도움을 주고 있다.(라고 생각 하고 있다.) 그래도 주변에서 취업을 했다 라거나 이직을 했다 라는 이야기를 들었을 때, 특히나 그 과정에서 나의 한마디가 덧붙여졌다라고 생각 하면 왠지 모를 뿌듯함이 느껴지곤 한다. 종종 누군가 무엇을 성취 했을 때, 그것에 대한 노티를 나에게 주었을 때 조금은 도움이 되지 않았을까 라는 생각이 든다.

 나는 이야기 하는 것을 좋아 한다. 오지랖을 부려 지인들에게 여러 이야기를 하는 편이다. 물론 내 이야기를 듣는 모두가 다 잘 되었으면 하는 마음이 가장 먼저지만 내 이야기를 하는 것은 나에게도 도움이 된다는것을 느꼈기 때문에 더욱 더 내 이야기를 하려고 한다.

 같은 말을 반복 하다 보면 어떤 개념이 내 안에 자리 잡게 되고 그것이 곧 신념과 비슷한 것이 되리라. 그리고 그것을 글로 적어 놓으면 온전히 내 것이 된다. 후배들에게 자주 하던 이야기가 있었는데 그런 이야기 들을 여러 면접들에서도 똑같이 이야기 했다. 비록 해당 질문이 들어온 것이 아니라도 어떻게든 엮어서 그런 이야기들, 내가 평소에 갖고 있던 생각들을 풀어내고 내가 어떤 사람인지를 전하면 언제나 충분히 승산이 있다고 믿는다.

 회고 또한 마찬가지다 이렇게 내가 가지고 있는 생각을 풀어내는것 또한 훗날 나에게 혹은 다른 사람에게 도움이 될 것이라 믿고 이렇게 남겨 둔다. 혹시 이 글을 보며 혹은 항상 회고글을 보며 한 번 써볼까 망설였던 분들은 꼭 한 번 해보시기를 추천 드린다.

 

 거창하지 않아도 좋다. 실패에 대한 회고도 좋다. 

 

실패에 대한 기록 또한 훗날 나에게 도움이 될거라는 생각에 이렇게 기록을 남겨둔다.

 

작년의 나에게 가장 큰 감명을 주었고 가장 큰 도움을 주었던 블로그에 적혀 있는 글귀 이다. 해당 글을 첨부 하며2021년 회고를 마친다.

https://zorba91.tistory.com/286

 

카카오 뉴인턴에서 정규직 전환 실패에 대한 회고

정규직 전환 면접에서 떨어졌다. 3개월 동안 뉴인턴으로 카카오에 재직하며 평가기간을 거쳤다. 3개월 전에는 카카오 이직에 대한 후기를 남겼었는데, 3개월이 지난 지금은 실패에 대한 회고를

zorba91.tistory.com