곧 다가올 2022년을 준비하며 2021년 회고를 해보려고 한다. 2021년은 많은 걸 배웠고, 경험했고, 실천했던 한 해가 아니었나 생각된다. 2022년이 2021년보다 한 걸음 더 나아갈 수 있는 한 해가 됐으면 하는 바람으로 회고를 작성해 본다.
2021년에는 유난히 새로운 개발자분들을 많이 만난/알게 된 해였던 것 같다. 회사가 성장하면서 많은 개발자분들께서 입사했다. 개발자의 세계로 처음 입문한 신입부터 1~2년 차 주니어, 10년 차 이상의 시니어 등 다양한 경력자들과 함께 일할 수 있었다.
그러면서 자연스럽게 나의 코드를 리뷰 받는 일보다 내가 다른 사람의 코드를 리뷰해 주는 상황이 더 많아지게 되었다. 내가 하던 업무를 이어받게 된 분이나 새로 입사하신 주니어 개발자분의 코드를 리뷰해 주게 됐다. 종종 나의 업무보다 다른 개발자분의 코드 리뷰해 주는 것이 더 중요한 업무가 되기도 했다. (더 좋은 아키텍처를 함께 고민했다)
내가 다른 개발자분들의 PR에 대해 코드 리뷰 해준다는 것은 올려주신 코드에 대해 내가 최소한 읽고 이해할 수 있는 수준이어야 한다. 그런데 그 코드가 읽어지지 않는다면? 어렵게 느껴진다면? 그것은 올라온 코드의 문제일까 나의 문제일까?
돌아보면 이런 생각을 가장 많이 했던 한 해가 아니었나 생각된다. 물론 전자도 있었겠지만 후자의 상황도 있었을 것이다.
다른 개발자분들이 올려주시는 코드에 대해 깔끔하거나 더 간단하고 아름다운 코드로 작성할 수 있어 보였다. 하지만 그것은 ㅇㅇ한 이유로 ㅇㅇ하게 작성해야 합니다!
라고 명확하게 코멘트를 작성할 수 없는 경우가 많았다. 그러면서 나의 지식이 부족하여 더 좋은 구조를 알려주지 못하는 것이 어느 순간 나를 리뷰어로 걸어서 PR을 올려준 개발자분에게 미안해지기 시작했다.
누군가의 코드를 읽고 조언을 해주려면 최소한 나는 그보다 한 걸음이라도 더 많이 알고 있어야 한다. 어떻게 해야 할까? 우선 공부를 하기로 했다. 그렇게 전공서적을 사 모으기(?) 시작했다.
우선 책장에 꽂혀있거나 내 책상에 쌓여여서 눈에 보이는 책만 나열해 봤다. (실제로는 더 있을 것이다.) 물론 위 나열된 책을 끝까지 모두 읽은 것은 아니다. 말 그대로 사 모으기만 한 것도 있고, 앞부분만 읽다가 덮은 책도 여럿 있다.
그리고 추상화에 대한 개념이 부족하다고 생각되어서 어떻게 공부할까 고민하다가 마침 회사에서도 개발 언어가 바뀌면서 spring에 대한 학습이 필요해졌다. 추상화 공부도 하고 회사의 일도 해야 하기에 모 강의 사이트에서 java + spring 강의를 결제했다.
온라인 강의는 지금은 수강 중인 단계로 아직 이렇다 저렇다 할 수준은 아니지만.. 객체 지향 설계의 필요성에 대해 조금 더 이해해 가고 있다고 생각한다. 앞으로도 누군가의 코드를 리뷰할 일이 많겠지만 리뷰 한 번을 하더라도 언제나 그 사람의 성장에 도움이 되는 코멘트 한 줄을 달고 싶다.
재직 중인 회사에 CTO님께서 해주신 말이다.
언제든 떠날 수 있는 사람이 되어라. 언제든 대체될 수 있는 사람이 되어라.
당장 내가 회사에서 잘려도 회사에 문제가 없이 하라는 건가?
그렇지 않다. 이 말의 의미는 내가 하고 있는 업무를 꼭 내가 아닌 다른 모두가 할 수 있도록 하라는 것이다. 내 업무를 모든 사람이 할 수 있다면 그 업무는 나만의 업무가 아니다. 언제든지 다른 업무를 하고 싶다면 (혹은 다른 팀/사업부로 이동하고 싶다면) 인수/인계 기간을 최소화로 하고 이동할 수 있다.
예를 들어 이번에 ㅇㅇㅇ관련업무를 해보고 싶은 사람 있나요?
했을 때 원한다면 주저 없이 손들 수 있다. 내 업무의 인수인계가 필요하다면? 선뜻 손들지 못하게 될 확률이 높다.
나만 이 업무를 처리할 수 있다면 나는 그 회사에서 퇴사하는 그날까지 그 업무만을 해야 할 것이다.
그리고 실제로 그 업무는 ㅇㅇㅇ님만 처리할 수 있어!
에 대해 좋은 평가를 받는다는 보장도 없다. (나의 경험상 대부분은 좋지 못한 평가였다) 게다가 내가 하고 있는 업무가 나에게 재미없는 업무라면.. 재미없는 업무만 하다가 퇴사할 수도 있다.
올해 2021년에는 이 말을 마음속에 새겨 나의 업무를 최대한 많은 공유를 했던 한 해가 아닐까 생각된다. 누군가 시키지 않아도 새로운 기능이 추가되거나 새로운 시스템을 개발하면 동작 방식이나 api 사용방법에 대한 문서를 작성하였고, 개발직 군 전체에게는 아니더라도 같은 팀 내에서는 최대한 공유하려고 노력했다.
그 결과 내가 하고 있는 업무 내용의 대부분을 모두가 알고 있게 되었고 (물론 직접 담당해서 개발하는 나만큼은 아니겠지만!) 어떠한 문제에 대해 CS가 들어오더라도 처리는 내가 하더라도 다른 사람들도 어떤 원인으로 문제가 발생했는지 정도는 가늠할 수 있게 되었다.
이러한 일들의 결과였는지 최근 팀 이동을 하게 되었고, 입사 이후 2년 넘게 계속 해오던 업무가 이제는 새로운 업무로 바뀌게 되었다! 그리고 이동을 하면서 인수/인계 기간을 별도로 두지 않고도 무리 없이 바로 이동할 수 있었다.
2021년은 스터디를 거의 하지 못했다. 여기서 스터디라 함은 스터디 모임을 의미한다. 2019~2020년에는 여러 가지 스터디 모임도 참여하고 모각코 (모여서 각자 코딩
의 줄임말로 모여서 공부하는 분위기를 만드는 것에 의미가 있다)도 참여했었다.
하지만 2021년에는 코로나의 여파로 인해 모임이 어려워졌다.
내년에 코로나가 조금 더 조용해지고 상황이 좋아진다면 최근 눈여겨보고 있는 JavaScript Deep Dive 혹은 코어 자바스크립트 책 으로 스터디 모임을 진행해 봐도 좋을 것 같다. 만약 상황이 좋아지지 않는다고 하더라도 온라인 진행도 고려해 보고 있다. JavaScript를 좀 더 깊게 공부해서 책까지는 아니더라도 랭기지를 설명하는 문서 느낌으로 사이트를 하나 만들어도 재밌을 것 같다.