2022년 회고록
2022년을 보내고 쓰는 회고 올해 있었는지, 어떤 목표를 이뤘는지 내년에는 무슨 목표를 가질지를
적어놓을 필요를 느껴 회고를 적는다
1월
작년 8월 휙고라는 킥보드 공유 서비스를 운영하는 회사에 입사하여 회사 내부의 iOS 프로젝트를 동시에 진행하며 꾸준한 리팩토링을 통해 iOS 앱의 퀄리티를 향상 시키는 과정을 진행하였고 회사 내부의 DevOps 개발자와 CI / CD 관련하여 꾸준한 리서치와 공부를 통한 iOS CI / CD 환경을 구축하기 위해 노력했다.
2월
iOS CI / CD 환경을 구축한 뒤 실질적으로 iOS 프로젝트에서 원활한 CI / CD를 구축하기 위해 물리 Mac이 필요하다는 것을 인지하여 githubAction을 이용한 가상머신에서 CI / CD를 구축하는 것으로 임시 종료를 진행하고 꾸준히 iOS 프로젝트를 관리하였다 이 시점쯤 혼자서 iOS 프로젝트를 관리하는 것이 무리가 된다고 생각이 되지 않았지만 좀 더 좋은 코드 좀 더 좋은 프로젝트로 만들고 싶은 마음에 혼자 여러 가지를 노력해봤지만, 같이 대화하고 토론하고 의논할 iOS 개발자가 회사 내에 없고, 이런 질문을 받아줄 시니어 개발자도 없어 성장이 지체된다는 느낌을 받아 이직을 준비하기로 결심하게 되었고, 이직을 준비하였다.
3월
클라이메이트 1년, 휙고에서의 반년을 기반으로 이직을 준비하였지만, 실질적으로 경력직으로 쓰기에 부담이 있기에 선택의 갈림길에 서 있었다. 경력직으로 준비해서 열심히 포트폴리오와 과제를 준비할지, 아니면 오로지 코딩테스트에 몰두하여 중고 신입으로 신입 공채를 지원할지 이 두 가지에 갈림길에 서 있었는데 코딩테스트의 공부를 진행해보고 그렇게 크게 흥미를 느끼지 못해(공부하면 할수록 암기한다는 느낌이 강했다) 중고 신입의 길을 포기하고 짧은 경력을 가지고 경력직 이직을 노리게 되었다. 꾸준히 관리해오던 포트폴리오가 있어 포트폴리오를 구성하는 것은 큰 무리가 없었지만 가지고 있는 공부의 디테일이 아주 부족하다고 느껴 계속 회사에 지원하면서 부족한 공부의 디테일을 보완하는 시기였다.
4월
계속 이력서를 넣으면서 가끔 오는 개발과제들을 진행하면서 바쁘게 한 달을 보냈다. 이 시기에 여러 개발과제를 하고 개발자 인생을 살면서 처음으로 iOS 개발자에게 내 코드의 리뷰를 받고 평가받는다는 사실이 몹시 흥분되었고 몹시 떨리는 과정이었다. 이 과정에서 내 과제에 대한 피드백을 주신 정말 고마운 회사들이 몇몇 있는데 이 회사들에서 주신 피드백을 기반으로 정말 실력이 많이 늘었다는 생각이 든다. 혼자서 공부하다 보니 내가 전혀 생각하지 못하고 잘못된 방향으로 공부하고 있던 것들을 바로 잡을 수 있는 좋은 개발과제들이었다. 그리고 이 시기에 면접을 보았는데 제대로 된 iOS 개발자와의 면접은 이번이 거의 사실상 처음이었는데 정말 생각보다 떨리고 생각보다 어떤 질문들이 나왔는지에 대한 대처들이 잘 되어있지 않아 처음에는 좋은 결과의 면접은 보지 못했고 처음의 면접 탈락의 피드백으로 인한 추후의 면접들은 정말 떨렸지만 내가 원했던 대답들은 할 수 있었던 것 같다.
5월
이 시기쯤 내가 목표로 했던 것들을 모두 가지고 있는 회사로부터 최종오퍼를 받게 되었고 이직을 성공하게 되었다 이직하게 된 회사는 iOS 개발자가 총 7명 앱 개발팀은 총 15명으로 이루어진 내가 원하는 회사에 모두 충족한 회사였다 (대규모 서비스, iOS 개발자 팀원, 높은 인지도의 서비스) 그래서 정말 기쁜 마음으로 이직을 진행하게 되었고 기존의 회사에서는 고마웠다는 말과 함께 이직 준비의 기간 동안 받았던 스트레스를 모두 풀고 새로운 회사에 가자, 라고 생각을 하게 되었고 정말 편안한 마음으로 운동하면서 휴식했다
6월
새로운 회사에 들어와 새로운 팀원들과 처음 인사를 하고 새로운 프로젝트에 적응하는 시기였다 새로운 회사는 재택근무가 기본인데 신규 입사자는 적응의 기간을 위해 1달 정도는 출근을 진행하였는데 이때 팀원분들의 얼굴을 모두 한 번씩 뵙게 되고 워크숍도 다녀오게 되며 팀원분들과 친해지기 편했던 것 같다. 그리고 처음으로 ReactorKit을 사용하게 되어 ReactorKit을 공부하는 시기를 가졌고 (기존에 MVVM을 공부했다 보니) ReactorKit을 이해하기에는 큰 무리가 없었다, 그리고 이 시기에 직접적으로 프로젝트에 관여하기보다는 옆에서 지켜보는 과정을 거치면서 리팩토링을 진행하는 내부과제들이 많았는데 팀 내에서 가장 큰 문제점으로 보이는 것이 무엇이냐고 물어보길래 iOS 프로젝트가 피처단위로 개발을 진행하고 있는데 머지가 될 때마다 git conflict으로 너무 큰 고생을 하는 게 보이는 데, tuist를 이용해 개선하면 팀 전체적인 시간이 많이 줄어들 것으로 생각이 든다 라고 이야기해 드렸더니 이때부터 tuist는 제 담당이라고 웃으면서 이야기해주셨고 이때부터 본격적으로 tuist에 대한 연구 및 분석이 들어갔다.
7월
회사에서 적응하라고 주시는 작은 피처들을 진행하고 7월 후반기에 들어 가면서 tuist를 도입하려는 방법들을 모색하게 되었고 이 시기에 정말 많이 고민했던 것 같다. 팀원들에게 tui st에 대한 설명, tuist 도입에 대한 의견 그리고 도입이 결정되고 난 이후부터 시작된 어떤 식으로 진행 중인 프로젝트에 tuist를 자연스럽게 녹일지 그리고 어떤 버전을 타깃으로 할지 그리고 현재 우리 프로젝트가 전체적으로 어떻게 관리가 되고 있는지 등을 고민하는데 정말 많은 고민의 시간을 가졌다. 그래도 막히는 부분이나 어려운 부분들은 팀원들에게 꾸준히 질문을 하고 같이 해결해 나가면서 막힐 때마다 조금 시간이 오래 걸리더라도 결국에는 해결해나가는 정말 보람찬 과정을 느꼈다 이 시기에 “정말 같은 일을 하는 팀원이 있는 개발팀으로 왔다”라는 감정을 가장 크게 느꼈고 정말 이직하길 잘했다는 감정을 느꼈던 시기가 아닌가 싶다.
8월
현재 진행 중인 프로젝트에 tuist의 적용을 마치고 이제 어떤 식으로 QA의 과정을 거칠지 깃 래포는 어떻게 나눌 것인지 tuist 적용 전, 적용 후 그리고 현재 프로젝트에 tuist가 자연스럽게 녹아들게 하기 위해 어떤 식으로 팀원들에게 가이드를 해야 할지에 대한 고민이 정말 많았던 시기였다 이 시기에 tuist관련한 가이드 문서들을 정말 많이 작성했고 (ex 기존에 tuist 적용되기 전 버전에서 개발되던 피처들, 새롭게 모듈을 추가할 피처들 등 관련하여 가이드 문서를 작성했다) 팀장님부터 전체 팀원들에게 tuist 적용되는 과정과 어떤 식으로 앞으로의 tuist가 사용될지에 대한 발표를 진행하였고 이 시기에 코드적인 고민 보다는 전체적인 아키텍처에 대한 고민을 가장 많이 진행한 것 같다.
9월
tuist를 적용한 버전을 상용에 출시하기 위한 QA 기간을 거쳐 실제 상용에 Tuist를 사용하여 빌드한 앱을 배포하였고 성공적으로 큰 이슈 없이 적용하는 데 성공하였다. tuist를 적용하기 전의 프로젝트를 기반으로 나가 있던 피쳐들을 tuist 적용한 버전으로 변환시키는 작업을 서포트하는데 많은 시간을 사용하였고 전체적인 tuist에 대한 기본적인 가이드 문서 타 부서에서 들어오는 문의 등을 대처하는데 상당히 많은 시간을 사용하였고 tuist의 도입을 주제로 발표를 준비하는 과정을 거쳤다. 처음에는 1주일 정도 준비하면 가볍게 발표 자료를 만들 수 있을 것 같았지만 실제로 준비하다 보니 1주일은 어림도 없이 부족하였고 단 3줄의 말을 하기 위해 3시간을 고민하는 날도 많았다. 하지만 내가 작업했던 내용들을 회사 전체에 알릴 좋은 기회였기에 그 고민이 싫지 않고 오히려 행복한 기회이지 않았을까? 라는 생각을 하였다.
10월
tuist의 발표 준비를 마무리하여 회사 내 개발자가 모두 모이는 자리에서 iOS팀에 tuist를 도입하는 과정과 왜 도입하였고 도입을 통해 어떤 개선점이 이뤄졌는지 등을 알리기 위한 발표가 성공적으로 끝났고 회사 내에서 나를 조금이라도 아는 사람들이 좋은 발표였다고 칭찬을 해줘서 준비한 기간들이 아깝지 않았다는 생각이 들었다. 이렇게 회사에 와서 tuist의 도입을 완료하였고 이제 다음 과정으로 모듈화와 회사 내 피처들을 진행하는 시기에 본격적으로 들어갔다 이때 시작한 피처가 상당히 대규모고 타 부서에도 영향을 주기 때문에 설계하는 과정을 거쳐 아직 (23년 1월) 진행이 되고 마무리 단계가 들어가고 있다.
11월
회사내 진행하고 있는 피처는 1건이거고 모듈화는 부분적으로 계속 진행을 하고있었다. 그러던 와중 팀내 내부과제를 통해 그동안 사용해보고 싶었지만 사용할 수 없었던 기술을 자유롭게 개발하여 발표하는 앱개발팀 내부 발표회?를 진행하자고 제안을 주셔서 그동안 관심은 있었지만 해보지 못했던 SwiftUI를 통한 watchOS를 접해볼 수 있는 기회를 가지게 되었다 아무래도 해당 내부과제는 서브의 느낌이였기 때문에 많은 시간을 투자하지 못하였지만 작업하고 있던 피처와 모듈화 그리고 watchOS 까지 정말 많은 일들을 진행했던 11월이였던 것 같다.
12월
모듈화를 계속 진행하면서 구조적으로 문제가 있던 부분들을 내년에 개선하면 좋겠냐고 리더에게 의견을 제시하였고 해당 의견이 받아들여져 이때부터 본격적으로 모듈화에 대한 구조화를 시작하고 모듈 구조를 고안하기 시작하였다. 기존에 진행하던 피처와, 내부 과제 watch OS도 물론 동시에 진행하고 있었지만 아무래도 모듈화가 좀 더 규모가 크고 코어를 건드려야 하는 부분이다 보니 많은 시간을 모듈화에 많은 투자를 한 것 같다. 그리고 모듈화를 진행하면서 구조적인 공부를 많이 진행하게 되었고 라이브러리들 관련해서 공부를 많이 했던 시기가 됐던 것 같다. 그리고 순환 참조를 해결하기 위해 Swinject이라는 기술을 사용해 보았는데 프로젝트에서 필요한 부분들이 많이 보여 예제 프로그램을 만들고 상용 프로젝트에도 적용해보았는데 팀원들의 반응이 상당히 긍정적이어서 메인 기술 중 하나로 사용하기로 결정이 되었다.
'개발자생활' 카테고리의 다른 글
[모듈화] 프로젝트에 모듈화를 진행하면서 (0) | 2023.04.15 |
---|