2022 상반기 회고
벌써 1년의 반이 지나갔다. 원래는 연말마다 1년 회고를 쓰려고 했는데, 요즘 주간 회고를 하고 있고 회고의 중요성을 많이 깨닫고 있어서, 늦게나마 상반기 회고를 작성하게 되었다.
앱 용량, 빌드 속도 줄임
한 프로젝트를 4년 넘게 보니깐 해결해야 하는 숙제들이 많이 쌓여갔었다. 프로젝트가 운영한지 오래되기도 했고, 앞으로도 더 많은 개발자들이 함께할 예정이었기에, 가장 빠르게 해결할 수 있는 것을 했다. 바로 레거시 코드 정리하는 것.
미사용하는 코드, 파일, asset 같은 것들을 추적해서 하나씩 지워가면서 정리를 했는데, 작업하는 시간만 계산하면 2일 정도 걸린 것 같다. 지우고 나서 프로젝트 빌드 및 실행해서 앱 크래시가 발생하지 않는지 체크를 했어야 했다. 생각보다 미사용하는 코드들도 있었고, 언젠가 다시 원복하게 되지 않았을까 하고 남겨둔 파일이나 코드들이 있었다. 그나마 프로젝트를 오래 본 사람이 나여서 쓰이고 있는 코드인지 아닌지 알 수가 있어서, 큰 불안감 없이 작업을 진행했다. 그리고 나서의 결과는 생각보다 좋았다.
앱 파일 크기가 130.3MB에서 76.7MB으로 줄이고, 프로젝트 빌드 시간을 약 80초 줄이고, Fastlane 기준으로 빌드 및 배포하는 시간이 20분에서 7-8분으로 줄어들었다. 레거시 코드만 정리한걸로 생각보다 좋은 결과를 받아서 뿌듯했다. 단순하게 파일 정리만해도 이 정도의 결과를 받아서, 조금 더 개선할 수 있는 것을 해보고 정리하여 회사 기술 블로그에 글 쓰려고 계획하고 있다.
약 10주 동안의 야근
같이 협업하는 개발자가 나가게 되면서, 나와 주니어 개발자는 그분이 작업한 내용을 대응하고 코드 다시 정리하느라 야근을 오래 했다. 정말 오랜만에 아주 길게 야근을 한 것 같다. 이 기간 동안에는 택시 타면서 퇴근했는데, 어쩌다 한번 지하철 타고 퇴근하면 되게 어색했었다. 어쩔 수 없는 상황이기에 불만이나 불평을 크게 내지 않고 일을 진행했는데, 혹시나 주니어 개발자는 이 상황이 불편하거나 싫어할까 봐 걱정이 앞섰다. 다행히 어른스럽게 생각을 했고, 하나의 경험이다 하고 좋게 생각해 줘서 조금 고마웠다. 앞으로는 직접적으로 주니어 개발자를 지도하면서 개발은 못 하지만, 더 성장할 거라는 확신이 이때 들었다.
아무래도 오래 야근하게 되면 몸이 지치고 마음도 지치게 되는 것 같다. 회사도 오래 다녔는데, 리프레쉬 휴가 같은게 없어서 쉬고 싶은 시기에, 갑자기 야근으로 인해 힘들어지니깐 더 쉬고 싶었던 마음이 커졌다. 휴직을 너무나 하고 싶었고, 그냥 아무 생각 없이 쉬고 싶었다. 지금은 좀 힘든 시기를 지나가서 괜찮지만, 그래도 여전히 길게 쉬고 싶은 마음은 남아 있다.
코드 리뷰 활성화
꽤 몇 개월 동안 회사의 불만점에 소스코드 관리 서비스가 너무 안 좋다고 작성했다. 우선 PR를 작성하는 게 다른 소스코드 관리 서비스에 비해 기능이 너무 없고, 코드 리뷰할 때 코멘트를 달거나 병합을 하지 않게 하는 등 기능이 너무 없거나 불편해서 불만이 많았다. 이 불만이 결국 윗사람(?)까지 가게 되어서 이야기를 하고, 시범적으로 다른 소스코드 관리 서비스 사용할 수 있게 해주셨다. 지금도 너무 감사하게 생각하고 있다.
그러면서 평소에 해보고 싶었던 코드 리뷰 관련 규칙이나 방법을 도입하는 시도를 했다. 가장 먼저 도입한 것은 짧은 PR를 올리는 것이다. 코드 리뷰하는 시간이 너무 길면 집중이 떨어질 수 있고, 시간도 많이 소요될 수 있다. 그래서 기능 단위, 이슈 단위로 짧은 PR 올리도록 규칙을 정하고 같이 협업하는 개발자랑 같이 진행하도록 했다. 처음에는 기능을 더 쪼개서 짧은 단위의 PR를 올릴 수 있을까 걱정했는데, 조금씩 노력하다 보니깐 너무 길지 않는 PR들이 많이 나오기 시작했다.
그 다음에는 코드 리뷰하는 시간을 업무 시간에 확보하는 것이다. 출근해서 30분, 오후에 30분 이렇게 특정 시간에 코드 리뷰하는 시간을 가지도록 했다. 온라인으로 올라온 PR를 코드 리뷰하는 건데, 이렇게 확보된 코드 리뷰하는 시간이 있으니깐, 그 시간 전까지 PR을 올리도록 작업하거나 내 PR이 코드 리뷰하고 병합하는데 오래 안 걸리겠다는 안도감이 생겼다. 앞서 얘기한 짧은 PR 올리는 거랑 시너지 효과가 좋아서 아주 빠르게 코드 리뷰를 하고 병합해서 다음 작업 진행할 수 있게 되었다.
그 다음에는 CI/CD를 이용해서 코드 컨벤션을 체크하거나 테스트를 돌리게 하는 것이고, 그 외에도 좋은 코드 리뷰하는 프로세스가 있으면 조금씩 도입하려고 한다.
하반기 계획
프로젝트에 기여할 수 있는 여러 가지 방법들을 찾아보고 하나씩 실천하려고 한다. 나에게 주어진 업무 외에도 알아서 할 수 있는 것들 중에 골라서 업무를 하고 있기 때문에 무엇을 더 해야 하는지 고민할 필요가 없다. 파트장님도 내가 스스로 업무를 가져가거나 업무를 하는 것을 알고 있어서 굳이 신경을 쓰고 있지 않는 것 같다. 다만, 현재 회사가 많은 변화를 겪고 있어서, 거기에 따라 내 역할(?)도 사라진 것도 있어, 이 부분에 대해서 가이드를 해달라고 요청했다. 파트장님도 새로운 변화에 맞춰서 어떻게 파트를 운영할지 고민이어서, 특별히 다른 업무를 줄 때까지 기다릴 예정이다.
틈틈이 SwiftUI랑 Combine, Async/Await를 공부할 예정이다. 사실 스위프트 문법을 다시 복습하는 시간을 가지는 게 우선인데, 상반기에는 너무나 많은 힘든 일이 생겨서 내 몸이랑 마음 회복하는 시간을 더 투자했다. 회복하는 시간을 가져야 다시 뛸 수 있기 때문이다. 틈틈이 운동을 하면서 체력을 기르면서 우울감을 씻는 효과를 보고 있고, 사소하게 행복감을 느끼는 것들을 기록하려고 노력하고 있다. 이제 조금 회복된 것 같아서 멈췄던 블로그 글 쓰는 것도 다시 시작하려고 한다.
상반기에는 개인적으로 많은 힘든 일이 생기면서 다시 생각해보면 그 사이에도 행복했던 순간들이 있었던 것 같다. 하반기에는 힘든 일이 없을 순 없겠지만, 그 사이에 소소한 행복들도 느낄 수 있는 시간들이 있었으면 좋겠다.