[Challenge 1 회고] 성과보다 성장에 집중했던, 나의 첫 번째 애플 디벨로퍼 아카데미 챌린지

Asher(애셔/오효준)·2026년 4월 19일

안녕하세요, 애플 디벨로퍼 아카데미에서 열정적으로 항해 중인 러너 Asher(애셔)입니다.

아카데미에 들어와서 처음으로 맞이한 'Challenge 1'이 드디어 마무리되었습니다. 단순히 앱 하나를 뚝딱 만들어내는 과정이 아니라, Apple이 추구하는 디자인 철학(HIG)을 체득하고, CBL(Challenge Based Learning)이라는 생소하지만 매력적인 학습 방식에 푹 빠져들었던 시간이었습니다.

중구난방으로 적어두었던 생각의 파편들을 모아, 저의 첫 번째 CBL을 기록해 보려 합니다.


1. "애플은 왜 이럴까?" HIG와 디자인에 대한 고찰

처음에는 그냥 "목록 보여주는 거 아닌가?" 싶었던 것들이 막상 HIG(Human Interface Guidelines)를 파고드니 용도가 확실히 다르다는 것을 알게 되었습니다.

캐러셀(Carousel) vs 리스트(List)

  • 캐러셀: 주목시키고 싶은 콘텐츠를 하나씩 강조하며 이미지에 좀 더 집중하게 만듭니다.
  • 리스트: 전체를 쭉 훑어볼 때 유리하며, 텍스트 위주로 정보를 전달할 때 핵심적인 역할을 합니다.
    "무엇을 보여주고 싶냐"에 따라 선택이 달라져야 한다는, 아주 기본적이지만 중요한 포인트를 배웠습니다.

애플이 '둥둥 떠다니는 버튼'을 싫어하는 이유

안드로이드에서는 흔한 FAB(Floating Action Button)를 왜 iOS에서는 잘 쓰지 않을까? 처음엔 의아했지만, iOS의 네비게이션 구조와 맞지 않을뿐더러 좁은 화면에서 사용자의 시야를 계속 방해하기 때문이라는 걸 이해하게 되었습니다. 제한된 영역 내에서 최적의 정보 경험을 제공하려는 애플의 철학을 엿볼 수 있었습니다.

구조의 명확성: 탭 / 네비게이션 / 모달

이 세 가지를 헷갈리면 UX가 꼬이기 시작합니다.

  • 탭: 앱의 최상위 영역을 이동할 때
  • 네비게이션: 같은 흐름 안에서 깊이 들어갈 때
  • 모달: 현재 흐름을 잠시 끊고 집중시킬 때 (Sheet 등)
    애플 앱들이 왜 다 비슷하게 생겼는지 이제야 이해가 갔습니다. 그 규칙 안에서 디자인하는 게 결국 '가장 iOS다운 앱'을 만드는 지름길이었습니다.

2. SwiftUI, 데이터의 흐름을 지배하다

머릿속에 있는 디자인을 코드로 옮기는 게 생각보다 더 어려웠습니다. 억지로 절대값을 쓰기보다 SwiftUI의 레이아웃 시스템을 이해해야 원하는 대로 나오더라고요.

  • @State & @Binding: 부모가 데이터를 갖고 자식에게 내려주며 양방향 싱크를 맞추는 구조. 이게 SwiftUI 데이터 흐름의 정수라는 걸 체감했습니다.
  • AppStorage & EnvironmentObject: 앱이 꺼져도 유지되어야 하는 데이터는 AppStorage로, 앱 전체에서 공유되는 메모리 데이터는 @EnvironmentObject로 관리했습니다.
  • 디스크 저장(Save/Load): 메모리는 앱을 끄면 사라지니, 디스크에서 데이터를 읽어 메모리로 올리고 바뀔 때마다 다시 저장하는 구조를 설계하며 데이터의 영속성에 대해 깊이 고민해 보았습니다.

3. '새천년' 팀과 함께한 CBL의 여정 (Engage)

멘토 하워드, 프라이데이와 함께 팀 9, '새천년'이라는 이름으로 시작했습니다. "앞으로의 새로운 천년을 이끄는 사람들이 되자"는 다짐과 함께요.

💡 Big Idea의 변화

처음엔 '웰빙'을 키워드로 잡았지만, 우리 팀원들이 진짜 하고 싶은 건 결국 포항과 아카데미에서의 '활동(Activity)'이었습니다.

PM이 없다보니 정말 다양한 의견들이 나와서 때로는 어려움을 겪었지만, 서로의 관점에 대해 자유롭게 이야기하며 "취향이 다양한 러너들이 포항 내 여가활동을 함께 할 수 있는 환경을 만들자"는 마일스톤(CS)에 도달했습니다.

우리의 Essential Question (EQ):

"어떻게 하면 다양한 사람들과 다양한 활동을 놓치지 않고 찾을 수 있을까?"


4. "안 힘들어요?" - 진실을 캐내는 '스몰토크' 리서치 (Investigate)

리서치 과정이 특히 기억에 남습니다. 대놓고 "설문해 주세요" 하면 진실되지 않은 답변이 온다는 걸 알았거든요. 모든 사람들이 인터뷰, 설문조사를 하게되면 바른 생활 어린이가 되는 것을 느꼈습니다😂. 그래서 우리는 '잠입 리서치'를 했습니다.

다른 팀 리서치를 도와준 뒤 "안 힘드세요?", "오늘 끝나고 뭐 하세요?" 같은 스몰토크로 시작해, 대상자가 리서치임을 인지하지 못한 상태에서 진짜 속마음을 들었습니다.

그렇게 모은 데이터는 상당했습니다. 시각화도 진행해 보았죠.

리서치를 통해 얻은 핵심 인사이트:
1. 줌챗과 컨플루언스는 익숙지 않아 정보가 파편화되어 있다.
2. 오후 세션이 끝나면 다들 방전된다. 그래서 '주말'이나 '단기성 이벤트'가 더 필요하다.
3. 호스트를 하고 싶지만 사람이 안 모일까 봐, 혹은 참여 확정에 대한 심리적 부담감 때문에 망설인다.


5. 아이디어의 확장과 구체화

우리는 수집한 데이터를 바탕으로 네 가지 방향을 치열하게 검토했습니다.

  • 번개 및 이벤트성 모임 포커스
  • '입소문'을 시스템화하는 리뷰/추천 시스템
  • 시각 자료(영상, 포스터)로 흥미를 끄는 릴스 스타일의 UI
  • 호스트의 부담(참여 확정의 거부감)을 줄여주는 사전 조사 시스템

결국 우리의 결론은 "정기 모임이 부담스러운 러너를 위해 맞춤형 추천으로 허들을 낮춰주는 앱"이었습니다.


6. 프로토타이핑: 종이에서 코드로

본격적으로 코드를 짜기 전, 페이퍼 프로토타입을 통해 흐름을 점검했습니다.

이 과정에서 멘토님들께 소중한 피드백을 받았습니다. "홈의 커뮤니티 기능은 과감히 빼고, 검색과 상세 페이지에 집중하라"는 조언 덕분에 핵심 가치에 더 집중할 수 있었습니다.

그 결과, 아래와 같은 앱을 완성할 수 있었습니다.


7. 회고를 마치며: "나는 SwiftUI와 조금 더 친해졌다"

이번 Challenge 1은 성과에만 집착하지 않고, 순전히 내가 배우고 싶은 것을 해나간 시간이라 만족도가 매우 높습니다.

처음 기획할 때 욕심이 많아 기능을 잔뜩 넣고 싶었지만, 결국 "이 기능이 진짜 필요한가?"를 자문하며 덜어내는 과정 자체가 실력이라는 걸 배웠습니다. 억지로 절대값을 쓰지 않고 프레임워크가 원하는 방식대로 따라가는 게 훨씬 자연스럽다는 것도요.

오랜만에 새로운 언어를 배우며 결과물에 집중하지 않고 학습 과정 그 자체를 즐겼던, 매우 의미 있는 시간이었습니다. 이제 이 자신감을 가지고 다음 챌린지로 나아갈 준비가 된 것 같습니다.

함께해 준 '새천년' 팀원들 (링쿠,유메,비비,쿼티,한), 그리고 멘토 하워드, 프라이데이 너무 감사합니다! 함께해 준 모든 분들 덕분에 아쉬움이 남지 않는 Challenge 1 이였습니다.

profile
Asher입니다. 하지만 Joon이라고도 불리는

1개의 댓글

comment-user-thumbnail
2026년 4월 20일

멋진 애셔

답글 달기