🛠️

실전 iOS APP 리팩터링

개발자로 살면서, 실무에서 자주 마주치게 되는 문제 상황들이 있습니다.
새로운 기능을 붙이려는데, 레거시 코드가 너무나도 ‘걸리적’ 거릴 때
기능을 수정하려고 하다보니, 프로젝트를 아예 갈아 엎어야 할 때
팀 내에서 기존 코드, 아키텍쳐, 디자인을 개선해야 한다는 이야기가 계속 들려올 때
어느 순간부터 작업의 생산성과 확장성이 떨어지고, 기존 코드를 파악하는 일에 시간을 너무 많이 쓸 때
…등등, 여러가지 상황에서 우리는 ‘이렇게 하면 안될 것 같은데’ 라는 느낌을 받곤 합니다. 그렇다고 처음부터 다시 짤 수도 없는 노릇이죠. 조금씩 개선해보자니, 이거 하나를 바꿈으로서 나타날 수 있는 사이드 이펙트를 생각하면 머리가 복잡합니다.
개선해보겠다고 나섰다가, 괜히 더 문제 일으킬까봐 망설인 적 있나요?
사실 개발자로 살면서 ‘리팩터링’ 이라는 단어를 들어보지 않은 분은 거의 없을겁니다. 보통 TDD(Test-driven development)와 짝꿍처럼 손을 잡고 다니는 개념이죠.
리팩터링 Refactoring (프로그래밍 용어) 기존 소스 코드를 다시 작성하여 가독성, 재사용성 또는 구조를 개선하기. 단, 기존 코드의 의미나 동작에는 영향을 미치지 않도록 하는 것. (programming) To rewrite existing source code in order to improve its readability, reusability or structure without affecting its meaning or behaviour.
하지만 리팩터링을 한다는건 대체 뭘까요? 이런저런 프로젝트 경험이 많다면 나름의 계획을 세워볼 수 있겠지만, 이제 막 초보 개발자로서 경력을 시작한 경우 개선사항이 눈에 보이더라도 선뜻 손이 가지 않을 수 있습니다. 괜히 건드렸다가 문제 생길까봐 걱정되는건 덤입니다.
그런 분들을 위해 이 코스를 준비했습니다. 이제는 ‘뭐든 돌아가는걸 만들기만 하면 된다’ 는 생각에서 진일보하려는 분들. 클린 코드(Clean Code)와 같은 개념을 실현해보고 싶은 사람들. 즉 더 나은 개발자가 되고 싶어 오늘도 노력하는 당신을 위해서 말입니다.

수강 대상

앱 성능 개선, 코드 품질 개선과 같은 주제에 관심있는 주니어 개발자
시니어 개발자로 성장하기 위해 필요한 필수 역량을 기르고 싶은 분
내 코드에 대한 피드백을 받기 어려운 환경에서 일하고 있는 분들
코스 기간(예정): 2024/4/8(월) 시작, 2024/4/26(금) 3주 (일정은 변동될 수도 있습니다.)
진행 방식: 전면 온라인 진행
필요한 소프트웨어 및 서비스: Zoom, GitHub 외 야곰아카데미 자체 학습 관리 시스템 사용
매주 공유되는 영상 및 텍스트 강의자료를 토대로 해당 주간의 주요 개념을 학습
주간 프로젝트를 수행하며 코드리뷰
매주 화요일 리더 라이브 피드백 세션을 통해 Q&A 진행
주간 라이브 세션 일정: 매주 화요일 20시, Zoom을 통해 접속
< 실전 iOS App Refactoring > 코스는 3주 간의 온라인 과정입니다. 한 주에 하나씩 기존 코드를 개선해야 하는 미션을 드립니다. 그리고 그 개선 과정에서 코드리뷰를 진행합니다. 그 과정에서 이런 것들을 함께 학습하고, 실현하게 됩니다.

1. 기존 코드의 개선을 통한 성능 향상

2. 기능 추가에 잘 대응할 수 있는 유연한 코드 작성

3. 이를 통한 서비스의 전반적인 UX 향상

커리큘럼(영상 강의 + 주간 프로젝트 + 코드리뷰)

이 코스에서는 총 3개의 실습 과제가 주어집니다. 모든 과제는 기본적으로 ‘리팩터링을 통한 코드 품질 개선 및 앱 성능 개선’ 을 목표로 하며, 주차별로 집중하는 부분이 조금씩 달라집니다. 아래의 설명을 참고하세요.
주차별로 학습 내용이 담긴 영상 강의가 제공됩니다. 영상을 통해 파악한 내용을 토대로 주간 프로젝트를 진행하고, 코드리뷰를 통해 리팩터링 기법을 터득합니다.
코드리뷰는 과정 기간 내내 진행합니다. 1번 받고 끝나는 형태가 아닙니다. 내 코드를 남에게 보여준 적이 거의 없거나, 피드백을 받을 일이 많이 없었던 경우 꼭 여러 번의 코드리뷰를 통해 많은 것을 얻어가시길 바랍니다.

1주차 Swift를 Swift 답게

택배 상자에 붙이는 송장을 생성해주는 앱을 만들며 여러 리팩터링 기법을 접하고, 실습합니다.
과제 수행을 위해, 먼저 개선의 여지가 많은 베이스 코드를 공유드립니다.
그 코드와 함께 주어지는 개선 요구사항을 잘 파악하고, 리팩터링 실습을 해봅니다.

2주차 High Performance in Swift

날씨 정보를 불러와서 화면에 띄워주는 앱을 만들며, 앱의 성능을 끌어올릴 수 있는 여러 방법에 대해 배워봅니다.
개선의 여지가 많은 베이스 코드를 직접 고쳐나갑니다.
주로 Runtime Performance, Compile time performance 를 향상시키는 데에 집중합니다.

3주차 TDD with Swift

TDD 기반으로 가위바위보 앱을 만듭니다.
UI만 구현되어있는 베이스를 드립니다.
비즈니스 로직은 없는 상태에서, TDD 기반으로 요구사항에 맞는 앱을 구현합니다.

수강료

런칭 기념 할인 중! 660,000 → 550,000
영상 강의, 프로젝트, 3주 간 끊이지 않는 코드리뷰와 주 1회 라이브 세션까지 놓치지 마세요.
본 과정은 국민내일배움카드 수강비 지원 과정이 아님을 알려드립니다.

Let’s think..

리팩터링은 한 개발자의 자기만족을 위한 행위일까요? 아니면 팀 내에서 더 인정받고자 나의 실력을 뽐내는 도구일까요?
결코 그렇지 않을 것입니다. 가장 중요한 것은 ‘사용자에게 더 나은 경험을 제공한다’ 는 목적입니다.
언제나 내가 작성한 코드가 더 나아지길 바라고, 그로 인해 이 앱을 사용하는 사람들이 우리 서비스를 더욱 사랑하도록 만드는 것. 그것을 위해 오늘도 노력하는 당신에게 이 코스가 큰 도움이 되어드리겠습니다.
gogochang (1기)
혼자 고민했다면 3주간 코스과정을 통해 성장한 만큼까지의 시간이 1년은 더 걸렸을지 모르겠습니다. 코드를 작성하면 할수록 점점 이게맞나? 라는생각이든 경험이 있다면, 그냥 기능만들고 끝이 아닌 더 좋은 코드를 고민한다면, 주니어 개발자인데 선임이 없다면, 이 실전 iOS APP 리팩터링을 추천합니다.
초이 (1기)
대부분의 기능 개발을 할 수 있는 iOS 앱 개발자로 성장한 뒤에는 어떤걸 해야 하지? 하는 생각이 들게 될 때 들어야 할 강의입니다. iOS 앱 개발을 공부하다가 보면 혼자서 하기 막막하고 어려운 부분이 좋은 코드를 짜기 위한 리팩토링, 코드 성능 그리고 테스팅 인데 이러한 지식을 얻어 개발자로서 더 넓은 시야를 가지고 다음 스텝으로 나아가기 위해 필요한 강의입니다.
김*성 (1기)
취업준비생, 신입, 미들급 등 연차에 상관없이 다시한번 기본을 상기 하면서 간과하고 있었던 부분을 돌아보고 되새길 수 있는 강의입니다.
습관적으로 코드를 작성하거나, 본인의 작성한 코드에 확신이 없는 사람들에게 매우 추천하는 강의입니다.
Tony (1기)
무의식적으로, 습관적으로 작성하던 코드에서, 매주 학습하는 코스 및 리뷰어와의 소통을 통해 점점 테스트하기 좋은 코드로 변해가는 내 코드를 확인할 수 있습니다.
사과 (1기)
리팩터링 캠프가 오픈된다는 소식을 듣자마자 제가 갖고있던 고민, 의문들을 해당 캠프를 통해서 해결하고자 캠프를 신청하고 진행하게 되었습니다. 캠프를 통해서 생각하면서 코딩하는 습관이 조금씩 생기고 있는 것 같고 마냥 헤매고 작성하는 코드 마다 의문이 생겼는데 지금은 그 의문들을 뒷받침 해주는 나의 주장, 왜 이렇게 작성했는가에 대한 생각을 고민하는 과정을 통해서 더 좋은 방법 찾아나가고 있는 것 같습니다. 저는 이 캠프를 통해서 고민을 해결하거나 더 디벨롭된 생각과 고민을 할 수 있는 개발자가 되고싶은 분들에게 추천해주고 싶습니다!
가든 (1기)
Swift 언어에 대한 이해도가 있으신 분들에겐 강추입니다 ! 본인이 생각했던 부분을 리뷰어와 나눌 수 있어서 좋은 시간이었습니다. 초보자로 시작해서 기본의 중요성을 많이 깨닫는 시간이었어요 진행해주신 리뷰어분께도 감사드립니다.
kodirbek (1기)
본 캠프는 SOLID와 TDD에 대한 실습 세션을 제공하여 개발자로서 발전하고 성장하고자 하는 사람들에게 도움을 줍니다. 캠프에는 각 캠프 참가자가 배운 내용을 의도적으로 연습할 수 있는 미션들이 있습니다. 가장 좋은 점은 각 캠프 참가자에게 자신이 작성한 코드를 리뷰하고 피드백을 제공하는 리뷰어가 할당된다는 것입니다. 매우 유용한 캠프이며 더 질이 높고 유지보수가 쉬운 코드를 작성하는 데 많은 도움이 되었습니다.
칸트 (1기)
제가 작성한 코드에 대해 다시 한번 생각할 수 있는 좋은 시간이였습니다
oliver (2기)
혼자서 혹은 리뷰 문화가 없는 소규모 팀에서 개발중인 주니어라면... 반드시 참여해보시면 좋겠습니다. 리팩토링을 엄청 거창하게 생각하고 있었는데, 강의 과정을 잘 따라가신다면 그렇게까지 어려운 개념은 아니라는 걸 깨달을 수 있습니다. 막연하게 생각했던 것들을 실제로 적용해보고, 리뷰까지 받아볼 수 있는 기회를 꼭 놓치지 않으시길 바랍니다.
레드 (2기)
혼자서 프로젝트를 리펙토링하기전에 '유지보수와 최적화를 고려하며 개선하는 방법'에 대해 먼저 힌트를 받고 싶다면 추천하는 강의입니다. 리펙토링과 관련 없이도, 강의와 실습을 진행하며 앞으로 스스로 공부하며 채워나가야 하는 부분들을 많이 발견할 수 있고, 이를 기반으로 공부의 방향성을 잡는데에 도움을 많이 받을 수 있는 강의입니다!
갱이 (2기)
이게 맞나라고 생각하며 코드를 작성하던 분에게 정말 도움이 되는 강의라고 생각됩니다. 올바른 생각을 가지며 코드를 작성할 수 있는 능력을 기르게 해주는 캠프였습니다.
해당 캠프를 시작하기 전에 유닛 테스트에 대해 어느 정도의 정보를 습득하고 강의를 듣는 것을 추천드립니다.
완 (2기)
스스로 객체 지향에 대해 뜬구름을 잡고있다고 느끼는 주니어라면 반드시 큰 도움이 될 것 같습니다.

FAQ

직장인도 참여할 수 있나요?

물론입니다. 리팩터링과 관련된 학습에 의지가 있는 iOS 개발자 누구나 참여할 수 있습니다.
모든 과정이 온라인으로 진행되므로 부담없이 참여하실 수 있습니다.

실시간 강의도 있나요?

실시간 강의(Zoom 을 활용한 라이브 세션)은 화요일 20시부터 시작합니다.
60분 내외로 소요되며, 한 주간의 학습내용에 대한 피드백이 주를 이룹니다.

인원 제한이 있나요?

이 코스는 주간 프로젝트 수행 및 코드리뷰를 중요하게 여기고 있습니다.
면밀한 코드리뷰, 개개인별로 세세한 피드백을 드리기 위해 최대 15명 이내로 정원을 제한하고 있습니다.

참여 대상을 좀 더 자세히 알려주세요.

조금 더 나은 스위프트 코드 구조를 고민하는 분
더 나은 성능을 발휘하는 코드 작성을 원하시는 분
기본적인 iOS 코드는 작성해보았으나 제대로 구조화하기 어려운 분
유지보수에 용이한 코드를 작성하고 싶으신 분
객체지향 프로그래밍을 위한 실력향상이 필요한 분
더 나은 포트폴리오 코드가 필요한 분
테스트하기 좋은 코드를 작성하고 싶으신 분
무엇보다도, 자신의 코드가 조금 더 나아지길 원하는 모든 개발자분들을 환영합니다.

준비물이 있다면?

1.
매킨토시 컴퓨터 MacBook, iMac, Mac mini 등 macOS를 탑재한 매킨토시 컴퓨터가 필요합니다.
2.
GitHub 계정 코드리뷰 진행을 위해 GitHub 계정을 미리 생성해두셔야 합니다.

하루에 얼마나 투자하는게 좋을까요?

개인차가 크지만 적게는 1~2시간 정도, 가능하다면 하루 2~3시간 이상 투자하길 권합니다.

코드리뷰는 누가 해주나요?

개인별 담당 리뷰어가 과정 시작부터 끝까지 코드리뷰를 진행합니다.
3주 간 여러 번 함께 리뷰하며, 코드를 개선하는 과정을 최대한 많이 경험해보시길 바랍니다.

3주가 지나도 학습자료는 계속 볼 수 있나요?

학습자료는 학습 기간 종료 후 6개월 동안 열람하여 복습할 수 있습니다. 단, 3주의 공동 학습 기간이 끝나면 리더와 학습 도우미는 함께하지 않습니다.

결제 방식은 어떤게 있나요?

신용카드 결제 및 가상계좌 입금이 가능합니다.
(무이자 할부 혜택의 경우 카드사마다 다르오니, 결제 시 확인해주시길 바랍니다)