안녕하세요? Dev_WL입니다.
블로그 관리를 꽤 오랫동안 중단했다가 5달 반 만에 다시 인사드립니다.
Swift 프로그래밍의 기초부터 작성하는 것은 이미 다른 블로그에서 하고 있기도 하고, MS Copilot이나 ChatGPT 같은 AI 서비스에서 자세하게 답변해 주며, 작성 시간이 꽤 오래 걸리는 귀찮은 작업이라 지금부터는 앱 개발 과정에서 배운 팁들 위주로 작성해 보려고 합니다.
올해 1월 포스팅에서 멋쟁이사자처럼 앱 스쿨 : iOS 4기를 수강 중이라고 언급했는데, 해당 과정이 종강한 지 석 달이 넘고 5기 종강이 얼마 안 남은 2024년 8월 말 늦게나마 후기를 작성해 보려고 합니다.
1. 앱 개발을 선택한 이유
초등학생 때 처음 아이팟 터치와 아이패드를 접했을 때 타사 제품보다 빠릿빠릿한 반응 속도와 화려한 그래픽에 반했었고, 이후에 경쟁 제품인 국내 업체들의 안드로이드 스마트폰도 사용해 보며 급격한 IT 기술의 발전에 놀라게 되었습니다. 또한, 스마트폰의 도입 이후 손쉽게 원하는 정보를 얻을 수 있다는 장점과 일상생활의 급격한 변화를 보고 이러한 기술을 어떻게 응용할 수 있을지 생각해 보게 되었습니다. 그렇게 중학생 때 컴퓨터 학원에서 MIT App Inventor를 사용해 본 적이 있는데 스크래치와 비슷한 UI로 손쉽게 안드로이드 OS용 앱을 만들 수 있다는 장점은 있었지만, 상용 앱의 화려한 시각 효과는 낼 수 없었고, 데이터 관련된 지식도 부족해서 원하는 것들을 만들 수 없었습니다.
그 뒤로 파이썬과 아두이노 프로그래밍을 접하고 대학교 산업공학과 진학 이후에는 프로그래밍 관련 동아리에서도 활동하였으며, 파이썬과 Java와 관련된 수업도 수강하였습니다. 하지만, 코로나19 팬데믹 이후 동아리는 폐쇄되었고, Java 프로그래밍은 이해하는 것이 어려워서 이를 실생활에 응용할 수 있는 방안을 찾을 수 없었습니다.
대학교 4학년 때 파이썬을 이용한 머신러닝 관련 프로젝트에 참여하는 좋은 기회가 생겼고, 각종 데이터 분석이나 머신러닝 관련 라이브러리나 프레임워크를 사용해 보고 학회에 참석해 학부 연구생 신분으로 포스터 발표까지 진행하게 되었습니다. 하지만, GUI를 사용한 프로그램을 직접 만들어 보고 싶었고, 모바일 앱 개발에 이전부터 관심이 있어 앱 개발을 공부해 보겠다고 다짐하였습니다. 머신러닝 프로젝트에 참여하며 이미 우수한 성능의 M1 Pro 맥북 프로를 가지고 있고, 아이폰과 아이패드를 사용하고 있어 iOS 앱 개발을 공부하려고 결정했습니다.
원래는 Swift Playgrounds라는 앱을 통해 혼자서 공부해 보려고 시도해 보았으나, 객체지향 프로그래밍이나 데이터, 네트워킹 등의 개념은 잘 이해가 되지 않았습니다. 앱 개발과 관련된 직종으로의 취업을 생각하고 있고, 학부 졸업 수준에서의 수준에서는 부족한 것이 많다고 생각해 내일배움카드를 이용해 수강할 수 있는 관련 직업훈련 과정을 알아보기 시작했습니다.
2. 멋쟁이사자처럼 앱 스쿨 : iOS를 선택한 이유
멋쟁이사자처럼의 앱 스쿨 과정은 Swift의 기본부터 UI 설계, 팀 프로젝트까지 다른 과정 대비 다루는 범위가 넓었고, 온라인으로 진행되는 방식이라 대면 과정보다는 참여 부담이 덜하여 선택하게 되었습니다. 또한, 개발 관련된 것만 다루지 않고 UI 설계에 관한 것도 다루어 더욱 쓰기 편한 앱을 만들 수 있겠다는 생각에 수강을 결심하였습니다.
이 외에도 HRD-Net 웹사이트에서 iOS 앱 개발 관련 직업훈련 과정을 검색했을 때 상위에 표시되기도 하였고, 타 훈련과정 대비 전반적인 평가가 좋았으며, 이전에 대학생을 대상으로 한 멋쟁이사자처럼 동아리에 관해 들어본 적이 있었던 것도 과정 선택의 계기가 되었습니다.
3. 배운 점과 느낀 점
이 과정은 앞의 3개월 반 동안은 iOS 앱을 개발할 수 있는 Xcode의 사용법과 Swift 프로그래밍 언어의 기초부터 객체지향 프로그래밍의 개념, iOS 앱 개발 시 사용하는 두 가지 UI 프레임워크인 UIKit, SwiftUI를 배우고 개인 과제와 팀으로 프로토타입 앱 개발 프로젝트로 구성되어 있습니다. 남은 2개월 동안에는 네트워크 연동까지 한 실제 작동되는 앱을 개발하는 프로젝트로 구성되어 있습니다. 모든 강의는 Zoom을 통해 진행되었고, 팀별 모임과 강의 중 실시간 채팅 등은 디스코드를 이용했습니다. 또한, 팀 프로젝트 기간에는 사전에 신청한 사람만 멋쟁이사자처럼 광화문 사옥에서 팀별 대면 모임도 할 수 있었습니다.
이 과정을 통해 명령형 방식의 UIKit과 선언형 방식의 SwiftUI를 모두 배우고 실습까지 하며 더욱 상세하게 배울 수 있었습니다. 또한, 객체지향 관련 개념들은 대학생 때 Java 프로그래밍 수업에서는 잘 이해가 되지 않았지만, 강사님께서 쉽게 설명해 주셨고, Swift 공식 문서 및 한국어 번역 문서가 잘 되어 있어 이러한 개념들을 쉽게 이해할 수 있게 되었습니다.
프로그래밍을 이전에도 기초 수준 정도는 접해 보았고, Swift 언어의 기본 문법도 잘 이해가 되어 처음에는 어려운 점이 별로 없었고, 개인 과제를 수행할 때도 큰 어려움은 없었습니다. 하지만, 프로젝트로 넘어간 뒤에는 네트워킹이나 스크롤 처리, 푸시 알림 등을 다룰 때 에러나 원치 않는 동작이 발생하였고, 데이터를 다루는 방식이 파이썬을 이용한 데이터 분석과는 다른 점이 있어서 어려움을 여러 번 겪기도 했습니다. 또한, 이전에 참여했던 프로젝트들은 혼자서 진행하는 방식이거나, 팀원별로 명확하게 업무를 나누어 진행하는 방식 위주여서 모든 팀원이 유기적으로 프로젝트를 진행하는 방식이 낯설기도 하였고, Git 툴 사용에서도 미숙한 점이 있었습니다. 컴퓨터 관련 학과를 전공한 사람들이나 이전에 다른 Swift 관련 부트캠프 참여 혹은 앱 배포 경험이 있어 관련 지식이 풍부한 사람들 대비 부족한 점을 자주 보여주었던 것 같습니다.
장기간 아침 9시부터 저녁 6시까지 진행되는 과정은 종종 피곤하거나 힘들기도 했었고, 상술했듯이 프로젝트 과정 속에서 여러 번 부족한 점을 보여주기도 했었습니다. 하지만, 이번 앱 스쿨 과정은 이전에는 잘 몰랐던 객체지향 관련 개념이나 프로세스와 스레드, 네트워크 비동기 처리 등 더욱 상급의 개념들을 배울 수 있는 유익한 과정이었습니다. 또한, 앱의 사용자 경험(UX)에 관한 수업과 제작한 앱의 UX 피드백을 통해 더욱 편하게 사용할 수 있는 앱을 만들려면 어떻게 해야 하는지에 대해서도 알게 되어 개발 과정에서 사용자를 고려할 수 있게 되었습니다.
4. 앱 스쿨 이후 추가적으로 연습한 것들
5월에 앱 스쿨 과정을 수료한 뒤 현재까지 네트워크 비동기 처리나 애니메이션 효과와 같은 프로젝트 기간에 제대로 배우고 연습하지 못한 것들을 다시 연습하고 있습니다. 또한 File Manager를 이용한 파일 다루기, NSCache를 이용한 캐싱, SwiftData를 이용한 로컬 데이터 저장에 관해서도 자료를 찾아보고 연습 프로젝트에 적용해보고 있습니다.
앱 스쿨에서 배운 내용 복습 및 추가적인 학습 과정에서 만든 앱들 중 공개하고 싶은 것들을 현재 유튜브에 올리고 있으며, 추후 깃허브 리포지토리 공개까지 진행할 예정입니다.
5. 이후 계획
지금까지 혼자서 연습으로 만든 앱들은 기존에 있는 앱에서 아이디어를 차용하여 개인적으로 불편하다고 느꼈던 점을 개선한 앱입니다. 여기서 한 걸음 더 나아가서 앞으로는 기존에는 존재하지 않지만, 생활에 필요하다고 생각하는 앱들을 만들어 볼 계획입니다. 매일 쉽고 편하게 사용할 수 있는 앱을 만드는 것을 목표로 삼고, 페르소나(대상 사용자)를 명확하게 잡고 어떠한 불편 사항을 어떻게 해결할 수 있는지 생각하며 프로젝트를 진행하려고 합니다.
머신러닝 관련 프로젝트 경험이 있지만, 수료 이후의 프로젝트에서는 아직 Xcode 테스트 기능이나 앱스토어 배포는 경험하지 않아 이러한 것도 추가적인 자료를 찾아보고 프로젝트에 반영할 계획입니다. 또한, 컴퓨터 관련 학과 전공자 대비 데이터 구조나 알고리즘 관련 지식이 부족하다고 느껴 앱 스쿨 종료 이후 관련 자료를 탐색하고 있는데, 추후 이러한 것들을 응용한 앱들도 만들어 보려고 합니다.
감사합니다.
'개인 회고' 카테고리의 다른 글
앱 개발 중간 회고 - 2023년 11월~2024년 1월 19일 (0) | 2024.01.19 |
---|