본문 바로가기

개발 돌아보기

비전공자 회사다니며 iOS 개발 배우기 어느덧 1년.

2022년 6월 쯤부터 적극적으로 개발공부를 꾸준히 하기 시작했습니다.

2023년 1월 잠금화면 위젯 커스텀앱 코젯을 출시하고, 지난 달부터 감사하게도 협업 프로젝트도 시작했습니다.

시간은 오래걸렸지만 꾸준히 했던 것이 도움이 되었습니다.

이제 일상생활을 할 때도 코드들이 머릿속에 떠다니네요.

 


정말 입문 실력이었던 아래의 글들을 기재한지도 벌써 1년 정도가 지난 것 같습니다.

저는 현재도 배우는 단계이지만,

예전엔 Swift를 배우는 단계였다면, 지금은 앱 아키텍쳐, 테스팅, 리펙토링을 배우는 단계에 서있습니다.

 

 

회사다니며 앱개발 공부 1달차 회고. (비전공자)

본격적으로 개발 공부를 하기 시작한 것도 이제 1달 째. 나는 무엇이든 만들 수 있는 개발자가 더 적성이라는 것을 내가 제일 잘 알고 있었다. 식품생물공학 전공인 나는 원래 건강기능식품 개발

www.heon.dev

 

회사다니며 iOS 앱개발 공부 3개월차 (비전공자)

지난 글을 4월 24일에 썼었는데 매일 퇴근 후 공부하다보니 2달이 훌쩍 지났다. 2달 동안 정말 많은 발전이 있었다. 회사다니며 앱개발 공부 1달차 회고. (비전공자) 본격적으로 개발 공부를 하기

www.heon.dev

 

회사 일이 너무 바쁠 때는 쉬어가기도 했습니다.

그러므로 아마 개발에만 매진한다면 저보다 훨신 빠른 수준에 올라가 있을 것이라 생각합니다.

 

Github 기록을 보니 2022년 8월부터 Git을 사용하기 시작했나 봅니다.

하지만 커밋은 하지 않는 경우가 많았는데, 

코드들을 몇번 날리면서 (...) Git의 중요성에 알게되고,, 2022년 말부터 Git을 사용하기 시작했습니다.

 

역시 사람은 몸으로 느껴야 변하나봅니다. 😂

 

2022년 커밋
2023년 커밋

3개월 차에 기재했던 Angela강의는 매일 퇴근 후 카페에서 2~3시간씩 듣고, 약 2022년 8월 쯤 다 들었던 것으로 기억합니다.

Angela님 강의는 지금 생각해도 제가 iOS에 잘 정착할 수 있게 해준 강의라고 생각합니다.

 

60~70%정도 완료까지가 정규강의고, 나머지는 마케팅, 디자인 강의입니다.

그리고 CoreML은 강의가 오래되어 안되는 것이 많아 진행하지 않았었습니다.

 

UIKit + Storyboard 기반이었던 Angela 부트캠프를 듣고나니 스토리보드를 사용하지 않고 개발하는 방법에 관심이 많이 가게 되었고 아래 강의를 통해 배우게 되었습니다.

 

UIKit No Storyboard를 사용했던 시기.


이 강의를 들으며 UIKit을 스토리 보드를 사용하지 않고 개발하는 방법에 대해 배우게 되었습니다.

13강 까지 배우면 스토리보드 사용보다 더 편해지는 마법이 펼쳐집니다.

이 강의에서는 NSLayoutConstraint를 사용하는데 이렇게 배운 후 SnapKit에 입문하면 자유자재로 사용할 수 있게됩니다.

 

 

 

개인 앱을 개발하던 기간


이제 정말 배웠던 것을 사용해야 할 때가 왔습니다.

어떤 것을 개발 해볼까 하다가, 기본적인 배경화면 편집기를 만들어 보기로 합니다.

이 앱을 개발하며, Core Animation, SnapKit, RxSwift를 필요에 의해 배우게 되었습니다.

 

그러나 배경화면을 만들 때마다 메모리가 차곡차곡 쌓이는 걸 발견했고(...)

메모리 누수(memory leak)에 대해서 배우고, weak self, disposebag에 대해 배우게 되었습니다.

역시나, 개인 앱을 만들고 리펙토링 하는 것이 강의 끝난 시기에는 가장 도움이 되었습니다.

(여러 시행착오를 겪은 후에는 협업앱이 많은 도움이 됩니다.)

 

 

제가 너무너무 좋아하는 유튜버 "솜이네 곰이탱이여우"의 사랑스런 여우 사진을 예시로하면

사진 출처 : 솜이네 곰이탱이 여우 유튜브

 

이 사진을 배경화면으로 하고 싶다하면 아래 좌측 처럼 커질거에요. 

가운데 제 앱으로 수정을 하면 우측처럼 원하는 사이즈에 배경 블러를 넣을수도 있는 기능을 넣었어요

그리고.. 여기에 잠금화면 위젯까지 넣겠다! 하다가 잠금화면 위젯은 출시한 "코젯"앱으로 따로 분리했죠.

 

 

현재는 이렇게 깃허브에 올려놓긴 했지만..

지금 상황으로 봤을때 많은 리펙토링이 필요해서

나중에 꼭 살릴 예정입니다!

https://github.com/heonha/backgroundmaker-ios

 

GitHub - heonha/backgroundmaker-ios: 아이폰 배경화면 이미지 편집 앱

아이폰 배경화면 이미지 편집 앱. Contribute to heonha/backgroundmaker-ios development by creating an account on GitHub.

github.com


SwiftUI를 만나려고 했던게 아닌데.. 만나게 되었습니다.


사실 저는 SwiftUI를 배우는 것에 큰 비중을 두진 않았습니다. UIKit을 공부하기에만도 벅차다 생각했습니다.

하지만, 코젯을 개발하면서 WidgetKit은 피해갈 수 없었고 SwiftUI 와 만나게 되었습니다.

 

머리가 아프긴 했지만, 기존에도 UIKit + SnapKit을 사용해서 그런지 빠르게 배울 수 있었습니다.

SwiftUI는 출퇴근하면서 유튜버 Sean Allen의 SwiftUI Tutorial을 보면서 배웠습니다.

 

아래 링크된 플레이리스트를 대부분 다 보면서,

기존 UIKit + SnapKit으로 작성했던 코젯의 코드를 모두 SwiftUI로 전환 시키다보니

지금은 SwiftUI를 더 선호하게 되었습니다.

하지만,  SwiftUI는 세부적인 부분들을 조절하지 못하는 경우도 있고, 가끔 버그도 있어서(..)

Representable또는 Appearance()로 UIKit을 데려오는 경우가 많긴 합니다.

 

https://www.youtube.com/watch?v=HXoVSbwWUIk&list=PL8seg1JPkqgHyWCBHwXGmfysQpEQTfC3z&ab_channel=SeanAllen 

 

그리고 코젯을 적극적으로 개발하고.. 회사에 PCI 심사, 행사 등,, 바쁜 시기가 지나가다보니 개발에 좀 신경을 못쓰기도 했습니다.

그래서 사실 코젯은 11월에 출시 예정이었으나,, 1월까지 미뤄지게 되었습니다.

 

 

하지만 목표를 두고 출시하는 것이 우선이고 리펙토링은 그 뒤에 하자는 생각에

우선 기능에 집중하고 출시하게 되었습니다!

 

https://kogetapp.heon.dev/

 

‎코젯

‎코젯으로 앱과 웹사이트에 빠르게 접근하세요! 자주 사용하는 앱이나 웹페이지를 추가하고, 잠금화면에서 바로 실행할 수 있습니다. - 위젯 아이콘과 URL도 내 마음대로 커스텀 할 수 있어요 -

apps.apple.com

 

 

간단한 앱이고 앱 다운로드 실적은 저조하지만,, 아직 앱에 부족한 점이 많다 생각해서 실망스럽진 않습니다.

꾸준히 더 가꾸고, 코드도 MVVM패턴을 제대로 넣어서 리펙토링하고 꾸준히 유지보수 할 생각입니다.

카카오도 처음엔 채팅 기능 하나가 전부였으니까요.

 

회사분들과 주변에서 좋아해주시는 분들도 많아서 뿌듯하고,

아래 얘기하겠지만, 이 앱을 출시한 계기로 협업 프로젝트도 시작하게 되고, 사내 개발자 분들이랑도 더 친해진 계기가 되었으니

출시 후 좋은 일이 많이 생겼네요 🥰

 


협업의 중요성을 느끼다.


코젯을 출시하며 개발을 혼자하다보니 협업을 같이하고 싶다는 생각이 들던 참에

코젯을 사용하던 사내 개발자분이 계셔서 대화하던 중에 프로젝트를 같이 진행하게 되었습니다.

 

마침 iOS 개발자 자리가 한자리 비어있었고, 코젯을 보고 같이 할 수 있겠다는 생각이 드셨던 것 같아요.

코젯이 기능은 많이 없지만, 제가 어느정도 구현 가능한지를 보여줄 수 있는 좋은 지표였던 것 같아요!

 

무엇이든 완성해서 Output을 내는 것이 중요하다고 생각했던 순간이었습니다.

 

 

3월 말부터 협업 프로젝트를 시작하고,

제 코드를 협업 하는 분께 리뷰받으려 하니 코드를 더 신경쓰게 되고, 검증하게 되는 습관이 생겼습니다.

그리고 리뷰하면서 제가 놓쳤던 부분도 피드백 받고, 상대방의 코드를 보면서 배우는 것도 많았구요.

 

리뷰를 하려면 또 잘 알아야하기 때문에 그로인해서 공부하게 되는 부분도 많았습니다.

3월에 다양한 회사에 지원했지만 모두 떨어졌던 이유를 되돌아 보는 계기도 되었습니다.

 

제 코드를 객관적으로 보게 되면서 아직 많이 부족하다는 느낌을 받았고,

Swift Coding Club 모임에 참석하면서, 취업 관련 질문도 해볼 수 있는 기회가 되었습니다.

 

 

 

당분간은..


당분간은 아래 스택과 협업 프로젝트, 토이프로젝트 제작에 집중하려 합니다.

그리고 Notion으로만 작성했던 메모들도 이 블로그로 서서히 옮길 예정이구요.

 

지금 제게 중요한 집중할 스택은

Combine

MVVM

RestAPI 

위 3가지를 더 꾸준히 공부하고

협업 & 개인 프로젝트 내 적절한 곳에 사용해 리펙토링하며 실력을 향상 시키려합니다.

 

그리고 이렇게 돌아보는 시간도 가지면서 자기객관화 하는 것도 좋은 시간인 것 같습니다.

 

 

현재 듣고있는 Swift 관련 강의는 아래 두가지 입니다.

좌측: SwiftUI 기반 MVVM & RestAPI

우측: UIKit 기반 RestAPI & Combine  & UnitTest

 

여러가지 코딩 스타일을 배우고 싶어서 여러가지 비교해보면서 보고있습니다.

MVVM & RestAPI & UnitTest & Combine 모두를 아우르는 강의 두가지.

 

 

모두 Udemy 할인 때 제 자금으로 구매한 강의입니다.

 

 

 

heonha - Overview

 Launched '코젯 (Koget)' in AppStore. . heonha has 15 repositories available. Follow their code on GitHub.

github.com

 

반응형