KoreaMango 나무

2022년 회고 본문

iOS/회고록

2022년 회고

KoreaMango 2023. 1. 26. 21:17

연말부터 해서 연초까지 건강이 좋지 않았다..

그리고 여러 소식과 설날이 겹치면서 정신없이 지내다가 이제야 회고를 쓰게 되었다.

2023년 iOS 공부를 시작한 지 1년이 되었다.

iOS 1년 차의 생각으로 회고를 작성해 보면서 2022년을 되돌아보고 앞으로 무엇을 할지 회고록을 작성하면서 정리해보려고 한다.

1월 ~ 3월

안드로이드 앱 개발만 해왔던 나는, 대학교 3학년을 마치고 겨울 방학에 USG 공유대학에서 진행하는 iOS 앱 개발 심화반에 신청했다. 이 수업은 함께 수업듣는 학생들과 팀을 만들어 기획부터 개발, 출시까지 진행하는 커리큘럼으로 진행되었다.

1월에는 기획과 Swift 언어, Xcode, Storyboard 이론에 대해 배웠다. 코더스하이에서 인프런 강의를 제공해주었고 보고 따라 하며 스킬을 배웠다.

 

2월에는 기획한 아이디어로 팀을 만들고, 개발에 들어갔다.

우리 팀은 Swift, UIKit, Storyboard 중심으로 개발을 진행했다. iOS를 github로 협업을 진행하면서 많은 충돌을 겪었다. CocoaPods을 git에 올리고, Storyboard, proj 파일도 충돌이 있었다.

이를 해결하기 위해 gitignore사용법, Storyboard와 파일을 물리적으로 분리시켜 놓는 작업을 배웠다.

또한 git issue, pull request 등 github에서 제공하는 기능을 알게 되었다.

 

3월까지 내가 수행한 기능은 글 정렬, 글 쓰기, 글 스크랩, 구글 로그인 등이 있었다.

주로 Firebase를 사용하는 CRUD 작업이었다. 이 중 특히 스크랩 부분은 escaping closure를 사용해서 비동기적으로 구현했다.

 

USG iOS 캠프가 끝이 났지만 프로젝트는 멈추지 않았다. 프로젝트를 AppStore에 출시하려고 했다. 하지만 커뮤니티 앱 특성상 지켜야 할 규칙이 많아 리젝을 자주 당했다. 리젝 당한 부분을 바탕으로 리팩토링을 시도했다.

또한 IT 병역특례로 산업기능요원을 준비 중이라 이력서를 쓰며, 병역지정업체를 알아봤다. 그리고 취업 준비를 하면서 WWDC Swift Student Challenge을 알게 되었다.

4월 ~ 6월

4월에는 취업준비는 잠시 접어두고, WWDC Swift Student Challenge 에 관심을 쏟았다.

WWDC Swift Student Challenge를 출품하기 위해 SwiftUI 공부를 병행하며 바로 앱 만들기를 시작했다. SwiftUI를 처음 했지만 코딩 스타일이 일관성 있고, 직관적이라 빠르게 터득해 앱을 만들었다.

SpriteKit을 사용해 도형과 물리 엔진을 사용했고, AVFoundatoin으로 소리를 출력했다.

 

5월에는 4월에 했던 SwiftUI에 재미가 들려서 SwiftUI 이론 공부를 시작했다. Apple에서 제공하는 2개의 SwiftUI Tutorial을 따라 공부를 진행했다.

또한 USG iOS 심화반에서 함께 했던 팀원들과 베리어프리 앱 공모전에 기획서를 제출했는데 아쉽게 서류 불합격을 받았다.

그러고 5월 말에 WWDC Swift Student Challenge 수상 소식을 알게 되었다.

 

6월에는 3월부터 조금씩 공부했던 정보처리기사합격했다.. 그리고 수도권에서 IT 병역특례로 일을 하기 위해서 LH로 집을 구하고, 이사를 준비하는데 많은 신경을 쏟았다. 이사를 하니 이사한 집에 하자가 많아 공사를 하느라 고생 좀 했다. 그리고 입주를 하게 되었고, 새로운 지역에 적응하기 위해 동네를 산책하거나, 음식점을 돌아다녔다.

그리고 WWDC Swift Student Challenge에서 받은 Apple Developer 계정으로 출품했던 SoundBallApp Store에 등록했다.

 

6월 말에 처음으로 무박 2일 해커톤에 참가할 기회가 생겼다. GDG(Google Developer Group)에서 개최한 썸머 오프티벌이라는 해커톤에 참가하게 되었다. 코로나로 인해 오프라인으로 하는 해커톤이 없었는데, 유일하게 오프라인으로 했던 해커톤이었다.

기본적으로 iOS 2명, 백엔드 2명, 디자이너 1명이서 팀이 구성되는데, 백엔드 한 분이 해커톤에 참석하지 않으셔서 백엔드는 1명으로 진행하게 되었다.

해커톤에서 함께했던 iOS 개발자님은 다른 분야를 하시다가 iOS 개발이 재밌어서 시작하게 되었다고 하셨다. 강의 플랫폼에 iOS 개발 강의 영상도 올리셨다고 하셨다. 다른 iOS 개발자님과 UIKit를 사용해 코드 기반 앱을 만들기로 했다. UIKitStoryboard, SwiftUI로 개발만 했었던 나에게 조금 낯설었지만, 오토레이아웃 개념을 충분히 알고 있어서 SnapKit에 금방 적응했다.

백엔드의 결과가 아쉽게 되어 프론트와 연결하진 못했지만 하루 만에 대단한 작품을 만들었다고 생각했다.

무박 2일의 해커톤을 처음 경험해 보니 쉽지 않았다. 다른 분들은 술 마시면서 코딩했다고 하던데, 나는 에너지 드링크를 마시면서 쉬지 않고 코딩만 했었다… 그리고 다른 팀 개발자 분, 운영 측 마켓컬리 개발자분의 도움을 받아 코딩을 했었는데, 대단하신 실력들에 자극을 많이 받았었다.

비록 수상은 하지 못했지만 만족스러운 해커톤이었다.

7월

7월에는 대학 동기들과 K 해커톤을 참가하기 위해 온라인으로 회의를 진행하며 기획서를 작성했지만, 아쉽게 예선에 올라가지 못하게 됐다.

이사한 집에 적응이 되어가는 시점에 생활비를 벌기 위해 아르바이트를 구했다. 아르바이트를 마치고 집에 돌아오면, 회사 채용공고를 보면서 무엇을 해야 할지 길을 찾으려고 노력했다. 거기서 눈에 띈 것은 비동기 프로그래밍을 도와주는 RxSwift와 Combine이었다. 또한 다양한 라이브러리아키텍처에를 찾아보게 되었다.

 

8월

8월에는 마켓컬리에서 개최한 해커톤에 참가하기 위해 마켓컬리가 제공한 오픈채팅방에서 팀을 만들었다. 우리 팀은 앱 클립을 사용해 오프라인에서 바로 제품을 살 수 있도록 해주는 아이디어였다. 하지만 또 아쉽게 해커톤에서 좋은 성적을 이루지 못했다… 아이디어는 정말 좋았던 것 같았는데 마켓 컬리가 원하는 아이디어는 아니었나 보다 생각했다.

그리고 3월에 이루지 못한 MateList 앱 출시를 위해 리팩토링을 시작했다. 신고 기능, 차단기능, 개인 정보 처리 방침 동의서 등 품질에 대한 기능을 추가를 진행했다.

 

9월 ~ 12월

9월에는 Adios Korea라는 iOS 개발자를 위한 발표회(행사)에 갔다. 3월에도 개최를 했었는데 그땐 온라인으로 참석했었다. 하지만 이번엔 오프라인으로 행사를 개최하게 되어서 직접 보러 갔다. 다양한 현업 개발자분들과 학생분들과 이야기해 볼 수 있는 자리였다. 다양한 사람과 만나면서 관심사를 넓혀갈 수 있게 해주는 좋은 자리였다.

그리고 UMC(University MakeUs Challenge)라는 전국 대학생 IT 연합 동아리에 신청을 했고, 합격을 했다.

앱 개발을 주로 하는 동아리로 다양한 사람을 만나 스터디하기 좋았다.

그리고 USG iOS 개발 캠프에서 진행과 수업을 맡아주었던 코더스하이에서 수업 진행 조교를 하며 용돈 벌이를 했다. 수업 문서, 영상 등을 관리하며 강사님을 서포트하는 게 주 역할이었다.

 

10월에는 계속해서 MateList 프로젝트 리팩토링을 했다. Feature에 맞게 폴더를 구분하고, 그룹화를 했다. 또한 새로운 기능은 RxSwift를 사용해서 구현했다.

UMC에서 iOS 스터디 장을 맡게 되었고, 매주 주어지는 과제를 하며 서로 피드백을 진행했다.

 

11월에는 원티드 iOS 챌린지에 신청하기 위해 사전과제를 수행했다. 사전 과제는 간단한 성적 계산기를 만드는 과제였다.

그리고 USG iOS 개발 캠프의 멘토이자, Adios Korea의 주최 측이신 리이오님께 LetSwift 발표자 제안이 와서 발표를 하게 됐다. 평소에 버스에서 유튜브로 챙겨보던 LetSwift에 발표를 할 수 있는 기회가 생겨, 설레고도 긴장되었다. 또한 iOS 개발을 하며 많이 봤던 블로거인 민소네님과 함께 발표 준비를 하게 되었다.

iOS 분야의 인플루언서이신 민소네님과 함께 디스코드를 하고, 오프라인으로 만나서 이야기를 했다는 것이 너무 신기했다. 연예인을 본 기분이었다. 민소네님께서 Tuist로 프로젝트를 동적으로 관리하는 법에 대해 발표하는 것이 어떻겠냐고 제안을 해주셨다.

나는 Tuist를 처음 들어봤다. 프로젝트를 관리하는 것도 잘 몰랐었다. 그냥 코드를 작성하고 기능을 구현하는 것만 했었기 때문이다. 발표를 하기 위해서 Tuist에 대해서 완벽하게 이해할 필요가 있었다. 프로젝트를 만들고 Tuist를 적용시키면서 사용법을 배웠다. Tuist로 타깃을 환경 변수로 관리하거나, 의존성을 관리하는 법 등 다양한 기능을 사용해 봤다.

2주간 매일 Tuist에 대해 공부하며 LetSwift를 준비하고, 발표 자료를 만들어 무사히 발표를 마치게 되었다. 발표 영상은 아래 참고에 LetSwift 링크에 들어가서 Program -> 동영상을 누르면 유튜브 링크로 연결될 것이다.

 

12월에는 원티드 iOS 챌린지를 통해 Swift 코딩 스타일, POP, TDD에 대해서 학습하게 됐다. 그리고 MateList 리팩토링을 하고 있는 도중 전 팀원에게 연락이 와서 함께 리팩토링을 진행하고 있다. 기존에 있던 Storyboard를 제거하고 Code 베이스의 View를 만들고, MVVM 구조로 만들고 있다. 또한 ViewModel을 도입함으로써 RxSwift를 사용하게 되었고, 화면전환은 Coordinator 패턴을 사용했다.

계속하고 있던 것

2022년 동안 USG 동료들과 WWDC 스터디를 통해 새로운 기술, 내부 이야기 등 다양한 이야기를 접하게 됐다.

그리고 프로그래머스에서 Swift로 코딩 테스트 연습을 하며, 고차함수를 생각하는 대로 사용할 수 있게 되었다.

계획

  • 현재 MateList 리팩토링을 진행하고 있다. 80% 정도 Storyboard 기반에서 Code 기반으로 넘어왔다. Feat로 구분해 프로젝트로 모듈화를 시키고 있다. 모든 기능을 Code 기반으로 고치고 Tuist로 모듈화를 완성할 계획이다.
  • 그리고 LetSwift에서 배운 Tuist를 이 프로젝트에 적용 중이다.
  • SwiftUI를 통해 iOS 뿐만 아니라 watchOS, macOS 도 한번 만들어 보고 싶다.
  • iOS 행사를 많이 다니고 싶다.
  • 운동을 시작해 볼 계획이다.

반성

  • 생각보다 큰 프로젝트를 많이 못한 것 같다. 기능을 배워본다고 작은 프로젝트를 많이 만들고 완성되면 버리고 같은 자잘한 연습을 많이 했었다. 2023년에는 하나를 크게 키워보고 싶은 욕심이 있다.
  • 건강을 잘 챙기자.

회고록을 쓰며 느낀 점

첫 회고록이라 어떻게 쓸지 감이 잘 오지 않았다. 다른 사람의 회고록도 많이 보면서 개선해 봐야겠다.

일기를 쓰듯 하면 되는 걸까 싶다.

그리고 어떤 이벤트가 있으면 당시에 사진이나 기록을 많이 남겨둬야겠다.

회고록을 써보니 무언가를 열심히 한 것 같지만, 아쉬운 느낌이다. 이렇게 동기부여를 받고 더욱 훌륭한 개발자가 되기 위해 노력해야겠다.

 

참고

 

2022 adiOS ASAP🥄 | Festa!

Festa에서 당신이 찾는 이벤트를 만나보세요.

festa.io

 

 

University MakeUs Challenge [UMC]

Main.mp4

www.makeus.in

 

 

LetSwift2022:Swift Playgrounds

iOS 개발자들의 놀이터, 레츠스위프트 컨퍼런스 2022 에서 온라인의 갈증을 해소해보세요.

letswift.kr

 

 

프리온보딩 iOS 챌린지 1차 | 원티드

AI 채용, 연봉 정보, 이력서, 커리어 콘텐츠까지 커리어 성장에 필요한 모든 것, 원티드에서 만나보세요.

www.wanted.co.kr

 

'iOS > 회고록' 카테고리의 다른 글

[회고] 2023년  (0) 2024.01.16