Dairy/Life Memo

응애개발자 -> 개발자

응애개발자 -> 개발자

개발 공부를 시작하고, 포트폴리오를 만들고, 취업에 성공해서 iOS개발자로 살게된지 1년이 약간 넘었습니다. 
그동안 많은 어려움과 주변 분들의 감사한 도움과 함께 저만의 작품을 갖게 되는 시간이였습니다
이번에 테스트코드를 처음으로 프로젝트에 추가하며 알게되었는데 소스코드가 어느새 4만줄이 넘더군요 ㅎㅎ 

 

그동안 많은 일들이 있었습니다. 수많은 리팩토링시도, 새로운 프로젝트, 데이터분석, UI 디자인 등등...
이중 에서도 가장 흥미가 많이 느껴졌던 것은 리팩토링 시도 였습니다. 예전의 코드를 개선하고 개선하다보면 뭔가... 성장했다 라는 느낌이 뚜렷하게 느껴지는 것 같습니다. 제가 처음 리팩토링 시도할때 어렴풋이 분리를 이렇게 하는건가? 라고 생각하고 쓴것과 지금의 제가 분리는 이렇게 하자 라는 느낌은 정말 많이 다릅니다. 혼자 개발을 계속 했더라도, 분명 이럴때는 이렇게 하면 힘들고 저렇게 하면 좋다 라는게 점점 눈에 들어오기 시작하니까 어려움은 있어도 좋은 코드에 대한 인식은 계속 생겨나는것 같습니다.

제가 가장 잘했다고 생각하는 리팩토링은 

  1. API request를 Open Close 원칙에 따라 수정에는 닫혀있고 확장에는 열려있도록 한 것
  2. 흩어진 UserDefault를 관리할 객체를 만들어 모든 UserDefault는 해당 객체를 거쳐 저장되고 읽어올수 있도록 한것
  3. 기존에 VC에서 작성하던 파라미터와 url request를 enum으로 정의해서 Route를 만들수 있도록 한것

이렇게 3가지 라고 할수 있을것 같습니다. 기본적인 리팩토링이지만 가장 뿌듯했던? 그리고 가장 체감이 컷던 리팩토링 이였습니다. 

 

그리고 이제 서비스 개발단계가 굵직굵직한 프로젝트들은 어느정도 완성이 되었고 코드한줄의 사이드 이펙트가 예상하기 힘들어진만큼 테스트 코드의 필요성이 점점 커지고있고, 테스트코드가 붙으면 CI/CD도 자연스레 붙이려고 했었기 때문에 요즘에는 Single Responsibility Principle과 Dependency Inversion을 지키며 Testable한 코드를 작성하는데 중점을 두고 있습니다. 

 

나름 열심히 하고있다고 생각하지만 배울게 쌓여있습니다. SwiftUI, Combine, RxSwift까지 넘어야할 산들이 많네요 ㅎㅎ;;
혼자 개발을 하게 되니 맞는 방향으로 가고 있는 것인지 항상 의심스럽습니다. 내가 구현하는 이방법이 야매인건 아닐까. 시스템에서 제공하는게 있는데 내가 몰라서 이렇게 하는건 아닐까... 실제로 몰라서 돌아가면서 구현을 했다가 나중에 알게되서 몇번 고친 부분들이 있습니다. 
구현을 하며 퍼포먼스도 생각을 해야되고 복잡한 UI를 구현하면 자연스럽게 만드는데 시간을 많이 보내게 됩니다 ㅜㅜ 다른 로직들이야 생각을 잘 하고 차례로 구현을 해나가면 상관없지만 이 UI에 대한 경험만큼은 사수가 정말 필요하다 라고 뼈저리게 느끼게 되는 부분인것 같습니다

 

요즘은 그래도 유튜브와 Raywenderich, 패스트캠퍼스같은 강의매체가 잘 되어있어서 감사하게도 좋은 코드를 보고 잘 배울수 있는것 같습니다. 저 말고도 사수없이 혼자 고생하시는 분들이 많은 것으로 알고있는데 다들 화이팅 하셨으면 좋겠습니다.

 

지치지 않고 앞으로도 어떻게 하면 더 좋은 코드를 쓸수있을까 항상 고민하는 개발자가 되고싶습니다. 화이팅 입니다.