본문 바로가기
일상생활

[Apple Developer Academy] 9개월을 마친 후, 전체 프로젝트 후기

by DuncanKim 2023. 12. 12.
728x90

[Apple Developer Academy @POSTECH] 9개월을 마친 후, 전체 프로젝트 후기

 

 

3월 회고를 한지가 어제 같은데, 배찌로 살았던 2023년 3월부터의 아카데미의 생활이 끝이났다. 배찌에서 김동현으로 다시 돌아오기 위한 마무리를 하기 위한 후기를 작성해보려고 한다. 정말 많은 일들이 있었고, 작성하지 못한 회고도 존재한다. 그렇기에, 이번 글에서는 MC2부터 Macro까지의 프로젝트 회고와 아카데미 생활 전반에 대해 돌아보고자 한다.

 

 

 1. MC2(20230410~20230519)

 

https://apps.apple.com/kr/app/%EB%B2%84%EB%8B%9D%EB%B2%84%EB%94%94/id6449227563

 

‎버닝버디

‎나의 친구와 함께 버닝버디를 사용해봐요! 파트너와 연결해서 운동을 같이하고, 서로의 운동 데이터를 공유합니다. 나와 파트너 모두 목표 칼로리를 달성했다면, 핑크 덤벨을 하나 얻을 수 있

apps.apple.com

 

1) 나의 소중한 누군가에게 필요한 앱

 

본격적으로 앱 개발이라는 것을 시작한 프로젝트이다. 이전 MC1에서는 Xcode를 켜지도 않았었기에, 본격적으로 이때부터 개발을 시작했다고 할 수 있겠다. "소중한 누군가에게 필요한"이라는 큰 주제를 두고, 어떤 사람에게 무엇이 필요할 지를 하나의 그림으로 그려보고, 비슷한 사람들끼리 모여 이야기를 나누었다.

 

나는 여자친구가 건강해졌으면 좋겠다는 그림을 그렸었고, "헬스케어"와 관련된 사람들이 열댓 명 모였었던 것 같다. 그러고 자유롭게 이야기를 나누었는데, 누군가가 신체적으로 건강해졌으면 좋겠다는 생각을 하고 있는 무호, 웨스트, 루나, 예나, 제이, 나 총 여섯 명과 함께 모일 수 있었다. 신체 건강이라는 큰 주제를 가지고 있긴 했지만, 팀원들의 관심사가 "운동"과 관련이 있긴 했다. 나도 그때 한창 크로스핏을 시작하고 러닝도 하는 등 열심히 운동하기도 했었고, 건강 증진이라는 효능을 체험하고 있었고 널리 전파하고 싶었기에,,, 이야기가 잘 되었다.

 

 

2) 그래서 무엇을 만들 것인가

 

누구를 위해, 무엇을 어떻게 만들어서 제공할 것인가 하는 생각들을 팀원들끼리 정리하는 시간을 3주간 가진 것 같다. 우리는 20대(친구)와 50대(부모님)의 건강을 각자 생각하고 있었는데, 누구를 타겟팅 할 것인지, 자료조사를 해보기도 하고 유저 리서치를 하기도 하고, 인터뷰를 하기도 하고,,, 정말 많은 회의와 조사를 기획하는 동안 진행했다. 개발에 필요한 것들만 알아가는 것이 아니라, 개발 외적인 것들을 많이 했었고 새로운 분야를 많이 알게 되었다.

 

 

그 과정을 통해, 페르소나를 만들고, 솔루션 컨셉을 정하고, 유저 저니맵을 만들고 플로우 차트를 확정하고 Lo-fi를 그리고 Hi-fi를 그리는 등의 개발 밑작업을 완료하였다. 그 과정에서 가장 정하기 어려웠던 부분은 컨셉을 잡는 것이었다. 운동을 하기 싫은 사람들에게 어떻게 하면 더 운동을 잘하게 만들 수 있을까에 대한 여러 가지 의견이 있었고, 더 참신하고 좋은 견해를 만들어내는 것에 많은 힘을 쏟았다.

 

그 결과, 운동 초보자들이 함께 운동을 해서 캐릭터를 키우고 경쟁하며 운동 습관을 만들어가는 앱이라는 컨셉이 나왔다.

 

같이 운동할 때, 운동 초보자들이 더 재미있게 운동할 수 있고, 그래도 나와서 운동하겠지... 하는 생각이었고 캐릭터를 키우며 성취감을 느낄 수 있을 것이라 생각했다. 함께와 재미가 이 앱의 핵심 가치가 되었다. 이 가치들을 컨텐츠화 하고, 캐릭터로 만들어 본격적으로 개발을 하기 시작했다.

 

3) 어떻게 만들 것인가?

우리는 iOS앱을 사용해야만 했다. 그리고 SwiftUI라는 프레임워크를 사용하여 앱을 개발하는 제약이 주어졌다. 그래서 iOS 앱이어야만 사용할 수 있는 기능을 활용해서 더 재미있게 컨텐츠를 즐기게 하고 싶었고, 그러다 Nearby Interaction이라는 프레임워크를 알 수 있었다.

 

https://developer.apple.com/documentation/nearbyinteraction

 

Nearby Interaction | Apple Developer Documentation

Locate and interact with nearby devices using identifiers, distance, and direction.

developer.apple.com

 

Nearby Interaction은 특정 기기 사이의 위치, 방향을 인식할 수 있는 기능이다. 이것을 활용해서 운동하는 파트너와 아이폰을 접촉시켜 오늘 출근 도장마냥 찍어주고, 끝날 때 찍어주면서 서로의 운동 기록을 교환하는 기능을 넣어보는 것이 어떨까 했다. 이전 1기에서 니어캐치라는 앱이 있었는데, 그것을 약간 벤치 마킹하기도 했다.

 

Nearby Interaction으로 기기의 위치가 8cm 미만으로 줄어들었을 때, 상호 기기가 연결되고, 데이터를 공유할 수 있는 MultiPeerConnectivity를 사용하여 사용자의 데이터를 전송할 수 있도록 하면 재미있는 기능이 완성될 것 같았다.

 

https://developer.apple.com/documentation/multipeerconnectivity

 

Multipeer Connectivity | Apple Developer Documentation

Support peer-to-peer connectivity and the discovery of nearby devices.

developer.apple.com

 

서버 통신은 따로 두지 않았다. 일단은 상호간의 교류가 중요했기에 추후 개발을 한다고 하면 연결해 보기로 하고 작업을 들어갔다. 다만 데이터는 CoreData를 사용하여 기기 내부에 저장하고 앱에 관련된 데이터를 사용할 수 있게 만들기로 하였다.

 

개발기간 동안 나는 아직 SwiftUI에 익숙하지도 않았고, MC1 기간 동안 Xcode를 들어가보지 않아 초반에는 많이 헤맸다. Git도 오랜만에 만지는 바람에, 다시 익숙해지는데 1주 정도의 시간이 걸렸던 것 같다. 그래도 떨어진 Swift Student Challenge에서 SwiftUI를 사용해 뭐라도 만들어봤던 덕분에 오래 걸리지는 않았다. 약 15일 정도 개발을 진행한 것 같다. 개발은 화면을 우선적으로 개발하고, 그 위에 기능을 얹는 방식으로 진행했다.

 

내가 담당한 부분이 Navigation Depth가 조금 많이 깊었다. 그래서 뒤로 돌아갔을 경우, 처리해줘야 할 로직들을 일일이 개발하면서 이야기를 나누고 만들거나, 혼자 생각할 수 있는 부분은 혼자 생각하면서 만드느라 늦어지기도 했다. 

 

Nearby Interaction과 관련된 부분은 코드는 일부 알고 있었지만, 내 코가 석자라 많이 도와주지 못했고, 코드 리뷰도 잘하지는 못했다. 나중에 공부를 해보며 어떻게 연결되고 해제되는지, MPC와 같이 쓸 때, 연결 순서라던지 하는 것들을 공부하기도 했다. 또한 재사용이나 모듈화에 대한 개념은 아예 없이 개발을 했던 터라, 초반 개발에서는 나중에 리팩토링해야지 하는 생각으로 개발하는 것이 맞는데, 아예 그게 불가능한 방식으로 코드를 짜놨었다..(최근 확인해 보니 그렇더라..).

 

최종적으로 쇼케이스 직전까지 개발을 마무리하여 작동하는 앱은 만들어 놓을 수 있었다. 첫 개발인만큼 아쉬운 부분도 많았지만, 실력이 출중한 버닝버디팀 개발자들 덕분에 나의 헛발질들을 많이 가릴 수 있었다.

 

4) 무엇을 만들었는가?

https://www.youtube.com/watch?v=Cr9t__kaduU

이렇게 두 개의 아이폰을 가지고 같이 운동을 할 수 있는 앱을 만들었다. 앱 심사때 만든 데모 영상이지만,,, 지금 작동영상을 찾으려니 제대로 된 것이 없다...!

 

두 명이 운동을 시작하기 전에, 각자의 아이폰을 맞대어 연결시키고 난 후, 각자의 애플워치에 운동 기능을 켜고 난 후, 운동을 한다. 그런 다음 운동을 종료한 다음, 애플 워치에서 운동을 종료한 후, 한 번 더 아이폰을 맞대어 연결시켜 오늘 운동을 한 기록을 공유한다.

 

둘 다 각자가 설정한 운동량 이상을 운동했다면, 핑크 덤벨을 하나 받게 되고, 핑크 덤벨을 많이 쌓으면 쌓을 수록 캐릭터가 진화한다.

 

이렇게 66개를 얻으면 최종적으로 푸시 저크를 하고 있는 버니를 볼 수 있다. (추정되는 무게는 약 70kg...? 나도 못 든다)

이렇게 앱을 만들었고, 최종적으로 App Store에 배포까지 완료하고, MC2를 마무리하였다. 지속적으로 발전시켜 나가기 위해 주기적으로 회의를 진행했고, 내년에 계속 개발해 나갈 예정이다. 두 명이서 하는 기능도 존재하면서, 혼자 키워나가는 모드 그리고 서버 연결을 통해 다른 사람들과 상호작용할 수 있는 앱으로 바꿔놓고, 안드로이드도 같이 할 수 있도록 개발을 진행할 예정이다.

 

5) 최종 셀프 회고

 

정말 좋은 사람들을 아카데미 초반에 만나 많은 것들을 경험했고, 배웠다. 기술적으로 부족한 부분을 스스로 채워가는 방법을 조금이나마 알 수 있었고, 다른 분야의 사람들과 어떻게 소통하는지, 더 좋은 프로덕트를 만들어가는 것에 필요한 부분이 무엇인지를 알아가는 시간이었다. 다만 더 많은 책임감을 가지고 혼자 해결하려고 하지 말고, 팀원들의 역량을 더욱 믿고 그를 바탕으로 프로젝트를 만들어가는 방법을 조금은 더 고민하고 닦아나가야겠다는 생각을 한 프로젝트였다.

 

긍정적이고 늘 팀원들을 격려하여 더 좋은 방향으로 갈 수 있도록 고민하고 정리해 준 내 친구 무호, 언제나 팀내 유일의 F로써 감동을 주면서 T적으로 어려운 기능을 척척 개발하고 팀 내 이야기한 사항을 잘 정리해준 웨스트, 스스로 좋은 방향을 고민하고 언제나 발전하려고 노력하는 모습을 본 받고 싶은 루나, 디자인은 역시 타고난 감각과 금손과 논리적인 디자인이 함께 나올 수 있다는 것을 깨닫게 해준 예나, 조용하게 맡은 어려운 미지의 헬스킷을 스스로 해결하며 팀의 프로젝트 속도를 높여준 제이. 이 다섯 명과 함께하며 배운 것이 많고, 앞으로도 좋은 인연이 이어졌으면 좋겠다!

 

 

2. NC1(새싹톤)

https://masterpiece-programming.tistory.com/333

 

새싹톤 1차, 2차 통과와 예선, 본선 그리고 후기

새싹톤 1차, 2차 통과와 예선, 본선 그리고 후기 서울의 다양한 문제를 아이디어와 디자인, 기술로 해결하고 싶은 팀 모집 MC2가 끝나가던 어느 날, 새싹톤 이야기가 들려왔다. XX톤, 해커톤이라고

masterpiece-programming.tistory.com

이전 작성한 것으로 갈음한다.

참고로 이 팀에서 진행한 프로젝트도 다른 방식으로 변경하여 앱을 지속적으로 만들어나갈 생각이다.

 

 

3. MC3(20230619~20230804)

https://apps.apple.com/kr/app/tering/id6464368312

 

‎Tering

‎Tering를 통해 자세를 피드백 받고, 내 스윙 점수를 기록해보세요! ● Perfect, Bad로 알려주는 스윙 자세 피드백 스윙을 하고 난 후 즉각적으로 자세에 대한 피드백을 받을 수 있어요. Perfect를 향해

apps.apple.com

 

1) Surprise & Delight

MC3는 러너들에게 사전에 어떤 역할을 맡아보고 싶냐는 사전조사를 한 것을 바탕으로 구성되었다. 러너들은 각자 랜덤으로 배정된 팀에 들어가서 활동을 진행했다. 첫 팀원은 나까지 6명이었는데, 5명을 첫 주에 볼 수 있었다. 한 분은 개인적인 사정으로 아카데미를 나가게 되었다. 테드, 레이, 다나, 승 그리고 나 이렇게 5명이 Surprise와 Delight에 대한 이야기들을 주고받았다.

 

어떨 때 놀라운가? 어떨 때 기쁜가? 아카데미에서 진행하는 것에서는 에어팟을 처음 개봉했을 때, 아이폰에서 딱 에어팟이 처음으로 개봉되었다는 사실을 알려주는 것, 에어팟 케이스를 열 때, 아이폰에서 즉각적으로 반응하는 것 등을 예시로 들어주었다. 이러한 경험을 사용자에게 제공할 수 있는 앱을 만들어라. 이것이 과제였고, 팀원들이 어떨 때 놀라운 지, 어떨 때 즐거운 지 의견을 나누었다.

 

 

우리는 처음에 "화장실의 위생"에 대한 화제로 이야기하였다. 1차원적이어서 직관적이고 누구나 이해할 수 있는 서프라이즈와 딜라이트였지만,  그다지 진행시키고 싶은 주제는 아니었다. 그래서 다른 논의를 하다 보니, MC2에 이어 또 운동이야기가 나왔다. 나는 그때 테니스를 배운 지 얼마 안 되었을 때이긴 한데, 승이 테니스를 즐겨 쳤고, 그 사이에 느낄 수 있는 놀라움과 기쁨에 대해 이야기해 주었다. 운동할 때 느낄 수 있는 즐거움과 놀라움을 Apple 기기를 통해 더욱 극대화하는 경험, 왜인지는 모르겠지만, 기술적인 발전과 기획적인 발전 두 가지를 모두 잡을 수 있을 것 같다는 생각이 들었다.

 

운동, 그중에서도 3명은 이해하고 있는 테니스를 바탕으로 프로젝트를 진행시켜 나가기로 했다.

 

2) 테니스, 그리고 4명(무엇을)

테니스를 할 때, 무엇을 하면 더 놀라울까, 어떤 순간에 디바이스가 작동하거나 어떻게 피드백해 주면 놀라울까를 고민하고, 인터뷰하고 자료조사를 하던 와중, 테니스를 가장 잘 치고 관심있게 보던 PM 승이, 취업으로 인해 아카데미를 나가게 되어 결국 4인조 그룹이 결성되었다.

 

그렇게 도원결의 후 F4를 결성...

 

아직 게임도 해보지 않았던 나의 실력으로는 테니스 본 게임과 관련된 어플은 개발을 진행할 수가 없었다. 그나마 해보고 있던 것이 그냥 포핸드 백핸드 스윙 정도였다. 가장 어렵다고 느껴지는 것이 있었다. 바로 반응을 바로 얻어서 내가 잘치고 있는지 못 치고 있는지 반응을 얻는 것. 그러면 스윙을 할 때마다 이걸 잘 치고 있는지, 못치고 있는지 알려주는 워치 앱과 그 기록을 확인할 수 있는 iOS앱을 만들어보자는 생각이 들었고, 이를 바탕으로 다시 자료조사, 유저 저니맵 등을 다시 만들고 정리했고, Lo-Fi 등을 정리했다.

 

애플 워치와 iOS 앱에 들어가는 플로우 차트와 Hi-Fi를 모두 그리면서 진행해야 했지만, 디자이너인 다나가 척척 잘해주고, 그에 필요한 밑 기술인 머신 러닝을 레이가 잘 공부해 온 덕분에 속도를 일단은 낼 수 있었다.

 

3) 애플 워치, 그리고 머신 러닝(어떻게)

우리 팀은 애플 워치의 가속도계와 수평계 센서를 활용하여 스윙 궤적을 인식하고, 그 스윙을 판단할 수 있는 모델을 학습시켜서 좋은 스윙인지 나쁜 스윙인지 판단하게 해주는 기능을 넣기로 했다. iOS 앱에서는 활동한 기록들을 더 깔끔하고 인터렉티브 하게 볼 수 있으며, 인스타그램 등으로 공유할 수 있는 기능을 넣기로 하였다.

 

일단 프레임워크는 Core Motion과 CreateML이다. 이 두 가지를 활용하여 스윙이 잘 된 것인지 잘못된 것인지 판단해 준다. 이 기능들은 AI에 지식이 있었던 레이가 담당해 주었다. 애플 워치에서 Core Motion을 활용해 가속도, 수평 센서값을 수집한 다음, 애플 워치에서 모델이 스윙을 바로 판단해 줄 수 있게 하였다.

 

https://developer.apple.com/documentation/coremotion

 

Core Motion | Apple Developer Documentation

Process accelerometer, gyroscope, pedometer, and environment-related events.

developer.apple.com

 

https://developer.apple.com/documentation/createml

 

Create ML | Apple Developer Documentation

Create machine learning models for use in your app.

developer.apple.com

 

 

이런 식으로 애플워치를 차고 있는 손목이 움직이면 바로 측정을 시작하고, 판단을 내려줄 수 있도록 기능을 만들었다. 이 기능이 워치가 잠들어있어도 기능하기 위해서는 HealthKit의 workoutSession이 필요했다. 이 기능도 구현하였다.

 

https://developer.apple.com/documentation/healthkit/hkworkoutsession

 

HKWorkoutSession | Apple Developer Documentation

A session that tracks the user’s workout on Apple Watch.

developer.apple.com

이렇게 하면 워치에 설정되어 있는 기본 운동 세션 말고도 우리가 커스텀해서 세션을 만들어서 백그라운드에서도 측정, 판단 로직이 동작할 수 있게 만들 수 있었다.

 

모든 스윙 연습이 끝난 후, 연습 결과를 워치에서 아이폰으로 전송하는 기능은 WatchConnectivity를 사용하였다.

 

https://developer.apple.com/documentation/watchconnectivity

 

Watch Connectivity | Apple Developer Documentation

Implement two-way communication between an iOS app and its paired watchOS app.

developer.apple.com

 

나머지 iOS 앱의 기능은 모두 내가 개발하였다. MC2에서 완벽하게 하지 못한 화면 구현, 그리고 SNS 관련 기능 개발을 해보고 싶었기 때문이다. Core Animation을 사용해서 테링의 아이덴티티인 원형 링 차트도 서드 파티를 활용하여 알맞게 변형시켜 적용을 해보는 경험을 해볼 수 있었다. 더불어 카메라 기능을 활용해서 커스텀 화한 사진을 만들어 인스타 스토리로 공유할 수 있는 기능까지 만들 수 있었다.

 

 

 

두 가지를 힘주어 만들어보았다. 나머지는 CoreData 등 잔기술들이 들어가고, 차트 애니메이션 등을 넣는 등, 많은 화면을 단시간 내에 디자인에 맞추어 생산하는 방법에 대해 완전히 알 수 있었다.

 

 

4) 무엇을 만들었나?

아래는 내부용 홍보 영상이다.

 

기획 : 배찌 / 각본 : 배찌 머릿속 / 앞에 로고 : 다나 / 촬영 : 전부 / 편집 : 전부

이렇게 애플 워치와 아이폰을 활용해 헬스와 관련해서 뽑아낼 수 있는 기능들을 체험해 보았다.

 

 

5) 최종 셀프 회고

테니스 스윙을 판단해 주는 워치를 가지고 스윙의 궤적을 직접 판단하여 알려주는 앱은 없다. 그만큼 만들기도 막막하고 어려운 길이긴 했지만, 팀원들 모두가 다들 멋있게 잘 마무리해 주었다. 열심히 스윙데이터를 만들기 위해 500번의 포핸드, 백핸드 스윙을 만들어내며 좀 치는 테린이가 되었고, 한정된 인적, 물적 자원 안에서 좋은 프로덕트를 만들어낼 수 있는 방법을 알 수 있었다.

 

태평양 어깨 레이

 

개인적으로는 많은 기술적 성장을 얻을 수 있었던 프로젝트였다. iOS의 처음부터 끝까지 맡아 개발하면서 MC2 때 부족했던 것들을 보완하고 조금 더 재사용하고 전체의 구조를 생각하며 파일들을 만들고 코드를 만들었던 것 같다. 그리고 조금 더 심화된 기술들도 공식 문서를 봐가면서 하나씩 만들어내는 등 앞으로 써먹을 수 있는 "개발 방식"내 것으로 만들었던 시간이었다.

 

자기만의 계획을 가지고 전체 프로젝트에 차질이 없도록 워치 전반에 대한 개발을 잘 진행해 준 테드, 난도 높은 기능들을 개발하기 위해 기반을 잘 닦아주고 팀원들과 이야기하며 프로덕트의 질을 높여가는 방법을 아는 레이, UI/UX의 권위자이자 우리가 부족했던 기획의 부분까지 잘 담당해 주었던 기획자이너의 자질이 충분한 다나에게 많은 것을 배우는 시간이었다. 일 외적으로도 재미있었던 사람들... 같이 또 일을 같이 하고 싶을 것이다.

 

 

 

4. NC2(20230817~20230820)

https://apps.apple.com/kr/app/%EC%82%BC%EC%B5%9C%EB%AA%87/id6462794327

 

‎삼최몇

‎삼최몇에서 각종 운동의 기록들을 저장해놓고, 활용해보십시오. 삼최몇은 1RM을 모르는 사람들에게 1RM이 얼마정도 일지 계산도 해줍니다.

apps.apple.com

 

1) Hometion

아카데미에는 미니 챌린지 중간에 나노 챌린지라는 것이 있다. MC3가 끝나고 나노 챌린지를 맞이하게 되는데, 이때 진행했던 개인 프로젝트이다. 다들 이 기간에 정션 아시아 2023 해커톤을 다들 나갔었는데, 나는 포트폴리오를 내지 않은 바람에 참여를 할 수 없게 되었다. 그래서 방구석 정션을 하루간 진행했는데, 시간을 한정해 두고 딱 만든 것이 삼최몇이다.

 

기획, 디자인, 개발을 모두 한꺼번에 진행, 그리고 배포까지 총 3일에 걸쳐서 진행했다. SwiftUI를 사용하였고, 간단한 탭바를 사용하여 화면 전환과 간단한 기능들을 만들어보았다.

 

2) 삼대 몇 치냐?

나는 크로스핏을 이때쯤 한 5개월쯤 한 상태였다. 크로스핏은 3대보다 더 많은 역도 동작들이 존재한다. 클린, 저크, 스내치, 푸시 프레스, 스러스터.... 등등등 이전에 했던 무게를 얼추 기억해서 그 비슷한 무게를 찾아가야 한다. 하지만, 초반에 운동할 때, 특정 운동을 할 때 내가 얼마나 들었었지...? 하는 생각이 너무 많이 들었다. 지금은 얼추 그 무게를 찾아서 하긴 하지만 아직도 간간히 전에 얼마나 들었는지 기억이 안 날 때도 있다.

 

그래서 그 운동들까지 모두 넣어서 운동 PR 기록들을 핸드폰에 저장해 두는 기능과 크로스핏은 파운드 단위를 사용해서 무게를 재는데, 그 또한 익숙지 않았어서 그것을 kg로 변환하거나 kg를 lb로 변환시켜 주는 계산기까지 넣어보기로 하였다. 앱 디자인은 그냥 대충 나의 필기체가 잘 어울리는 디자인으로 하고, 초록색과 검정으로 컨셉을 정했다. 그러고 피그마 작업 그런 거 없이 Xcode에서 디자인하고 맞추는 작업을 해서 뚝딱 만들어보았다.

 

정말 간단한 앱이라서 더 빠르고 간결하게 만드는 것이 홈션의 핵심이었다. 만드는 건 4시간 만에 끝낼 수 있었고, 간식 좀 먹다가 배포해 줬다.

 

3) 셀프 개인 회고

혼자 필요로 하는 것을 이제는 뚝딱 만들어낼 수 있다는 것을 나 스스로가 알 수 있고 확신을 가진 프로젝트이다. 수정해야 할 부분은 너무나 많고 부족한 점이 많지만, 그래도 충분히 사용할 수 있는 앱을 만들어냈다는 것에 뿌듯함을 느낄 수 있었다. 추후 이 친구도 토이 프로젝트로 계속 만들어나가고, 서버를 활용해서 사용자 랭킹을 공유하는 것도 한 번 만들어보려고 한다. PR 인증하는 것도 한 번 만들어볼까...

 

 

 

5. Macro(20230904~20231124)

https://apps.apple.com/kr/app/%EC%B9%B4%EB%AE%A4-carmu/id6467243718

 

‎카뮤 Carmu

‎카뮤는 아래와 같은 기능을 제공합니다. [ 매일 출발 시간에 맞춰 간편하게 탑승 여부를 확인 ] ● 셔틀 운행 전에 기사님은 운행 여부를 터치 한 번으로 탑승자들에게 알려줘요 ● 오늘 셔틀

apps.apple.com

 

1) 모빌리티, 그 어디에선가

우리 팀은 자발적으로 모이게 된 계기가 모빌리티 그 어디에선가 맞는 부분이 있었다. 관심 있는 아이템을 중심으로 해서 매크로 팀을 조직하였고 그 결과 우니, 테드, 레이, 젤리빈, 젠, 그리고 나 이렇게 여섯 명 팀이 구성되었다. 테드와 레이는 MC3에서 좋은 핏을 보여줬고, 젤리빈은 새싹톤을 하며 같이 합을 맞춰보았었다. 그래서 더 잘 이해하고 프로덕트를 만들어 나갈 수 있을 것이라 보았다. 우니는 나의 룸메다. 좋은 형님이자 개발 실력 부분에 있어서는 아카데미 내에서 손꼽히는 개발자 같이 일해보고 싶었다. 젠은 디자이너로 참여하였고, 나와 이전 프로젝트를 같이 하지는 않았지만, 나이가 같은 모임의 친구였다. 또한 좋은 평가를 듣고 있는 디자이너이기에 같이 해보고 싶었다.

 

결국 나를 중심으로 사람들이 모였다.

 

나는 책임감이 있었다. 기획자가 없는 만큼 그 기획의 부분을 잘 되도록 만들어야 하고, 팀원들이 더 역량을 잘 발휘할 수 있도록 조율하면서 나는 나대로 개발에 대한 욕망이 있었기 때문에, 그 또한 잘 해내야 했다. 부담감이 있었지만, 일단은 팀원들과 무엇을 하고자 하는지, 더 이야기하고 심층적으로 이야기하는 기획의 과정을 거쳤다. 빨랐지만, 우리는 합의하는 과정에 있어서는 좋은 속도와 방향을 가졌으며 "카풀"이라는 나이브한 주제를 가지고 기획에 들어갔다.

 

2) 카풀, 빨랐던 기획, 그리고 개발

이상하리만치 무엇인가 빨랐던 기획이었다. 추석 전까지 모든 것을 끝내놓고 추석 때 개발에 들어갈 것 같은 느낌으로 우리는 기획을 진행시켰다. 우리 아카데미 내부의 카풀팟, 택시팟을 보면서 아침에 같이 가는지, 얼마나 늦는지 등을 실시간으로 알려주는 앱을 만들어보자는 합의가 굉장히 빨랐다. 논리적으로 이상할 것은 없었다. 누군가는 필요했고, 말이 되는 앱이었기 때문이다. 아침에 불필요한 전화, 메시지를 줄여주는 효과를 가져다줄 수 있었고 유저 테스트는 문제가 없었다.

 

그래서 개발을 시작했다. 개발자가 이전보다 더 많아진 만큼 파트를 확실히 나누어서 개발을 진행했다.

 

주요 앱의 메인화면 플로우

 

나는 그 카풀 서비스를 쓰기까지 필요한 카풀 그룹을 만드는 작업을 담당했다. 카풀 그룹에서 필요로 하는 출발지/도착지 설정, 주소 검색, 네이버 맵 API 관련 뷰 구현을 해야 했다. 레이는 그 이전의 애플 회원가입, 로그인 그리고 설정화면을 담당하고, 테드는 푸시 알림과 여러 사용자 별 메인화면을 담당했고, 우니는 매일 카풀이 시작되고 나서의 화면을 전부 맡아서 진행했다. 양도 많았지만, 다들 착실히 이슈를 만들고 자신의 PR을 날려 리뷰를 받고, 누군가의 PR에 본인의 리뷰를 달아주었다.

 

짧은 시간에 많은 PR과 리뷰..

 

다들 기획이 빨리 된 덕에 쭉쭉 개발을 했고, 무엇인가를 만들어냈다. 중간발표까지 어느 정도의 프로덕트를 만들어낼 수 있었고, 실제 사용자들의 이야기들을 들어볼 수 있었다.

 

 

3) 기획 부채와 청산

빠른 기획과 개발과정으로 인해 돌아보는 시간이 적긴 했다. 받은 피드백들을 하나씩 곱씹으니, 정리를 하고 더 앱을 뾰족하게 만들어야겠다는 어느 정도의 생각들이 일치했었다. 중간발표 이전까지 만들어야 하는 수준까지의 앱을 만들지도 못했고, 미완성의 기능을 개발한다고 해서 의미 있다고 평가되는 피드백들에 부합하는 것들은 아니었기에 핵심부터 다시 찬찬히 들여다보는 것이 필요했다.

 

필요한 것과 필요 없는 것을 분할하고, 단계에 맞춰 다시 개발해야 한다.

 

그래서 애써 공들여 만들어놓은 화면을 쓰지 않는다 하더라도, 기획으로 다시 돌아가서 누가 쓸 것인지, 그 기능이 왜 존재하는지, 그 버튼 또는 텍스트는 왜 존재해야 하는지, 그 화면은 왜 존재해야 하는 지를 다시 고민해 보며 기획/디자인 Revolution을 진행하였다. 플로우 차트를 대거 수정하고 핵심 기능을 축소하여 최소한의 것만 남겨두는 것까지 총 1주일의 시간이 걸렸다.

 

 

짧은 시간 안에, 3.0과 4.0을 만들어내며 "지인 사이의 카풀을 더 편리하게 만들어주는"이라는 컨셉을 더욱 확실히 보여줄 수 있는 플로우, UI/UX를 만들어내기 위해 많은 노력을 가했다. 덕분에 많은 화면이 줄어들었으며, 개발을 해야 할 것도 조금 더 명확해질 수 있었던 것 같다. 결론적으로 무엇을 만들어내는지 확실한 그림을 그려놓지 않은 채, 빠른 진행을 위해 달리고자 했던 나의 마음이 이러한 사태를 만든 것 같아 조금은 팀원들에게 미안한 마음이 들기도 한다.

 

부단히 노력해 준 덕분에 앱이 완성되어가고 있었지만, 쇼케이스를 생각해 놓고 본다면, 처음 오는 사람들에게 "카풀"이라는 컨텐츠를 설명하고 좋은 앱이라는 것을 설명해 줄 자신은 없었다. 공감대 자체를 형성하기 어려웠기 때문이다. 포항이라는 지역 특성상, 이러한 경험을 해본 사람들은 있겠지만, 정기적으로 카풀을 해서 다니는 사람들이 포항도 그렇고 전국적으로 얼마나 되겠는가...? 그리고 있다고 하더라도, 만약 관심을 가지는 사람이 있더라도 어떤 공감 포인트를 찾아서 이 앱을 세일즈 할 것인가 하는 고민이 들었다.

 

그런 와중에 우리 팀은 마지막 멘토링을 받게 되는데,,, 이분을 만나게 된다.

 

셔틀앱 카뮤의 할아버지

 

: 카풀이라는 컨텐츠, 네이밍 자체를 셔틀버스와 같은 통학의 개념을 넣으면 더 많은 사람들이 이용할 수 있을 텐데... 왜 카풀인 거죠?

 

모두들 카풀일 수밖에 없는 이야기만 할 수 있을 뿐이었다.

그렇다. 조금만 바꾼다면 더 이야기할 수 있는, 공감을 불러일으킬 수 있는 부분이 많은데, 애초에 이 부분을 왜 생각하지 못했나?

 

우리는 네이밍과 컨셉을 조금 수정한 카뮤를 만들 수 있었다. 기사님이 어디쯤 오고 있는지에 대한 궁금증을 해결해 주는 앱... 셔틀버스가 출발했는지, 지연되고 있지 않은지 알 수 있는 앱, 기사님이 탑승자들에게 간편하게 지연 사실을 알릴 수 있는 앱, 카뮤를 만든 것이다.

 

 

4) 무엇을 만들었나?

메인 탑승지도 화면

쇼케이스 부스

 

 

5) 쇼케이스와 셀프 개인 회고

쇼케이스는 아주 훌륭하게 준비하였고, 모두가 잘 참여해 주면서 성공적으로 마칠 수 있었다. 많은 사람들이 앱의 취지에 공감해 주었고, 더 발전했으면 좋겠다는 이야기를 해주었다. 아쉬운 점은 미리 컨셉을 변경하지 않아 실 사용자의 피드백 자체가 없었다는 점이었다. 더 빠르게 고민하고 미리 기획적으로 탄탄하게 잡아갔으면 더 좋은 기회를 잡을 수 있지 않았을까 하는 것이다.

 

개발도 개발이지만, 이번 프로젝트는 팀원 전반을 조율하면서 더 나은 방향으로 프로젝트를 끌어가는 역할을 더 많이 했던 것 같다. 내 일을 하면서 전체의 방향을 보고 잘 되고 있는 것인지, 더 나은 방법은 없는지를 계속 팀원들과 이야기하는 것이 리드하는 자가 가져야 하는 주요한 역량이라는 것을 체감했던 프로젝트라고 할 수 있겠다. 개발적으로는 UIKit이라는 프레임워크를 기반으로 Naver Map, MapKit 등을 활용하여 내가 원하는 기능들을 커스텀해서 개발하는 방법을 더 익히는 하드스킬 적인 부분에서도 성장이 있었다. 그만큼 코드도 많이 치고, 많은 화면들을 또 만들어내며 이번엔 Firebase라는 간단한 서버와 앱을 연동시켜보기도 했으니까.

 

 

좋은 팀원들과 함께하며 한 번 더 나아진 나의 모습을 볼 수 있었던 시간이었다. 9개월 간 18동 101호에서 함께 즐겁게 지내며 일적으로도 많은 도움을 받고 항상 든든했던 우니, MC3에서 같이 했던 능력치보다 한 번 더 성장한 스킬들을 보여준 레이와 테드, 소파에서 항상 웃으며 팀의 분위기를 톡톡 튀게 해 주고 앱의 분위기를 메이킹하기 위해 많은 디자인을 해낸 젤리빈, 디자인을 꼼꼼하게 챙기며 나와 소통하며 개발자와의 소통을 계속해서 하려는 모습을 보여주고 많은 이야기들을 해준 젠. 모두에게 감사하다.

 

 

 

6. 나가며

 

MC1부터 매크로까지를 한 번 돌아보았다. 아카데미 2기의 오전반 배찌는 대체적으로 프로젝트에서 행복했다. 금전적인 것을 떠나서, 좋은 프로덕트를 만드는 방법에 대해 고민하고 만드는 것에 지향점을 두고 있는 사람들과 프로젝트를 할 수 있는 기회는 쉽게 오지 않을 것이라고 생각한다.

 

1년 전의 나는 사람들과의 협업 경험이 없다고 해야 할 정도였다. 굳이 해봤자 이전의 백엔드 스쿨에서 한 번 정도...? 그것도 롤이 정확히 정해진 상태도 아니었고 상품을 고민한 후에 기술을 넣는 게 아니라 기술을 고민하여 상품을 만들었던 것이라 부족한 점이 없지 않았다. 그런 내가, 총 다섯 번에 걸쳐 사람들과 같이 일하는 경험을 짧은 시간 안에 가지게 되었다. 

 

"사람 사이에서 더 좋은 역할을 해낼 수 있는 방법에 대해 고민하고, 더 좋은 것을 만들어낼 수 있는 능력을 기르는 시간"

 

이라고 이 시간을 압축할 수 있다면 할 수 있을까. 물론 기술적인 성장에 있어서 더 깊어졌으면 하는 마음이 있었지만, 더 깊어질 수 있는 방법을 알아가는 것만으로 충분한 것 같다. 앞으로 스스로 해야 할 것들이 많은데, 여기에서 결실을 보자고 하는 것은 큰 욕심이기도 하니까. 어떻게 공부하고 무엇이 필요한지를 알아내는 그 능력은 충분히 배웠으니 됐다.

 

늘 무엇인가가 끝나면, 나는 다른 사람들에게 어떤 사람이었을까? 라는 생각을 굳이 해본다. 아니 처음으로 돌아가서 다른 사람들에게 어떤 사람으로 비춰지고 싶었던 가를 다시 한 번 생각해본다. 책임있게 행동하고, 말을 하면서 동시에 움직이는 실천력을 가지고 있는 사람, 그리고 기술적으로 깊어지기를 바라는 사람, 인생의 지향점이 충분히 많아 늘상 무엇인가를 하려고 하는 사람. 이렇게 보이고 싶었던 것 같다. 회고를 들어본다면 절반의 성공, 절반의 실패가 있다고 자평할 수 있을 것 같다.

 

절반의 실패는 또 다른 시작점이 될 것이다. 내년의 목표가 될 것이니.

내년에는 이렇게 프로젝트를 진행해보려고 한다.

 

 

출처 : https://jojoldu.tistory.com/763

 

이제 그림 그리는 방법은 얼추 안 것 같다. 이제는 진짜 운영하면서, 그와 관련된 문제들을 해결하는 것. 그 기술들을 익혀나가는 것. 그리고 그것을 튼실히 다져나가는 것. 내년에는 그렇게 살고, 정말 그럴 수 있는 회사로 가보고자 한다.

 

이제 아카데미 러너인 김배찌씨는 2023년의 역사에 남기고 다시 Duncan 또는 김동현으로 돌아갈 시간. 뭐 아카데미 Alumni 행사 등등에서는 배찌로 불리겠지만. 아무튼,

 

배찌는 아카데미의 많은 인연들 덕분에 행복했습니다.

Good Bye.

See You Again!

728x90

댓글