[회고록] AppleDevloperAcademy 프로젝트 정리 및 공부 방향 설정

2024. 12. 20. 04:40·회고록
728x90
반응형

안녕하세요, iOS 개발하는 루피입니다!

 

오늘은 아카데미에서 진행했던 프로젝트를 정리하고, 앞으로 iOS 개발 공부를 어떻게 진행할지에 대해서 정리를 해보려고 합니다. 아는 만큼 보이는 법인데 제가 아직은 많이 부족한 거 같아 많은 것을 볼 수 있을지는 모르겠지만 말이죠 ㅎㅎ. 피드백이라던지 조언이 있다면 언제든지 피드백 주시면 감사히 받겠습니다.


SwiftUI를 이용한 프로젝트

아카데미에서는 SwiftUI를 학습할 수 있는 기회를 제공해 주었습니다. 처음 5개월은 SwiftUI를 공부하였고, iOS에 대한 기본적인 컴포넌트 및 내비게이션에 대한 이해를 할 수 있었습니다. 아카데미 내부 챌린지로 총 4번의 프로젝트를 통해 SwiftUI를 이용한 간단한 MacOS 노트 앱, iPad 환경에서 Pencil Kit을 사용한 어머니를 위한 영화 기록 앱, SpriteKit을 이용한 점프 게임 앱, 청각 장애인의 목소리 크기 문제로 인해 공공장소에서 발생하는 문제를 해결하고자 자신의 목소리를 확인할 수 있는 앱을 만들면서, LiveActivity와 백그라운 환경에서 앱의 동작을 학습하고 출시하였습니다.

 

아카데미를 진행하며 참여했던 공공데이터 경진 대회에서는 서울의 길거리 작품들의 위치를 확인 할 수 있는 오픈 API를 이용해 MapKit를 활용한 실시간 위치 앱을 BE개발자 분들과 같이 개발하고 출시 했습니다.


UIKit을 이용한 프로젝트

아직 SwiftUI는 개발하는데 있어 변경되는 부분과 구현이 불가능한 부분이 존재하며, 취업을 준비하는 입장 해서 UIKit를 사용해 보고자 UIKit 공부를 해보았고, 마지막 MACRO 챌린지에서는 팀원들과 개발하여 보았습니다.

 

개발자 3명, PM 1명, 디자이너 2명으로 구성된 팀이였으며, 다른 곳에서 흔히 할 수 있는 플랫폼 앱보다는 작고 명확한 기능을 바탕으로 심플한 앱을 만들고자 하여 WiFi 안내문을 사진 찍으면 자동으로 WiFi에 연결되는 App을 만들었습니다. 운이 좋게도 iOS 개발 실력이 뛰어난 팀원들과 함께하여 개발 실력 역시 많이 늘 수 있었습니다.

 

개발은 MVVM+C 아키텍처를 선택하였고, 덕분에 RxSwift, SnapKit 도 경험해 볼 수 있는 좋은 기회를 가질 수 있었습니다.

3개월이라는 기간동안 최대한 많은 UserTest와 Sprint를 기획했고, 아카데미 특성상 기획하는 데 있어 모두가 같이 참여하는 환경을 선호하기에 개발과 디자인 시간을 최대한 효율적으로 사용해야 했습니다. 그렇기에 기획을 마치고 와이어 프레임을 작성하면, 개발자들은 UseCase를 나누어 확정된 Feature에 대한 개발을 바로 진행하였고, 디자이너가 Hi-Fi 작성을 끝내면, 곧바로 맡은 부분의 View 작업을 진행하는 방식으로 병렬적으로 Sprint 기간을 보냈습니다. 이렇게 WorkFlow를 만들자 다른 팀들에 비해 압도적으로 빠른 시간 안에 1차 MVP를 구현을 끝내고 곧바로 출시를 해낼 수 있었습니다. 

 

2차 스프린트에는 MVP에서 문자 인식률을 높이고자 개발자끼리 상의를 많이 해보았습니다. Apple에서 제공하는 Ai 기술이었지만, 처음 직접 사용해보는 Ai이기에 개발자로서 하나의 도전이었습니다. 안내문의 ID, PW에 자체 인식으로 통해 ID, PW 형식에 대한 케이스를 REGEX 형태로 지정해 놓았으고, ID, PW 글자를 인식하면, 글자에 Bounding Box로 Frame을 만들어 해당 글자로부터 가장 가까운 위치에 있는 글자를 ID, PW로 인식할 수 있게 만들었습니다. 또한 인식 실패 시 재시도 뷰에서 LiveText를 이용하여 직접 타이핑하는 경험을 최대한 없애고자 노력하였고 2차 출시를 마무리하였습니다.

 

3차 스프린트에는 현지화와 기기간 Wifi 공유 Feature를 추가하며 최종 마무리 작업을 진행하였습니다. 기능은 간단하지만, 화면 전환이 많은 어플의 특성상 Coordinator 부분에 대한 에러가 많이 발생하였습니다. 최종적으로 디자인 쪽에서 많은 애니메이션 View가 추가되면서 View 가 기존 플로우에서 사이 사이에 삽입 되었으며, 인식 실패 경우 새로운 플로우 적용, WiFi 연결시 주변 기기 공유 Feature가 추가 되면서 적용되었던 Coordinator 부분에서 문제가 발생하였습니다. 이를 해결하기 위해 앱 Flow를 도식화하고, Flow가 나누어지는 View를 찾아 Root를 재정의하고 이를 적용하여 해결했습니다.

 

이렇게 최종 MACRO 챌린지를 마무리할 수 있었으며, 앱스토어에서 Utility차트 19위, 다운로드 수 3000이라는 의미 있는 성과를 얻을 수 있었습니다. 


앞으로의 공부 방향 설정

9개월간 좋은 팀원들과 프로젝트를 경험하며, 독학으로는 얻을 수 없을 거 같은 성장을 엄청나게 빠르게 경험한 거 같습니다. 팀원들에게 너무 감사합니다. 특히 Mosu, jomir 고맙습니다 ^^.

 

1. 그 동안 프로젝트를 유지보수하고 정리해 나갈 생각입니다.

RxSwift와 아키텍처를 학습하고 공부해 보았지만, 아직 완전히 내 것이라는 생각은 들지 않습니다. 코드를 살펴보고 최적화시켜 나가며, Rx와 아키텍처를 좀 더 학습하려 합니다.

 

2. 기본기에 충실하려 합니다.

기본기가 무엇일까?라는 생각을 많이 해보았습니다. 주니어 개발자에게 기본기가 가장 중요하다는 말은 들었지만, 기본기가 무엇인가에 대한 생각은 의문이었습니다. 그리고 저는 지금 기본기란 써드파티가 아닌 퍼스트 파티를 이용해 모든 프로젝트를 완성할 수 있는 것이라고 정의했습니다. 그러기 위해 Swift에 대한 이해도를 높이고자, 문법 및 Swift의 장점과 특징을 좀 더 공부해 나가고 정리할 생각입니다. 

 

3. CS를 적극적으로 공부하다

솔직히 컴공을 전공하고 있지만, 교수님들이 CS지식으로 강조할 때, "아 난 개발자 할 건데 앱, 웹이나 가르쳐주시지 뭔 CS야" 했습니다. 근데 이제는 알 거 같습니다. 역시 교수님들이 옳으셨습니다. 개발을 깊게 학습을 하면 할수록 결국은 CS로 회귀하는 거 같습니다. 플랫폼은 금방 배울 수 있지만, 근간이 되는 CS는 뼈대가 되는 걸 뼈저리게 느낍니다. 더 늦지 않게 뼈대를 단단하게 만들려고 합니다.

 

4. 협업을 하며 팀원들의 목소리를 경청하려고 합니다.

그동안은 프로젝트를 진행하며, 더 좋은 성과를 낼 수 있는 의견을 근거를 대며 설득하려고만 노력했던 거 같습니다. 하지만 이번 경험을 통해 세상에는 정답이 없고, 이유 없는 의견을 없다는 것을 몸으로 직접 느꼈습니다. 상대방을 설득하기보다는 상대방의 의견을 들어보려고 노력 하려합니다.


마무리

글쓰기 재능이 없어 두서없이 쓴 거 같습니다 ㅎㅎ. 조언이나 피드백은 언제나 환영합니다!

728x90
반응형

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

[회고록] AppleDeveloperAcademy 후 신입 iOS 개발자에 대한 생각과 삶의 방향 정리  (0) 2024.12.20
[회고록] Apple Developer Academy 3기를 수료하며  (0) 2024.12.18
'회고록' 카테고리의 다른 글
  • [회고록] AppleDeveloperAcademy 후 신입 iOS 개발자에 대한 생각과 삶의 방향 정리
  • [회고록] Apple Developer Academy 3기를 수료하며
kimsangjunzzang
kimsangjunzzang
루피 님의 블로그 입니다.
  • kimsangjunzzang
    루피 님의 블로그
    kimsangjunzzang
  • 전체
    오늘
    어제
    • 분류 전체보기 (104) N
      • iOS (63)
        • Swift (34)
        • UIKit (9)
        • SwiftUI (8)
        • RxSwift (12)
      • FE (8)
        • 모던 자바스크립트 (3)
        • HTML (5)
      • Operating System (1)
      • 트러블 슈팅 (5) N
      • 바로 안 나오면 모르는거다 (4)
      • Algorithm (20) N
      • 회고록 (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    ViewController
    task
    프로그래머스
    Concurrency
    swift
    HTML
    uikit
    디자인 패턴
    boj
    SwiftUI
    arc
    백준
    state
    C++
    web
    rxswift
    AppleDeveloperAcademy
    ios
    알고리즘
    Algorithm
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
kimsangjunzzang
[회고록] AppleDevloperAcademy 프로젝트 정리 및 공부 방향 설정
상단으로

티스토리툴바