본문 바로가기

개인적인 이야기

2020년 회고하기 - 2년차 개발자가 되었다

나는 2019년 11월에 한 스타트업에서 프론트앤드 개발자로 커리어를 시작했고, 이제 2년차 개발자가 되었다.

 

2020년 한해를 나에게 있었던 굵직한 사건들을 회고하면서, 또 1년차의 개발자 커리어를 돌아보는 식으로 회고록을 작성해보려 한다.

 

사실 기술 블로그이기 때문에 감성적이고 주관적인 생각이 들어간 글을 블로그에 올리기는 것이 뭔가 부끄럽기도하고, 이때는 맞다고 생각했던 것이 나중에는 그렇지 않을 가능성이 높기 때문에 불특정 다수가 볼 수 있는 공간에 글을 쓰기가 꺼려진다.

 

예전에 개발 공부하면서 느꼈던 점들에 대해서도 몇개 글을 올렸다가 나중에 다시 읽어보니 이불발차기감이라 비공개로 돌렸던적이 있다.

 

이 글도 나중에 비공개가 될지는 모르겠지만 어쨌든 미래의 나를 위해서, 기억하기 위해서 기록해보고자 한다.

 

상반기 (1월~6월)

• 다니던 회사가 망했다

단언컨대 2020년 최대의 화제는 코로나이다. 코로나에 걸리지는 않았지만 나도 간접적으로 코로나의 영향을 받았다.

 

결론적으로 코로나의 타격으로 예정되었던 IR이 줄줄이 취소되고 직원들 임금 줄 돈을 끌어올 데가 없어서 회사가 망했다. 애초에 코로나가 아니더라도 회사의 비즈니스 모델 자체가 당장 수익을 낼 수 있는 구조가 아니었고, 투자금으로만 버티고 있는 회사였기 때문에 코로나로 시기가 앞당겨지긴 했지만 단지 올 것이 왔다고 생각했다.

 

 

신입으로 들어온지 5개월만에 회사가 망했지만 정말 좋은 팀원들과 팀장님을 만나 코드 리뷰를 통해 바람직한 개발 습관과 어떻게 클린한 코드를 작성하는지에 대해 많이 배웠고, 회사를 옮기고 나서도 이때 만들어졌던 습관과 코드 작성 방식을 아직도 유용하게 잘 사용하고 있다.

 

세살 버릇 여든간다는 말처럼 신입 때 만들어진 개발 습관들이 추후 커리어에 있어서 생각보다 꽤 많은 영향을 미친다는 것을 느꼈다. 결국에는 개발도 협업이기 때문에 주변 팀원들이 작성하는 코드와 그들의 작업 스타일이 나도 모르는 사이에 흡수되고 영향을 많이 받을 수 밖에 없다. 함께 일하는 사람들이 얼마나 중요한지 깨닳았다.

 

특히 팀장님 주도하에 새로운 기술 도입에 대해서 거부감이 없고 한번 해보자라는 분위기였기 때문에 5개월의 짧은 시간이었지만 기능 구현 외에도 storybook을 사용한 컴포넌트 문서화나 cypress를 이용한 E2E test도 해보고 여러가지 재밌는 것들을 해볼 수 있었기 때문에 큰 자산이 되었다. 

 

내가 속해있던 프론트앤드 팀 뿐만이 아니라 백앤드 팀도 같은 코드에서 작업하지 않았지만 그들이 일하는 방식을 옆에서 보면 정말 배울점이 많았다.

 

비록 회사는 망했지만 좋은 팀원들을 만나서 좋은 자산을 얻게 된 것은 정말 큰 행운이라고 생각한다.

 

• 새로운 집으로 이사했다

나는 일상에 전환이 필요하다 싶으면 새로운 집으로 이사가는 것을 좋아한다.

원래 살고 있던 집에서 지하철 2정거장 거리에 있는 신축 오피스텔을 보러갔는데 뷰가 너무 맘에들어서 다른 집은 보지 않고 바로 계약했다.

 

해질녘 집에서 보이는 뷰

복층의 단점으로 처음에는 계단 오르락 내리락하기 귀찮고 자다 일어나서 화장실갈 때 너어어어어무 불편하다고 생각했는데 역시 인간은 적응의 동물이라고 이제 자다깨서 화장실가지 않게 몸이 적응했다. 그리고 겨울에는 춥고 여름에는 덥다는 말이 있어서 걱정했는데, 에어컨 틀면 엄청 시원하고 보일러 틀면 엄청 따뜻해서 다행이다.

 

복층의 장점은 층고가 높고 창이 환해서 답답하지 않은점이 제일 좋다. 날씨 좋은날 창밖만 바라봐도 답답함이 사라지는 느낌이다.

 

사는 집 자체는 마음에 들지만 동네가 그렇게 깨끗한 편은 아니라 너무 섣불리 이사왔나?하는 생각도 들었지만 집 뒤에 가볍게 등산할 수 있는 산도 있고, 나름 역주변에는 있을것도 다 있고 교통도 이만하면 나쁘지 않아서 나름 만족하면서 지내고 있다.

 

결론은 이사하길 잘했다!

 

• 다시 새로운 곳으로 취직했다

멈춰져있던 이력서도 다시 만들고 토이프로젝트로 비어있는 깃 잔디관리도 틈틈히 하면서 취업 준비를 했다. 코로나 시국 때문에 힘들줄 알았는데 운좋게 생각보다 일찍 다시 재취업하게 되었다.

 

시국이 시국인지라 마음이 조금 급했는지 이력서도 몇 군데 넣지 않고 집에서 가장 가까운 곳 중 합격한 곳에 바로 출근하기로 했다. 가장 큰 장점은 집이랑 가까워서 출퇴근이 편해서 좋았다. 팀 분위기도 자유로운 편이라 만족하며 다니고 있다.

 

들어가자마자 기존 개발중이던 프로덕트의 한 페이지를 새롭게 구성 + 기존 기능 변경작업을 하게 되었다. 사실 규모가 작은 스타트업에 들어갔을 때 소프트랜딩이란 있을 수 없다는걸 잘 알고 있었기 때문에 하루 빨리 알아서 코드를 파악하고 런칭하게 되었다. 들어오자마자 한달~한달 반은 거의 매일 야근했더니 시간이 어떻게 갔는지도 모르겠다.

 

mobx는 처음 써봤는데 redux와는 달리 디버깅할 수 있는 툴이 없어서(있긴한데 제대로 동작하지 않음 스크롤이 안먹혀서 정보 일.부만 볼 수 있음...^^ㅎㅎ 업데이트도 안하는듯함...) 디버깅이 진짜진짜 하...🤦‍♀️ 거기에다가 Styled-component를 썼는데 class가 hash처리 돼서 나오니까 진짜...디버깅 지옥이었다. 컴포넌트 이름을 보여주는 styled-component 바벨 플러그인을 붙였는데 무슨 일인지 기존 컴포넌트 스타일이 다 깨지고 난리가 나서 일단 일정 맞춰서 작업을 끝내는게 우선순위였기 때문에 추후 다시 붙이기로했다. 

 

redux dev tool과 현저히 비교되는 mobx tool 리뷰...

하반기 (7월~12월)

• 개발새발 개발

프로덕트 런칭 하고나서 계속되는 기능 고도화 작업을 진행하고, 메인 프로젝트 외에 별도의 웹 사이트작업을 두개 정도 진행했다.

 

그리고나서 얼추 올해 정해진 작업이 끝난 뒤라 시간이 날 때마다 리팩토링 작업과 상반기에 못했던 styled-component 플러그인 붙이기 작업을 했다. 찾아보니 styled-component leteral 구문 안에 syntax error가 있었는데, 플러그인을 붙이면 syntax error로 잡혀서 스타일이 모두 깨지는 이슈였다. 아마 플러그인을 안붙이면 아예 해당하는 코드 줄은 무시가 됐기 때문에 여태 별일 없이 적용되어왔던 것 같다. prettier와 eslint로 코드 린팅 작업을 하고 앞으로 커밋할 때는 husky로 오류가 있는 코드는 commit을 하지 못하도록 적용시켜두었다.

 

그리고 현재 mobx 버전 4가 메인 프로젝트에 적용되어있는데, react hooks와 함께 쓰지 못하는 치명적인 단점이 있어서 다음 플젝 들어가기전에 버전6로 migration 작업을 진행하려고했다. 그런데 패키지 버전업하자마자 무수히 터지는 에러들... 예상했던 점진적 마이그레이션이 아니라 통째로 프로젝트를 갈아엎어야했다. 다음 프로젝트 들어가기전까지 혼자 migration 작업하고 QA - 배포까지 다 맞출수있을까...? 좌절감이 밀려왔다.

 

기술 부채가 쌓여가는 것이 눈에 뻔히 보이는데도 다음 일정 맞추려면 리팩토링할 시간이 없다. 컴포넌트 문서화, 컴포넌트 공통화 작업, 리팩토링 등 해야할 것들은 너무 많은데 아무리 혼자 열심히하더라도 물리적인 시간이 부족하다는 점에서 아쉽다.

 

mobx와 redux 둘다 써본 입장으로, mobx가 redux에 비해 러닝커브도 짧고 작성해야하는 코드 양도 적다는 장점이 있긴 하지만 state 가 어떻게 변하고있는지 트랙킹이 어려워서 디버깅하는데 난항을 겪었다. 그리고 store안의 state를 사용하는 컴포넌트에 observer hoc를 달아주는 것도 뭔가 순수한 컴포넌트가 되지 않는 것 같아 찝찌구리...한 마음이 있었다.

 

다음 개발부터는 아예 상태관리 라이브러리를 사용하지 말까도 고민중이다. 진짜 global하게 사용되어야할 state인가? 라고 생각해봤을 때 그렇다 라고 생각되는 state는 사실상 몇개 없을 것 같고, 설령 있다고하더라도 useContext를 사용해서 관리해도 충분할 것 같다. ---> 근데 이건 뇌피셜이라...늘 개발이 그렇듯...충분하지 않을 확률이 높을 것 같다...^^ 후 그래 해보면 알겠ㅅ지 이참에 state 관리 라이브러리의 중요성도 느껴보자...

 

• 헬스를시작했다

홈트만 꾸준히하다가 더이상 힘들지 않아서 헬스를 끊었다. 확실히 중량을 얹어서 운동하고 나니 홈트할때 보다 몸의 변화가 확 느껴졌다.

 

그렇게 한달 반을 열심히 다니면서 한창 운동에 불 붙었는데 거리두기 단계 격상으로 인해 강제 홈트족으로 돌아왔다.

 

아직 헬린이이긴 하지만 웨이트하면서 근육도 늘고, 어떻게 자극을 줘야하는지 알게되어서 이전과 같은 홈트 루틴이라도 훨씬 효율적으로 근육을 써가면서 하는것이 느껴진다.

 

본격 운동을 하면서 느낀 장점으로 시각적으로 몸이 좋아지고, 우울한 기분을 날려버리는 것에 대해 확실한 효과가 있지만 내가 느꼈을 때 제일 좋은 점은 하기 싫은 것에 대한 참을성이 진짜 많이 늘었다는 점이다.

 

숨차 죽을 것 같고 다음 한세트가 죽어도 하기 싫은데 하기싫다는 생각을 뛰어 넘어서 일단 그냥하자 라는 생각으로 하다보면 목표했던 세트를 끝내게 된다. 이때 느끼는 성취감이 어마어마하기 때문에 딱히 목표 체중이라던가 원하는 몸의 shape을 만들려고 한다기보다는 결국 하려고 했던 것을 끝냈다는 성취감때문에 계속 하게 되는 것 같다.

 

이처럼 작은 것에서 성취감을 느끼는 행동을 습관으로 만들어서 운동 뿐만이 아니라 다른 것에도 적용하려고 노력하고 있다.

 

• 블로그에 광고를 달았다

10월 중순 부터 시작해서 블로그에 광고를 단지 3개월 정도되었다. 호기심에 광고를 달아 두었는데 하루에 광고 금액이 0.1$~0.3$정도 들어왔다. 심하면 아예 없는 날도 있었다.

 

그런데 얼마 전에 메일을 확인해보니 총 누적액이 10$을 넘어 PIN번호가 발송되었다고 했다. 10$은 현재 환율로 11,000원도 안되는 금액이긴 하지만 굉장히 먼 얘기라고 생각했었는데, 어느덧 10$이 모였다고 하니 새삼 신기했다.

 

나름 블로그에 애정이 생겨 최대한 글도, 코드도 가독성이 좋도록 스킨 편집도 열심히해서 적용했다. 요즘 일 핑계로 글을 많이 못써서 아쉬운데, 작고 귀여운 금액이지만 동기부여라고 생각하고 또 다시 열심히 써봐야겠다.

 

또, 신기한점은 한창 열심히 블로그 글을 썼을 때가 작년 말 경이고 최근에는 한달에 한개 쓸까 말까인데도 예전에 열심히 써뒀던 글 덕분에 오히려 방문자수는 지금이 훠어어얼씬 많다. 누적의 힘인가보다.

 

• 확실히 성장했...나요?

다른사람이 작성한 코드를 보고 이해하는 것도, document를 읽고 처음 도입하는 기술에 대해 이해하는 것도 예전에 비해 진짜 많이 늘었다고 느낀다. 하지만 아직 자료구조/알고리즘에 대해서는 취약하다.

 

처음에 git merge도 conflict 날까봐 덜덜 거리면서 했던 때가 엊그제 같은데, 다음주에 회사에서 git 관련 하여 팀원분들께 설명하는 스터디 발표를 하게 되었다. git은 아직 나도 헷갈리고 모르는 부분이 많지만 다른사람과 협업할 수 있을 정도로는 자유롭게 사용하고 있다.

 

새로운 기능 구현할 때 컴포넌트 설계를 고민하는 시간도 많이 줄어들었다. 예전에는 클린코드와 완벽에 가까운 코드를 짜야한다는 생각에 압도되어서 오버엔지니어링 하거나 코딩하는 시간보다 고민하는 시간이 더 길어져 일정이 촉박했던 경우가 있었는데, 이제는 어느정도 밸런스를 찾아가는 것 같다.

 

처음부터 완벽하게 짜려고 하다보니 일정이 자꾸 딜레이되는 부분은 내가 처음에 개발 시작할 때 팀장님한테도 피드백을 받았던 부분인데, 사실 고치려고해도 쉽사리 이런 집착을 한번에 버리기가 쉽지 않았다. 이 부분은 이상과 현실의 괴리에 자꾸 부딪혀가면서 자연스럽게 고쳐져가는 중이다. 개발자로서 코드의 질도 좋지만 회사 입장에서의 비즈니스도 만족시켜야한다. 결국에는 비즈니스가 돌아가야 내가 이 회사에 안정적으로 고용되어 개발도 할 수 있는 것이기 때문에 조금 더 현실적인 부분에 맞춰서 생각하게 되었다.

 

마찬가지로 막 개발을 시작했을 때 아직 경험이 많이 없기 때문에 맡은 작업에 대해 일정 산출하기가 애매했던 부분이 있었다. 그리고 특유의 열쩡열쩡열쩡! 넘치는 신입의 패기와 함께 '안되면 야근까지 비비고 주말에도 개발해야지!!!!' 하면서 지금 생각해보면 말도 안되는 일정안에 할 수 있다고 했었다.

 

감사하게도 이 부분은 알아서 팀장님이 늘려서 WBS에 넣어주셨다...ㅎㅎ...

 

일정 산출은 지금도 조금 어렵기는 하다. 사실 중간에 아무 외부변수없이 개발만 놓고 본다면 감이라도 오는데 대부분의 경우 중간에 작업하다가 기획, 디자인, 백엔드팀과 커뮤니케이션을 계속해야하고, 무언가 결정이 필요하다면 잠시 홀딩시켜둬야하는 상황이 생기기 때문이다.

그래서 단순히 개발만을 생각하는게 아니라 이것저것 고려해서 여유롭게 일정산출을 해야하는 것 같다.

 

• Next Level 에 대한 고민

확실히 1년 전의 나와 비교하면 성장했다고 느낀다. 하지만 내가 성장했다고 느낀 부분들은 시간이 지나면서 자연히 늘 수 밖에 없는 부분들이 아닌가? 라는 생각이 들었다. 과연 이런 부분을 성장했다고 할 수 있는 건지는 모르겠다. 속된 말로 그냥 짬이 차다보면 생기는 자연스러운 짬에서 나오는 바이브같은...그런 것들이 아닌지...🤔

 

글쎄, 내가 원했던 그런 성장은 아닌 것 같아 요즘 고민이 많다. 기능 구현은 누구나 코딩 세네달만 배우면 아무나 할 수 있다고 생각한다. 그렇다면 기능 구현을 넘어선 개발이라는 건 어떤걸 말하는지 부터 스스로 정립하는 것이 필요할 것 같다. 

 

현재 프론트앤드 개발을 혼자 하고 있다보니 내 코드에 대해서 누군가의 피드백을 받을 수 없고 리팩토링이나 새로운 기술을 도입하는데 있어서 함께 고민하고 의견을 나눌 동료가 없어서 계속해서 고여있는 느낌이 든다. 그냥 내가 하면하고 말면 마는 느낌이라 뭐 좋게 말하면 편하고 자유로운거고 나쁘게 말하면 정체되기 쉽고 생각의 폭이 좁아질 확률이 높다. 그렇게되지 않으려고 계속해서 리팩토링도 해보려고하고 다른 잘하는 개발자들의 블로그 글 같은 걸 읽어서 적용해보려고 하는데 사실 하면서도 이게 맞나? 하는 의구심도 들고 내가 올바르게 하고 있는지도 잘 모르겠다. 

 

이 다음 단계로 넘어가기 위한 방식 중 하나로 서로에게 좋은 자극을 주는 동료를 만나는 것 인데, 나는 애초에 커리어를 개발자로 시작하지도 않았고 작은 스타텁에서만 일해봤기 때문에 개발자 네트워크 풀이 굉장히 좁다. 코로나 시국이라 예전만큼 컨퍼런스나 밋업 기회를 찾기가 힘들 것 같긴하지만 그래도 참여할 수 있는 곳이 있을지 계속해서 찾아봐야겠다.

 

또 잘하는 개발자들의 이야기나 생각을 듣는 것도 평소 생각하지 못했던 부분이나 새로운 기술의 도입을 고려하는데 있어 정말 많은 도움이 된다. 실제로 아는 사이는 아니더라도 블로그에 좋은 글과 정보들이 많이 올라와서 나처럼 길 잃은 어린 양들이 대충 어디로 가야할지 알려주는 것 같아 틈틈히 읽고 있는 중이다. 나도 블로그를 하고는 있지만 사실 글 다운 글은 몇개 없어서 언젠가는 그들처럼 좋은 기술 블로그 글을 쓰고 싶다.

 

결론

2년차 개발자가 되었다고해서 갑자기 엄청난 개발자가 되었다던가 하는 일은 없었다. 예전보다는 일할 때 여유가 생긴정도...?(근데 이건 그냥 나이먹어서 그런 것 같다.)

 

뭐 앞으로 3년차도, 4년차도 1년 전과 비교해서 갑자기 엄청나게 드라마틱한 성장이 일어날 것이라고는 생각하지 않는다. 그냥 뭐든 그렇듯이 점진적으로 천천히 꾸준히 해나가다보면 어느정도 목표지점에 가까워지지 않을까하고 생각한다.

 

되돌아보면 1년차때 하던 고민이 이제 어느정도 해결되고 다시 새로운 고민이 생겼다는게 재밌기도 하면서 과연 1년 후에는 어떤 생각을 하고 있을지, 새로운 고민이 생겼을지 궁금하기도하면서 기대가 된다.

 

다음 년도의 목표는 Next Level 개발자로 가기위한 노오오오력을 하는데에 집중해야겠다.

 

갑자기 글이 끝나는 기분이지만... 생각나는 말들을 주저리주저리 두서없이 써내려가다보니 생각보다 글이 너무 길어진 느낌이라 이만 써야겠다. 2021년의 나야 올해도 지금처럼 꾸준하게 하면 돼! 화이팅! 끝!