글 작성자: HEROHJK

TL;DR

올 한해도 많은 아쉬움이 남는 해였습니다.
iOS 개발자로 온전한 1년을 보냈고, RxSwift의 기본적인 개념정리, MVC, MVVM, MVP 패턴 겉 핥기 등
잡탕 개발자에서 주니어 iOS개발자스러운 개발자로 변해가는 부분에서 보자면 나름 성공적인것 같기도 하지만..
제가 만족할만한 목표치를 채우지 못했습니다.
애초에 목표를 잡지 않고, 무작정 하고싶은걸 하고싶은 만큼만 하다보니 이렇게 된 것 같네요.
그래서 지금부터라도, 내년부터라도 변하기 위하여 회고를 작성합니다.

회사

올해는 정말 열심히 고도화(리팩토링?)를 한것 같습니다.
상반기에는 리뉴얼을 하면서 부분 리팩토링을,
하반기에는 CI / CD 도입을 위한 리팩토링을 진행하였습니다.

연초에는 기존의 App들을 전체적으로 리팩토링 하였는데,
첫번째는 용량축소, 두번째는 Cocoapods 제거였습니다.
용량같은 경우에는 폰트를 기본폰트로(후에 리팩토링하면서 다시 씌웠습니다 ㅠㅠ) 변경하면서 많이 줄여나갔고,
Cocoapods같은 경우 회사의 App들의 코드 규모가 그렇게 크지 않았는데, 워크스페이스구조로 되어있는게 마음에 들지 않아 Apple의 공식 패키지 툴인 Swift Package Manager로 변경하였습니다.
(firese같은 일부 앱들은 올해 하반기에서야 SPM으로 변경하였고, 결국 모든 프로젝트에서 Cocoapods을 벗겨내는데 성공 했습니다!)

연초가 지나고 3월달부터 본격적으로 리뉴얼 프로젝트가 진행되었고, 리뉴얼을 하기 앞서서 여러가지 준비를 했습니다.
RxSwift + MVVM 도입 준비와 이슈 추적 툴 도입이 바로 그것입니다.

RxSwift + MVVM은 후술할 자기계발에서 조금 더 자세하게 다루겠습니다.
이슈추적 같은 경우, 기존에 git을 순수하게 저장소로만 이용하고, 그 이상의 활용이 없었던것에 아쉬움이 많이 생겨서 이것저것 많이 알아보았습니다.
다행히도 언젠가부터 jira에서도 무료플랜을 제공하기 시작하여서, jira를 이용하기 시작했습니다.
(github을 이용했다면, 따로 jira같은것을 사용하지 않고 github 내부(github devops)에서 이용했겠지만, 저희는 Bitbucket을 사용하므로 같은 호회사 제품을 알아보았습니다 ㅎㅎ)
아직 부족함이 느껴지기도 하고 사용한지가 그렇게 오래되지 않아서 현재 회사에 공개하지는 않았고, 내년쯤에 도입 사례를 정리하여 공개 할 예정입니다.

기존의 프로젝트는 코드가 조금 어수선하여 일단 내버려두고,
리뉴얼 부분만 RxSwift와 옵저버패턴을 이용하여 MVVM구조로 진행하였습니다.
당연히 제가 작성한 코드이니 제 눈에는 한층 보기가 편해졌습니다.
성능에 대한것은 규모가 그렇게 크지 않다보니 크게 체감이 되지는 않았구요..
몇년동안 개발을 하면서 느끼는 부분이지만, 교과서처럼 정답은 없기에 항상 잘 하고있나 라는 의심이 많이 남았던 것 같습니다.
(다만 리뉴얼 외 부분에서 조금 조금씩 이슈가 보고되고 있는데, 내년에는 이 부분 해결에 포커스를 두어야 할 것 같습니다.)

하반기, 그것도 겨울에 들어서 현재까지는 CI / CD로 눈을 돌렸습니다.
MVVM 패턴을 도입한것도 사실은 최후에는 TDD개발을 실현하기 위해서 였는데요.
(기존에는 MVC패턴과 MVP 패턴을 섞어서 개발이 되어 있었는데요, MVC같은 경우에는 의존성이 제법 있어서 유닛테스트에서 애로사항이 생깁니다)
후에 유닛테스트를 도입하고, 개발을 할때마다 자동으로 검사도 받고, 배포 전에 App의 버그를 최대한 줄여나가기 위한 목적으로 CI / CD의 필요성을 느꼈습니다.
현재까지는 fastlane과 젠킨스를 섞어 두었고, 아직은 자동이 아닌 수동으로 돌리고 있습니다.
하지만 빌드 시점이 제가 개발을 하면서 빌드하는것과, 젠킨스에서 자동으로 빌드하는 것, 이렇게 두개로 나뉘어지다 보니,
버저닝과 컨플릭트 이슈때문에 프로젝트 생성 도구의 필요성 또한 느꼈습니다.
해서 현재는 프로젝트 생성 도구인 tuist를 도입하기 위해 준비하고 있습니다.
tuist를 도입하기 위해서 코드들의 정리가 추가적으로 필요함을 느꼈고, 현재까지 파일 구조를 변경하고 있습니다.

파일구조를 변경하면서 예전에 작성해두었던 swiftlint를 다시한번 점검했는데, lint를 조금 더 구체적으로 정리하고, 조이고 보니
현재 프로젝트에서 warning이 6000개가 나와서(...), 이부분도 동시에 해결중에 있습니다.
변경된 swiftlint는 제 github에도 포크해 두었습니다. (링크)

자기계발

올해는 코로나로 인해서 재택근무를 정말 많이했습니다..
그러다보니 자기계발에 상당히 소홀했던 것 같습니다.
올해에는 이부분이 정말 아쉬움이 많이 남습니다.

올해부터 MVVM의 필요성을 느끼기 시작했고, 조금 더 찾아보니 RxSwift를 이용하면 MVVM 개발이 수월해짐을 확인하고,
RxSwift 스터디만 두번 진행하고 있습니다.

첫 스터디는 4월부터 7월까지 진행을 하였는데요.
중간에 재택근무로 전환이 되어서 용두사미로 끝났습니다.
토이 프로젝트는 진행하지 않고, 함수 공부만 하다가 끝나버렸네요.
원래 프로젝트까지 진행하고 조금 부족하더라도 강의를 만들어서 유튜브에 업로드 해볼 계획이었는데,
정말 아쉽게 되었습니다.
기회가 되면 내년에라도 꼭 해보고 싶습니다.

두번째 스터디는 12월부터 진행하고 있습니다.
주제는 똑같고요.
이번 스터디는 조금 더 체계적으로, github에 공부 내용을 정리하고 있습니다.
(Notion, github)
첫 스터디때 많은 아쉬움이 남았던 만큼, 이번에는 더 열심히 진행해서 목표를 반드시 이뤄보려고 합니다.

그리고 스터디 외에도 11월부터 알고리즘을 조금씩 풀기 시작했습니다. (링크)
가끔 개발을 하다보면, 코드가 너무 지저분할때가 있는데, 그럴 때마다 알고리즘의 필요성을 느낍니다.
물론 알고리즘을 잘 아는것과 코드를 잘짜는것에는 차이가 분명 있지만, 그래도 조금이라도의 퍼포먼스 향상, 조금이라도의 간결한 코드를 위해 많이는 못해도 꾸준히 하려고 노력중입니다.
우선은 프로그래머스 사이트에서 3레벨을 적당히 푸는 수준까지 올라가는게 목표이고,
그 이후에는 백준 랭크를 조금 올려보려고 합니다.

 

올해 읽은 책들중, 자기계발 관련 책들만 조금 나열 해 보았습니다.

트렌드 코리아 2021


매년 읽어보는 책입니다.
완독하지는 않지만, 읽다보면 예전에 '앞으로는 이런 이런 기술들이 뜨지 않을까?' 라고 생각했던부분들이 들어맞는것도 재밌고 해서 꾸준하게 읽고 있습니다.

100일 글쓰기 곰사람 프로젝트


블로그 관리가 너무 미흡하여서 좀 자주 글을 쓰기위해 읽어본 책입니다.
4월쯤에 책을 읽었는데, 현재도 블로그 포스팅은 드문드문 합니다..
언제쯤 자연스럽게 열심히 블로그를 할까요 ㅠ

클린코드


그 유명한 클린코드 입니다.
너무 어려워서 한번 읽어보고 손을 놨습니다..
10독이 목표인데, 언제 진행할지는 모르겠습니다..

아래 테스트 주도 개발 책도 그렇고, 제가 조금만 더 열심히 하면 충분히 해볼만 했던 것 같은데,

참 이런부분들이 올해의 저를 아쉽게 만드네요 ㅠㅠ

테스트 주도 개발


이북이 지원되지 않아서 올해 유일하게 종이책으로 구매하였습니다.
초입부분만 읽어보고 일이 바빠져서 잊고지냈는데,
CI / CD가 완성되는 내년 하반기쯤에야 본격적으로 읽지 않을까 싶습니다.

이것이 취업을 위한 코딩 테스트다 with 파이썬


알고리즘 공부를 위해서 읽었습니다.
회사에서 일하고있는 경력직이 뭔 저런책을 읽겠냐고 생각하실수도 있는데,
그냥 다른 의미는 없고, 이북이 지원되는 책 중에서, 예스 24에서 알고리즘을 검색했을 때 맨 위에 나와서 구매 했습니다.
파이썬 코드로 설명이 되어 있어서, (부록에 있는 github에 가면 자바와 C++도 있긴 한데..)
Swift로 변환하여 푸는 재미가 있엇습니다.
취업용 코테 위주라서, 예전에 공부했던 내용들이기에 가볍게 봤었는데, 다 까먹어서 다 읽어보는데 상당히 애를 먹었습니다 ㅠ.ㅠ

함께 자라기


협업이 중시되는 요즘을 위한 책인 것 같습니다.
같이 훈련하는 방법을 알려주는 책인데요, 쉽게 말해서 애자일에 대한 접근을 간단하게 설명한 책인 것 같습니다.
회고를 작성하게 된 결정적 계기도 이 책입니다.

 

기타

올해 별로 한게 없다고 느껴졌는데,
그래도 생각보다는 많은 발전이 있었던 것 같습니다.
(물론 그래도 제 목표에는 한참 부족해 보입니다.)
조금 늦추어 봐도 3년정도가 지난 후부터는 SwiftUI와, 웹 개발 방법인 Redux, Reactor 패턴 같은 순환 패턴을 많이 사용할 것 같은데,
CI / CD를 하루 빨리 도입하여, 앞으로는 그런 기술들을 익힐수 있는 시간이 빨리 왔으면 좋겠습니다.


이러나 저러나 결국 이제는 iOS 개발자로 안착 한 것 같습니다.
사람일은 앞으로도 모르는 것이지만, 그래도 당분간은 iOS를 개발해야 하므로, 더 열심히, 더 즐겁게 개발할 수 있으면 합니다.

반응형