2년차 주니어 백엔드 개발자 그동안의 회고록

log.info·2022년 1월 2일
40

2022

목록 보기
1/4
post-thumbnail

난생 처음 공개적으로 작성해보는 회고록.
2021 회고록이 아닌 그동안의 회고록인 이유는 취준부터 지금까지의 시간을 되돌아보기 위해서이다.

꾸준히 노력하기 위해 노력하는 사람

나는 어떤 사람인가? 한마디로 정의내린다면 위와 같을 것 같다.

그동안의 일일커밋 기록

CS 전공이지만 개발자가 아닌 다른 진로를 생각하다 개발자로 취업을 준비하게되어 2018년에 개발 공부를 제대로 처음 시작하게 되었다.

그동안은 전공 공부 정도로만 개발을 공부했다면 2018년에는 처음으로 Spring 을 공부하며 동시에 프로젝트를 진행했다. C나 Java 정도는 공부했지만 실질적으로 개발에 제로 베이스였던 내가 공부를 시작하며 동시에 프로젝트를 시작할 수 있었던 것은 함께 프로젝트를 진행한 친구가 개발을 어느정도 할 줄 알았고 메인으로 프로젝트를 끌고가 주어서 가능했다.

그 당시 Spring 공부프로젝트, 23학점의 수업, 졸업요건을 위한 봉사활동, 교내 아르바이트까지 동시에 진행을 했고, 정말 잠을 제대로 자지 못할 정도로 시간이 부족했다.

거의 매일 열람실과 동아리 방에서 밤을 세워 공부하다 다음날 아르바이트를 하러 갔고 모든 남는 시간은 부족한 개발 공부와 프로젝트를 하는데 사용했다. 너무 스트레스 받고 피곤할 때는 의자에서 쪽잠을 자거나 우쿨렐레를 쳤다.

(지금 생각해보니 지켜보는 사람이 있었다면 얼마나 내가 웃겨보였을까 개발을 열심히 하다가 갑자기 우쿨렐레를 미친 듯이 치고 다시 개발하다가 치고..)

그리고 나는 프로젝트를 성공적으로 완료하고, 당시 목표였던 성적 4.3을 받았다.

누군가 인생에서 가장 열심히 살았을 때가 언제니? 라고 묻는다면 망설임 없이 2018년이라 대답할 수 있을 것이다.

개발 홀로서기

2018년의 하반기부터는 취준의 연속이었다.

프론트 엔드 친구와 두번째 프로젝트를 시작하고 서버 개발부터 배포 까지 온전히 혼자만의 힘으로 진행을 하게 되었다. 부가적으로 Effective Java 자바 ORM 표준 JPA 프로그래밍 공부, 그리고 AWS로 CI/CD 배포하기를 진행했다.

그 당시에도 그렇고 지금도 그렇고 나에겐 멘토가 없었다. 이 다음엔 어떤 방향으로 나아가야하는지, 취업 준비는 어떻게 하는지 정보가 전혀 없었다. 그래서 당시에는 인터넷의 도움을 많이 받았다. 구글이 나의 멘토였다.

해당 시기 진행한 프로젝트는 창천향로님의 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 시리즈 도움을 많이 받았다.

나처럼 전공자임에도 정보를 얻을 수 있는 네트워크가 없던 사람, 또는 아예 새로 시작하는 비전공자 등 어떻게든 지푸라기라도 잡고 싶은 주니어들에게 양질의 개발 글을 작성해주는 개발자분들이 있어 멘토가 없이도 성장할 수 있었다. 참 감사하다.

방향 고민과 첫 대외활동

지금도 그렇지만 당시에 가장 어려웠던 것은 방향 설정이었다. 열심히는 할 수 있다. 하지만 어떻게 해야하는가? 많은 주니어 개발자들의 고민 또한 이것일 것이라고 생각한다.

그때까지의 나는 계속 소규모 개발을 해왔기에, IT 동아리 활동을 도전했다. 동아리 활동에서 기획자와 디자이너와 협업을 어떻게 하는지. 한 프로덕트가 나오기 위해서 어떤 과정을 거치는지 회사에 가기 전에 미리 배운 것 같다. 그리고 다른 백엔드 개발자와 협업을 하며 PM의 역할도 간단히 해보았다.

어떻게 어떤 방향으로 성장하는게 좋을지는 아직도 고민하고 답을 찾고 있는 문제다. 그래서 그 때도 지금도 답을 외부에서 찾아보는 중이고, 당시의 동아리 활동은 그 헤맴의 일환이었다.

그리고 취업

취준 회고를 너무 늦게 작성해서, 지금 트렌드와 조금 다르게 포트폴리오가 화려하지 않아도 원하는 회사에 취업에 성공했다.

(정확한 방향은 정하지 못했지만 내가 원했던 회사는 SI가 아니며 자체 IT 서비스가 있으며 대규모 트래픽이 발생하는 회사였다.)

내가 그동안 진행한 것은 소규모 프로젝트 2개 그리고 IT 동아리에서 진행한 프로젝트 1개였다.

그 당시는(?) 내 정보 부족일 수 있지만, 지금처럼 부트캠프나 학원이 성행할 때가 아니었고 1일 1커밋도 슬슬 알려지기 시작할 때라 많이 하고 있지 않은 상황이었다.
그래서인지 당시에 면접보러 다니던 회사 중 한 곳에서는 1일 1커밋의 성실함학원을 다니지 않은 것을 자신감이 있어보인다며 좋게 보기도 했다.

(지금은 워낙 1일 1커밋이 흔하고 화려한 포트폴리오가 많아서 지금 같은 포트폴리오로 신입을 도전한다면 좋게 볼지는 잘 모르겠다. )

한 가지 아쉬운 점은 계속해서 달려오느라 지쳐서, 너무 쉽게 만족해버린 것. 현재 회사에 최종 합격을 했어도 조금 더 다양한 회사에 지원을 좀 더 넣었으면 좋지 않았을까 생각은 든다.

병아리 개발자로 홀로 살아남기

취업을 하고 정말 많은 일들이 있었다.
그 중 나에게 가장 많은 영향을 끼친 일은 홀로 살아남게 된 일이다.

사수가 퇴사했다

사수의 퇴사는 뒤따라오는 Side-Effect 가 많았다.

우선 팀 내 거의 유일하게 학습과 성장에 적극적인 분이었다는 점.
따라서 그 분의 퇴사로 팀내 이런 분위기는 침체되어 버렸다. 그리고 그 분이 맡던 서비스를 떠맡게 된 것. 그리고 그 분이 남겨 놓은 똥과 내 똥이 합쳐져 빅똥이 되어 장애가 난 것. 그 장애의 뒤처리. 나도 모르는데 나한테 들어오는 모든 것들. 생각보다 엉망진창인 코드와 생각보다 심각한 팀내 레거시 등

이 과정을 홀로 헤쳐나와야 했다.

취업을 하고 알게된 것

직업으로써의 개발자

  • 인터넷으로 개발을 배우다 보면 주로 유니콘같은 개발자들을 주로 보게 된다.
  • 좋은 개발 문화를 지향하고 코드 리뷰를 하고 테스트 코드를 작성하고..
  • 현업에서는 생각보다 그런 문화를 지향하는 분이 (회사에 따라) 드물다.
  • 그게 나쁜 것인가? 그건 아니다. 지향점의 차이라는 것을 알았다.
  • 좋은 개발자란 무엇인가 ?
  • 우선은 업력(業力)이 제일 중요하다

무리를 해도 안되는건 안된다

  • 그동안은 무리를 하면 해결할 수 있는 선이었다.
  • 직업으로써의 개발자는 장기 레이스 선수이다. 그러므로 되도록 무리하지 말고 되는 데까지 해야한다.
  • 안되는 일정은 조율해야한다.
  • 업무에 100% 이상의 에너지를 쓰면 안된다.

레거시를 대하는 마음가짐

  • 레거시는 어디에나 있다.
    • 오래된 서비스 회사는 오래되어서 있고, 최신 스타트업은 빠른 Business Delivery가 필요해 기술 부채가 존재한다.
  • 오늘의 코드는 내일의 레거시가 된다.
  • 레거시를 그대로 두는 이유는 보통 이유가 있어서..
  • 레거시를 꼭 최-신-식 기술을 넣어서 다 뜯어 고치는게 꼭 정답일까
    • 레거시를 좀 더 잘 굴러갈 수 있게 포장하는게 올바른 역할일 수 도 있다.
  • 얼마 전 들은 웨비나에서 회사는 리팩토링할 시간을 주지 않는다고 들었다.
    • 리팩토링 또한 내가 의식적으로 해야하는 것이며, 리팩토링할 시간을 주지 않는다, 없다며 불만을 가질 문제가 아닌 것.
  • 그런 시간을 내는 것 또한 업무, 개발의 능력이라는 생각이 든다
  • 최우선은 리팩토링의 욕심보다 정해진 일정 준수 뒤 부가적으로 욕심내는게 맞는 것.
  • 이런 능력을 기르고 노력한 뒤, 조금 빨라진 속도로 생긴 조금의 여유를 리팩토링과 코드 개선에 투자해야하는 것 같다.

번아웃 그리고 코로나 블루

절망의 계곡 헤매기

더닝 크루거 곡선에서의 절망의 계곡

사수의 Side-Effect를 헤치고 나온 나에게 주어진 다음 일은 밥 하는 일이었다.

그런데 밥 하는건 좋은데 밭갈고 농사부터 하게 될 줄이야..?

마치 농사를 처음 짓는데, 1등급 쌀을 지어서 임금님께 바치세요 같은 느낌이었다. 하지만 팀 내 아무도 1등급 쌀을 수확하는 농사법은 모르는 상황이었다.

입사 전 소박한 Monolithic Architecture를 만들던 나는 갑자기 MSA의 시스템 설계를 하고, 개발하게 되었다. 그것도 혼자.
농사를 짓는 건 어렵지 않았다. 하지만 정답이 없는 1등급의 쌀을 지어야하는 것이 어려웠고 큰 부담이었다.

그 당시 공부를 하면 할수록, 사내 문서, 공식 문서, 구글링, 한국 공식 기술 모임, 온갖 세미나 영상, 이름 모를 오래된 Blog 등을 찾아볼수록 더 어려웠다. 말 그대로 절망의 계곡이었다.

초조한 제자리 걸음

학습에 관한 글 중 개인적으로 좋아하는 글이 있다.

의도적 수련성장에 관한 글이다.

간략하게 요약하자면 사람은 너무 쉬우면 지루하고, 너무 어려우면 불안함을 느낀다. 그 모든건 몰입을 방해하는 요소이며 제자리 걸음을 걷게 하는 요소이다. 성장하기 위해서는 몰입 영역에 들어가기 위한 의도적 수련이 필요하다는 요지이다. 너무 어려운 경우 나의 실력을 높이거나, 업무의 난이도를 낮춰서 몰입할 수 있도록 해야한다.

나는 이 기간에 많이 성장했지만 그럼에도 불구하고 많은 불안감과 초조함을 느꼈던 것 같다.

슬럼프의 극복과 지속 가능한 개발

성장하는 환경 만들기

사람은 생각보다 의지보다 환경의 영향을 많이 받는다. 모든 일은 노-오-력만으로 되지 않기도 한다. 성장하는 환경 또한 마찬가지이다.

얼마전에 본 토크 콘서트에서도 비슷한 이야기가 나왔다. 창의적인 인재란 "얼마나 창의적인 생각을 해낼 수 있냐"보다 "얼마나 창의적인 상황에 자신을 던질 수 있는지"가 중요하다고 말이다.

이 내용을 성장에 빗대어 본다면, 나는 얼마나 성장할 수 있는 환경에 나를 던질 수 있는지 생각해보게 된다.

그동안은 현재 팀이 의식적으로 성장하는 환경이 아니라는 생각에 외부로 눈을 돌렸다. 주로 인프런 등의 강의를 들었고 Next Step의 TDD 수업도 들었다. 특히 여기서 슬럼프 극복에 도움이 된 것은 Next Step의 TDD 수업이었다.

  • 우선 개발이 다시 쉽고 재밌었으며
  • 열정 넘치는 사람들에게 둘러 쌓인 환경이었고
  • 끌어주는 멘토(자바지기님)와 리뷰어가 있었다.
  • 그리고 코드 리뷰를 배웠다.

그리고 지금은 내부로 시선을 돌려 팀을 성장하는 환경을 만들기 위해 소소하게 나마 내가 할 수 있는 선에서 행동하고 있다.

그동안

  • 업무의 특성
  • Top-Down 으로 급하게 내려오는 일정
  • 개별 프로젝트로 각자 파편화된 업무

등의 이유로 팀 내 코드리뷰가 거의 이루어지지 않았는데, TDD 수업에서 배운 것을 기반으로 소소하게 팀 내 코드리뷰를 시작했다.
작은 시도지만 다른 분들도 코드리뷰를 조금씩 하기 시작하는 등의 변화가 일어나는 것이 눈에 보인다.

그리고 개인적으로는, 랜선 모각코를 들어갔다.
업무에 집중하기 위해 사이드 프로젝트나 IT 동아리 활동을 하기 보다는 회사일과 관련된 공부를 꾸준히 하고 싶었다. 기존에는 오프라인으로 친구들과 만나 공부했지만 코로나로 인해 이전과 같이 할 수 없어 랜선에서의 모임을 찾아봤다. 열심히 공부하는 사람들 사이에 나를 던져 놓아 성장하는 환경을 만들었다.

나의 보상 체계는 성취감

지속 가능한 개발, 지속 가능한 공부를 위해서는 자기 자신과의 약속을 지키고 스스로에게 보상을 확실히 주어야한다. 그런 의미에서 일일커밋을 다시 시작했다.

일일커밋에 대해 부정적으로 또는 긍정적으로 보는 상반된 의견이 있는 것으로 알지만 내 일일커밋은 개인적인 동기부여이다. 초록색을 채우는게 마치 RPG 게임의 경험치 바를 채우는 느낌이 들고 눈에 보이는 지표이기 때문이다.

억지로 커밋을 하지는 않을 것이다. 가급적 하루에 간단한 코드 한줄이라도 짜보자 는 느낌으로 가볍게 시작해보려고 한다.

그동안의 성장에 대한 갈증과 생각들

  • 너무 많은 걸 다 잘하고 싶어 마구잡이로 교육을 들었다.
    • 소화하지 못한 배움은 결국 체한다. (마음만 초조해짐)
    • 모든 걸 다 잘할 순 없다. 선택과 집중이 필요하다
    • 모르는 걸 잘 인정하는 것 또한 좋은 개발자가 아닐까.
  • 깊게 꼭꼭 씹어 소화시킬 것인지 빠르게 훑고 지나갈 것인지 정답은 없지만, 전자로만 살아왔으니 빠르게 훑는 연습을 해야겠다.
  • 나는 입사 전의 나보다 개발자로 성장했는가 ? -> YES
  • 나는 입사전의 나보다 의식적으로 개발자로 성장했는가 ? -> 모르겠다
  • 일을 하지 않는게 아닌이상 성장하는 건 너무 당연하다. 거의 제로베이스이기 때문에.
  • 하지만 여러 슬럼프와 번아웃으로 인해 나는 내가 생각한 것보다 의식적으로 성장하지 못했다.
  • 하지만 개발 외적으로 겪은 이런 혼란스러운 감정들은 사회초년생들이라면 으레 맞닥드릴만한 상황들이 아니었을까.
  • 나는 조금 헤맸고, 그만큼 성장했다. 지금의 깨달음은 앞으로 사회생활, 개발자로의 생활에 도움이 될 것이라 생각한다.
  • 아직은 정확히 무엇을 개발하고 싶은지, 하고 싶은지 모르겠지만, 주어진 것에 최선을 다하며, 최선을 다해 한눈을 팔다보면 무엇이든 생길 것이라 믿는다.

올해의 목표

  • 의식적으로 성장하기
  • 적극적으로 기록하기
    • 취업 후 바쁘기도 하고 글쓰기의 생산성이 떨어진다는 생각에 기술 블로그를 중단했었다. 올해는 부담 없이 간단히 기록에만 집중하기 위해 Git Blog에서 Velog로 옮겼다.
    • 간단한 글을 자주 쓰자. 생산성과 글의 퀄리티 사이의 간극은 차차 메워가자.
  • 건강하기
    • 취업을 하고 무리를 하면서 체력이 달린다는 느낌을 많이 받았다. 영양제와 운동을 꼭 챙기자.

그리고 마지막으로,

  • 현재의 리듬을 즐길 것.
  • 적정한 나 자신이 될 것.

잘 지내보자 2022 !

profile
간단히 기록하는 블로그

9개의 댓글

comment-user-thumbnail
2022년 1월 4일

당연하지 않은 것들이 당연하게 자리 잡혀있어서 고통 받으신 모습이 담겨 있군요..

1개의 답글
comment-user-thumbnail
2022년 1월 5일

고생하셨어용. 전기밥솥같은 2022년 되세요♡

1개의 답글
comment-user-thumbnail
2022년 1월 5일

개발자는 장기 레이스 선수라는 말에 공감이 되네욥 ..... 😮

1개의 답글
comment-user-thumbnail
2022년 1월 5일

100%를 몰두하는것을 하셨다는것에대해 제 신입시절이 생각나서 너무 공감이되었어요. 사람은 한계가있는데 스스로 어떻게든 해내야지 생각으로 하고있더라구요. 고생많이 하셨네요..

1개의 답글
comment-user-thumbnail
2022년 1월 12일

어떻게 보면 성공담 보다는 실패담에 가까운데 많은 분들이 봐주셔서 부담스럽기도 하고 감사합니다. 🙇
2021보다 좀 더 성장하는 모습을 블로그에 계속 기록해나가려고 합니다.
비슷한 상황에 처한 분들도 같이 슬럼프 극복해 나갔으면 좋겠습니다 🙏

답글 달기