회고

2021년 회고(이달의 앱, 졸업, 취준)

snowe 2022. 1. 31. 23:51

들어가며

이번 2021년도 역시나 코로나와 함께였다. 내 첫 회고가 2020년인데 지금이 네번째 회고임에도 아직도 코로나와 함께라니.. 올해는 꼭 종식되었으면 좋겠다.

올해는 힘든 순간도 많았지만 이전의 힘든 순간들을 보상받은 날들도 많았던 것 같다. 그게 더 힘을 낼 수 있는 원동력이 되어주었고 그렇게 2021년에도 나름의 성과와 함께 행복한 연말을 보낼 수 있었다.

글의 제목에 써 놓았듯 이번 회고의 키워드는 크게 3가지이다.

이달의 앱, 졸업, 취준

Cherish가 가져다 준 선물, 이달의 앱

꽤 오래된 일이긴 한데, 2021년 9월 15일.. 무려 Apple 가을 이벤트가 열리고 있는 순간에 Cherish 단톡방이 울렸다.

아직도 생생해

처음엔 좀 안믿겼다. 왜 올라간거지? 싶었고.. 그치만! 우리가 그만큼 열심히 했고 나는 정말 애정을 가지고 있었던 서비스였기에 뿌듯함과 자랑스러움이 몰려왔다.

그렇게 시작을 한 Cherish는..

Cherish, 최고의 플레이


장난아니게 됐다.
(오늘의 앱은 심지어 두번 올라옴)

처음에 우리가 앱을 출시하기로 했던 이유는 3주라는 기간동안 팀원간의 화합이 너무 좋았고, 모두 서비스를 개발하는 기간과 서비스에 대한 애정이 비례하여 늘어났기때문이다. 그래서 Cherish의 끝맺음을 앱 출시로 결정했었다.
근데 위와 같은 놀라운 일들이 연속적으로 일어났고, 이로 인해 나는 사람들이 광고를 왜 맡기는지 알게 되었다.

01.30일 현재 다운로드 수


잔잔하다가 갑자기 송곳처럼 튀어오르는 부분이 앱스토어에 배너가 걸린 날이다.
앱스토어 덕분에 많은 사용자가 유입되었고 덕분에 아직까지도 MAU가 평균 250정도를 유지하고 있다.

이렇게 사랑해주시는데 가만히 있을 수 없지..

바로 회의를 했고 어떤 점을 개선해야하고 어떤 기능을 추가할지 논의하였다.
기존 앱에 남아있던 잔버그를 개선하였고 유저들이 보내준 피드백들을 취합하여 현재 팀 상황에서 빠르게 적용 가능한 기능들을 우선적으로 반영하였다.

이 유지보수 과정 속에서 나는 정말 값진 경험을 하였다.

  • 현 아키텍쳐의 문제점
  • 우리가 해왔던 git flow의 문제점
  • 그때의 나를 욕하고 있는 지금의 나

이 세가지로 요약할 수 있을 것 같다.

현 아키텍쳐의 문제점

우리는 MVC로 개발해왔다. 이유를 묻는다면 Cherish는 내 첫 iOS 프로젝트였고, 아직 아키텍쳐를 깊게 공부할 수 있는 수준이 되지 못했었다. 앱이 잘 돌아가도록 완성하는 것이 가장 큰 목표였기에 MVC를 택해서 개발하였다. 그리고 무엇보다 다른 아키텍쳐의 필요성을 느끼고있지 못했다.

하지만 유지보수를 하면서 정말 Massive View Controller라는 말을 직접적으로 깨닫게 되었다. 버그가 발생했을 때 내가 예전에 쓴 코드는 정말 잘 기억이 나지 않았다. 그렇다고 테스트를 할 수도 없었다. UI와 비즈니스 로직이 너무 엮여있었기 때문에..

그래도 난 오히려 좋았다. 공부의 필요성을 느끼고 공부를 시작하는 것과 그냥 공부하는 것은 분명히 다르기 때문이다. 요즘 올라오는 글을 보면 알겠지만 지금은 RIBs를 공부중이다.

MVC를 하다가 새로운 아키텍쳐를 공부하니까 괜히 뭔가 더 대단해진 것 같고 그렇다..ㅋㅋ Cherish도 연습삼아 바꿔보아도 재미있을듯!

Git Flow의 문제점

나름 커밋 컨벤션도 만들고 했지만 어느정도 시간이 지나고 git에 대한 공부가 이루어진 뒤 보니 그때의 협업 방법이 최선이 아니라는 것을 알게 되었다. PR을 그저 merge의 수단으로만 사용했고 심지어는 PR없이 merge만 했을 때도 많았다. merge도 squash, rebase는 커녕 그냥 merge만 했었다ㅎㅎ

시간이 지나면서 더 효율적인 협업 방법을 알게 되었고 조금은 늦었을 수 있지만 ISSUE와 PR의 코드리뷰를 적극 활용하려 노력했다. 앱잼때처럼 Cherish에 몰두할 수 없다보니 코드리뷰가 생각처럼 활발히 되지는 못해서 조금 아쉽기는 하지만 그래도 꾸준히 노력중이다.

merge에도 rebase와 squash에 대해 공부할 수 있었고 stash 라는 아주 좋은 녀석도 알게되었다.
Git은 알면 알수록 재밌는 것 같다. 아직 모르는 것들이 많지만 점점 알아가는 것이 재미있다.

그때의 나를 욕하고 있는 지금의 나

진짜 왜 코드를 저렇게 짰나 싶다. 근데 이건 어쩔 수 없는게 내가 계속 공부를 하고 있는 동안에는 어제 짠 코드가 오늘 보면 맘에 안든다.
같은 맥락에서 내가 짠 모든 코드를 갈아엎고 싶었다. 그때는 storyboard가 편했지만 지금은 code-base가 편해졌다. 이와 비슷하게 면접 준비를 하면서 여러가지를 알고나니 코드 스타일이 정말 많이 변해있었다.

모든 코드를 갈아 엎지는 못했지만 그래도 1/3 정도를 리팩토링 하였다. 나름 Composition도 활용하고 코드 효율성도 신경 쓰면서..했는데 지금보면 또 마음에 안들겠지?

무튼 리팩토링과 더불어 firebase 애널리틱스, fastlane 등을 적용해서 프로젝트의 방향성도 잡아보고, 귀찮은 과정을 개선하기도 했다.

Cherish라는 서비스를 통해 정말 많이 성장했던 것 같다.
그냥 공부하는 것 만으로는 느낄 수 없는 경험도 했고, 앱 개발자로서 얻은 인사이트가 상당하다.
이제 회사다니니까 시간은 좀 부족해지더라도 꾸준히..틈틈히 개선해서 서버 비용이 의미없어지는 그 날까지.. 노력해야지


졸업, 취준

2021년을 끝으로 학교의 졸업요건을 모두 갖췄다. 학점도 잘 채웠고, 졸업 작품도 복전 졸업논문도 잘 통과됐고..! 그리고 취뽀도 했다.

4학년 1학기 부터 인턴을 넣었고 코테, 면접을 보면서 꾸준히 공부했다. 떨어질 때 마다 낙담보다는 기록을 했고 부족한 부분을 다시 공부하려 노력했던 것 같다. 다른 사람들과 비교했을 때 정말 많이 넣은건 아니지만 그래도 1학기 때 6곳 2학기 때 14 곳 정도를 넣었다.

실제로 받은 질문들과 그 질문에서 나올 수 있는 꼬리질문들을 나름대로 정리했었다


취준하면서 그래도 제일 힘들었던 순간을 꼽자면 코테 떨어질 때, 면접에서 꼬이기 시작할 때 인 것 같다.

코테부터 이야기 하자면 나는 그닥 알고리즘적인 사고가 뛰어난 건 아닌 것 같았다. 처음엔 정말 기대조차 못할정도의 결과로 떨어졌다. 1학기때는 모든 코테에서 거의 한, 두문제 밖에 못 풀었으니까..?

그래도 계속 꾸준히 하니까 늘긴 하더라, 2학기때는 떨어지더라도 커트에 근접하게 떨어졌고, 하다보니 IT 대기업 코테에 붙을 정도의 실력이 됐다.
역시 알고리즘은 묵묵히 꾸준히 해야하는 것인가..

채용 프로세스에는 과제 전형이 있는 곳도 있었는데, 내가 짜는 코드에 대해 명확히 파악하고 있었던 것이 코드 리뷰를 하면서 큰 도움이 되었다. 내 코드의 장점, 이렇게 짠 이유에 대해 충분히 설명이 가능했고 단점에 대해서도 받아들일 수 있었다.

iOS로 취준을 했던 나는 iOS 면접 질문을 아카이빙 해 놓은 레포를 바탕으로 혼자 하나씩 꾸준히 공부하였다.

GitHub - snowedev/I-am-interviewee: 👨‍🏫 iOS 기술 면접을 준비하는 레포

👨‍🏫 iOS 기술 면접을 준비하는 레포. Contribute to snowedev/I-am-interviewee development by creating an account on GitHub.

github.com

원래는 여기 있는 질문들을 다 채우고 public으로 돌리려했으나.. 공부할수록 공부할 것들이 많아지다보니 이러다간 영원히 private일 것 같아.. 일단 돌려놓고 천천히 추가하려한다.

무튼 코테를 떨어지며 다른 진로를 고민해보기도 하고, 가까스로 간 면접에서 멘탈이 부서져도 보고, 어쩔때는 칭찬도 들으면서 자신감도 얻었었다. 나는 그렇게 취준을 마무리했다.

요즘은 새로운 스택을 공부하느라 바쁘다. RIBs, ReactorKit, Rx, Tuist, FlexLayout 등등.. 지금까지 공부한 것들이 아닌 새롭게 익혀 실무에 적용해야하는 것이 부담으로 다가올때도 있지만 그만큼 내가 성장할 수 있는 포인트가 많아지는 것 같아서 기대되기도 한다. 그래도 다행히 새로운걸 배우는 게 아직 재미있다 :)

지금 이렇게 쓰다보니 생략된 부분이 많은 것 같긴하지만 내가 취준을 하며 몸소 느낀 취준을 앞둔 누군가에게 해줄 수 있는 말은 명확하다.

  • 기업마다 인재를 보는 시각은 다르다. 면접이라는 단편적인 절차로 내가 지금까지 해 온 공부를 전부 증명하기란 어려우니 떨어졌다고 너무 자신을 한없이 깎아내리지 않았으면 좋겠다. 소리 한번 지르고 털어버리자. 세상은 넓고 좋은 기업은 생각보다 많다.
  • 망친 면접을 잊으려고 하기 보다는 그 면접을 두번이고 세번이고 복기하면서 그날의 질문을 준비해보자. 정말 내가 부족한 부분만 찝어내는 몇 없는 면접관이다.
  • 너무 조급해 하지 않았으면 좋겠다. 나도 정말 조급한 순간이 많았지만, 조급함 때문에 오히려 아무것도 못하는 상황이 생기더라.. 약간의 여유를 갖기 위해 노력하는건 좋은 것 같다.



2021년 한 해도 이렇게 지나갔다.
2022년에는 개발자로서 더 성장하고, 돈도 잘 모으고, 코로나 좀 끝나서 맘 편히 놀고, 주변 사람도 잘 챙기는 한 해가 되었으면 좋겠다.