iOS 네카라쿠배 앱 5개 핵심 기능 클론코딩 프로젝트 기록

#iOS #MVVM #대규모 앱 개발


분야를 막론하고, 개발자라면 '클론코딩'이 무엇인지 모르는 사람은 없을 것이다. '나도 해볼까'라는 생각이라도 안 해본 개발자는 거의 없지 않을까 싶다.

이렇게 매우 잘 알려진 개발 관련 학습 방법 중에 하나인데도, 정작 클론코딩의 효과에 관련된 의견은 분분하다.
개발자마다 도움이 안 된다는 사람도 있고, 도움 된다는 사람도 있고.

하지만 나는, 개인적으로 클론코딩을 하는 건 찬성이다.
다만, 중요한 건 '어떻게 하느냐'에 달려있다고 생각한다. 가령 똑같은 특정 앱 클론코딩을 하더라도, 그냥 단순 화면 구성에 그치는 게 아니라 진짜 실무에서 쓰이는 툴을 활용해서 하거나 실제 소비자들이 사용한다고 가정하고 왜 이렇게 개발해야 하는지 생각하며 해봐야 한다는 거다.

그리고 이렇게 해야, 나중에 클론코딩 해본 프로젝트들 면접에서 설명하거나 포폴에 넣거나 할 때 그 수준이 훨씬 높아지고 경험이 풍성해진다.

이거는 내 뇌피셜은 아니고, 앱 개발자들 사이에선 '재르시'라는 닉네임으로 좀 유명한 이재성님(네이버 iOS 멘토, 두나무 출신ㄷㄷ)도 이렇게 얘기하셨었다.

'본인의 영혼이 없는' 포트폴리오는 그냥 의미없다고. 그래서 계속 스스로한테 질문하고 성찰하면서 다양한 도메인의 개발 경험을 쌓아본 게 네이버에 갈 수 잇었던 비결인 거 같다고 말씀해주시기도 함. 심지어, 지금도 업무 외 시간에 타사 앱 클론코딩 하는 거 게을리하지 않고 계신다고 한다...!

할튼, 그래서 나는 네카라쿠배 5개 앱을 전부 클론코딩해보기로 결정했다! 대신, 5개 앱들의 핵심 기능까지 다 개발해보기로.
그래야 진짜 내 실력도 키우고, 이직할 때 쓸 포폴에도 넣을만 해질 것 같다.


| 첫 번째 클론코딩 - N사 음성메모앱

난이도 : ⭐⭐⭐
소요 시간 : 10시간

1. 목적
온보딩화면 토글 구현하고, 음성메모/To-do List/ 메모장/ 타이머 기능 다 넣어서 실제 서비스되는 수준으로 앱 개발하기

2. 구현 기능
∙ 음성메모, 알람, Todo 리스트, 메모장 기능
∙ 온보딩 화면 토글 구현 및 To do list 완료 목록 삭제
∙ 음성메모 녹음 플레이어 뷰에 애니메이션 추가
∙ 타이머 시간 세팅 커스텀(시/분/초)

3. 학습한 내용
∙ SwiftUI View Layout 결정 원리
∙ SwiftUI의 Property Wrappers, MVVM
∙ SwiftUI에서 화면 전환하는 법
∙ AVFoundation(음성) 활용법
∙ Local Notification 활용법
∙ SwiftUI에서 Custom ViewModifier/Animation 학습



| 두 번째 클론코딩 - K사 영상/스트리밍앱

난이도 : ⭐⭐⭐
소요 시간 : 10시간

1. 목적
PIP/영상 최소화까지 되는 비디오 플레이어 구현하고, 실시간 스트리밍 및 채팅 기능까지 개발하기

2. 구현 기능
∙ 가로모드 / 세로모드 영상 화면 변경
∙ 실제 영상 URL로 영상 정보 불러오기
∙ OTT 앱과 유사한 콜렉션 뷰를 활용한 화면구성 방법
∙ 가상의 라이브스트리밍화면 구현으로 영상 및 채팅화면 구현
PIP / 영상 최소화 -> 제일 어려운 부분

3. 학습한 내용
∙ UIKit / AutoLayout / Storyboard 활용해 UI 구현
∙ AVFoundation 활용법
∙ 가상 라이브 스트리밍 + 채팅 UI 및 기능 구현
∙ PIP 및 UIViewController Transition 활용, 시청 화면 최소화 구현 방법



| 세 번째 클론코딩 - L사 메신저앱

난이도 : ⭐⭐⭐⭐
소요 시간 : 12시간

1. 목적
네트워크 통신 및 테스트 개념 학습하기

2. 구현 기능
∙ OpenAPI 활용, 로그인 기능 구현
∙ Remote Notification 활용한 대화 기능 구현
∙ 사진 업로드 기능 구현
∙ CoreData 활용
∙ 이미지 캐시 구현
∙ 라이트 / 다크모드로 변경

3. 학습한 내용
∙ UIKit / AutoLayout / Storyboard를 활용한 UI구현
∙ SwiftUI와 Combine을 활용한 MVVM
SwiftUI에서 UIKit 사용하기 -> 특히 실무에서 이런 식으로 둘 다 쓴다고 함
∙ 비동기 프로그래밍의 이해
∙ 단위테스트 / TestDouble
모바일 앱 접근성 학습 -> 2024년부터 의무화 기능!



| 나머지 C사 커머스앱, B사 배달앱 클론코딩 프로젝트 결과도 궁금하다면?

📌 네카라쿠배 iOS 멘토, WWDC Scholarship Winner 포함 iOS 전문가 7인 총집합
📌 55시간 SwiftUI, UIKit 모두 활용 네카라쿠배 5개 앱 구현 프로젝트
📌 결과물 퀄리티 2배 강화! 디자인 가이드 제공
📌 압도적 포트폴리오 완성하고 면접 시 어필 방법까지 전수


💙 지금 패캐머들이 읽고있는 BEST 아티클이 궁금하다면

이 글과 연관된 주제의 추천 강의