안드로이드 아키텍처

모바일 A/B테스트
코스 프로모션 배너 전용입니다.
0 0시간 0 0 코스 프로모션 배너 전용입니다.
(자동)
정가 (자동)
현재 판매가 (자동)
12개월 무이자 할부 시 (자동)

모바일에서 좋은 아키텍처를 구현하기 위해서는 관련 기술에 대해 충분히 이해하고, 비즈니스의 니즈와 목적에 따라 사용할 수 있어야 합니다.

앱을 만들 때 아키텍처만 잘 설계/구현해도 앱의 안정성과 속도가 높아져 사용자 경험이 개선되고, 유지 보수와 확장이 용이해 개발자 경험 역시 획기적으로 개선됩니다.

그럼 좋은 아키텍처는 무엇이고 어떻게 구현할 수 있을까요?
좋은 아키텍처의 기준은 있지만, 구현하는 방법에는 정답이 존재하지 않습니다.
앱이 해결하고자 하는 문제, 환경 등을 고려해서 가장 적합한 기술을 적용하여 설계하고 구현 해야하죠.
그래서 아무리 좋은 기술이더라도 제대로 이해해서 상황에 맞춰 사용하지 않는다면 오히려 더 많은 시행착오를 겪을 수 있습니다.

이번 강의에서는 빠르게 성장하는 스타트업부터, 대기업까지 다양한 규모의 앱 아키텍처를 구현 프로젝트에 참여했던 경험을 바탕으로 아키텍처를 구현하기 위해 알아야하는 기술과 원리, 여러 상황에서의 구현 방법을 정리해 여러분들의 시행착오를 줄여줄 수 있도록 준비했습니다.

by. 강사룡

깜짝 인터뷰

강사님의 더 많은 이야기가 궁금하다면?
지금 바로 인터뷰 영상으로 확인해보세요!

대규모의 앱을 안정적이고, 확장성 있게 만들기 위해
필수적인 아키텍처

혹시 앱 아키텍처에 대해 이런 오해들을 하고 계시지는 않았나요?

서비스의 규모, 목적에 따라 달라져야 합니다.

아키텍처 관련한 특정 기술이 인기 있다고 모든 문제를 해결할 수 있지는 않습니다. 기술을 심도 깊게 이해하고, 나에게 가장 잘 맞는 기술을 선택하고 변형하여 적용할 수 있어야 합니다.

앱 개발을 시작한 사람들도 이해할 수 있습니다

복잡하고 어려운 개념과 기술이더라도 단순화하고, 좋은 케이스를 많이 접하면 앱을 하나라도 개발한 경험이 있는 사람이라면 학습하고 본인 프로젝트에 적용할 수 있습니다.

아키텍처 설계, 구축 전 과정에서 사용되는 기술과 이유를 알야아 합니다.

여러 기술들이 아키텍처 구현 중 어떤 단계에서 왜 필요하고, 각 기술들이 어떻게 유기적으로 관계가 있는지 이해를 해야 배운 내용을 실제 프로젝트에 적용할 수 있습니다.

국내외의 성장하는 스타트업부터 대기업까지 20년간 앱 아키텍처를 구축하고,
개선한 강사룡에게 배우는 아키텍처는 다릅니다.

아키텍처를 도입 또는 변경하는 의사결정 과정에서 필요한 아키텍처 패턴부터 의존성 주입, 멀티 모듈까지 모든 기술을 하나의 커리큘럼에 담았습니다.

상황에 따라 다양한 의존성 주입 프레임워크와 아키텍처 패턴 중 최선의 선택을 할 수 있도록
실무에서 많이 사용되고 있는 기술부터,
대체 기술까지 학습합니다.

정확한 개념을 이해하고, 나쁜 코드를 개선하고,
자주 발생하는 오류까지 점검하는 3단계 구조로
발생할 수 있는 실패 요인을 최대한 없앨 수 있습니다.

Overview

아키텍처에 필요한 모든 것을 담은 커리큘럼

Android 아키텍처를 구축하기 위해서는 무엇이 필요할까요?
아키텍처의 선택, 설계, 구현 전체 과정에서 필요한 기술을 모두 알려드립니다!

  • 모바일 아키텍처 개론

    ▪ 좋은 아키텍처를 위한 SOLID원칙
    ▪ 클린 아키텍처 in 모바일
    ▪ 아키텍처를 복잡하게 만드는 요인과 복잡성을 제거하는 방법

  • 보다 나은 아키텍처를 위한
    테스트 구현

    ▪ 테스트의 종류와 테스트 대상
    ▪ 테스트를 위한 외부 의존성 해결 방법
    ▪ 9가지 테스트 Best Practice

  • UI 계층

    ▪ 아키텍처 패턴의 종류와 특징
    (MVC, MVP, MVVM, MVI, Flux)
    ▪ 라이브 코딩 : 기본적인 ViewModel 구현
    ▪ 라이브 코딩 : ViewModel의 흔한 안티패턴 수정

  • 도메인 계층과 데이터 계층 구현

    ▪ 모바일을 위한 DDD
    (Domain-Driven Design) 개념과 필요성과 도메인 계층 구현 전략
    ▪ 데이터 계층 구현시 고려 사항과 자주 발생하는 오류 대처 방법
    ▪ 라이브 코딩 : 데이터 계층 구현

  • 의존성 주입
    (Dependency Injection)

    ▪ 의존성 주입의 개념과 필요성
    ▪ 의존성 주입(DI) 프레임워크 별 특징과 선택(Dagger, Hilt, Koin, Anvil)
    ▪ 라이브 코딩 : Dagger로 ViewModel의 주입을 자동으로 할 수 있는 설정 코드 구현

  • 멀티 모듈
    (Modular Architecture)

    ▪ 모듈을 나누는 기준과 절차와 방법
    ▪ 모듈화 과정에서 겪는 7가지 문제와 해결 방법 (순환 참조, 의존성 역전의 원칙 등)

Learning Point

모바일 아키텍처 패턴과 의존성 주입 완전 정복

모바일 아키텍처에서 빠질 수 없지만 도입시 많은 어려움을 겪는 아키텍처 패턴과 의존성 주입,
명확하게 개념과 원리를 정리하고, 가장 적합한 기술을 선택할 수 있도록 대중적인 기술부터 대안까지 한 번에 알려드립니다.

POINT 1    아키텍처 패턴

▪ 본인에게 가장 적합한 패턴을 찾을 수 있도록 현존하는 모든 패턴들의 원리와 특징을 비교해서 이해합니다.
▪ 각 패턴에서 주의해야하는 요소를 짚어보고, 실제 ViewModel을 구현하고, 흔한 안티패턴을 수정하는 2가지 실습을 진행합니다.


POINT 2    의존성 주입

▪ Android 앱 개발에서 필수적으로 요구되는 기술지만 구성의 난해함과 개념의 복잡함 때문에 자주 문제가 생기는 부분입니다.
▪ 가장 난해한 라이브러리로 알려진 Dagger의 원리를 쉽게 해설하고, 심화 사용법, 그리고 실제 실습을 통해 마스터하고, Dagger의 단점을 보완할 
수 있는 Hilt의 사용법과 대안으로 사용할 수 있는 Koin과 Anvil도 소개합니다

Learn by Doing

시행착오를 줄여주는 3단계 학습법

개념과 실습만 따라한다고 본인의 프로젝트에 바로 적용할 수는 없죠.
이론, 적용, 마무리 3단계로 학습하며 아키텍처를 도입/구현할 때 자주 마주하는 문제와 해결 방법,
최적의 의사결정을 내리는 방법까지 배워가세요.

STEP 1    아키텍처에 필요한 기술의 이해

▪ 아키텍처를 설계하고 구현하는 과정 중 어떤 단계에서 필요하고, 그 이유와 기술을 도입하기 전에 고려해야하는 요소를 학습합니다.

STEP 2    Bad Case를 리팩토링하며 올바른 적용 방법 익히기

▪ 학습한 내용이 코드에서 잘못 사용된 케이스를 분석하고 개선하며 올바르게 적용하는 방법을 학습합니다.

STEP 3    자주 발생하는 Anti-pattern과 오류 해결 방법으로 시행착오 줄이기

▪ 아키텍처를 구현하며 자주 마주하는 문제와 원인, 그리고 해결 방법까지 학습합니다.

⚠ 잠깐 ⚠

지금 나에게 필요한 내용인지 고민 되시나요?

앱을 만들 때 아키텍처를 구현하고자 하는데 어디서부터 해야할지 모르겠다.

앱 또는 팀의 규모가 커져서 늘어난 빌드 시간이나 잦은 코드 충돌 때문에 생산성이 떨어진다.

아키텍처를 구현하는 중 발생한 문제 대처하느라 오히려 개발 속도가 느려졌다.

의존성 주입, 아키텍처 패턴... 개념은 알겠지만 정작 프로젝트에 어떻게 도입해야할지 모르겠다.

하나라도 해당한다면, 이 강의 하나로 모바일 아키텍처를 마스터 하세요!


국내 GDE, 카카오페이, 라인 개발자들이 인정한
Android 전문가 강사룡에게 배우는 모바일 아키텍처는 다릅니다!

Top of Top

Nexon, IBM, Android의 탄생지까지
10개 이상의 국내외 앱 기술 컨설팅으로 성능과 기능 개선 경험이 있는 개발자 강사룡

한국, 일본의 스타트업부터 대기업의 앱 아키텍처 구현 프로젝트에 참여한 아키텍처 전문가

IBM과 현재 소속된 곳에서 국내외 스타트업부터 대기업까지 다양한 기업의 모바일 앱 아키텍처 프로젝트에 참여해서 앱의 기능과 성능을 개선해왔습니다. 특히 오랜 역사와 방대한 코드베이스를 가진 프로젝트의 전면 개편에 다수 참여하면서 모바일의 아키텍처 레벨에서 많은 경험과 고민을 해왔습니다.

국내 대기업부터 Android의 탄생지까지 경력 22년의 시니어 개발자

개발자로서 첫 커리어의 시작은 자바 백엔드 개발로 시작해서 피처폰에서의 모바일 3D 게임 개발이나 모바일 멀티미디어 관련 업무를 담당했고, 이후 여러 초기 스타트업에서의 경험을 통해서 백엔드, 웹 프론트엔드, 모바일까지 다양한 개발/설계 경험을 쌓았습니다. 처음 안드로이드 개발(당시 Android 2.3)을 하게 되었을 때 웹이나 백엔드와는 또 다른 특성에 아키텍처 레벨에서 특히 많은 시행착오를 겪었죠. 시간이 흐르면서 자연스럽게 개발 실력은 늘었지만, 그때 나에게 미리 시행착오를 줄일 수 있는 방법을 알려주는 사람이 있었으면 성장에 걸린 시간을 단축할 수 있지 않았을까 하는 생각을 많이 했습니다.

국내 최대 Android 컨퍼런스 DroidKnights에서 매년 지식을 공유하는 Speaker

해외에서 서로의 지식과 아이디어를 공유하면서 타인뿐만 아니라 본인의 성장에도 많은 도움이 되는 것을 경험했고, 이를 토대로 한국에서도 꾸준하게 크고 작은 온/오프라인에서 지식을 공유하고 있습니다. 특히 2018년부터는 매년 국내 최대 안드로이드 컨퍼런스 DroidKnights에 Speaker로 참여하며 아키텍처와 관련해서 개발자가 알아야 할 내용을 공유해왔고, 오프라인에서는 감사하게도 앉을 자리가 부족할 정도로 많은 분들이 관심을 보여주셨죠.

강사룡
• 2021 ~ 현재
Google / Senior Developer Relations Engineer
- Android Engineering 부서 소속
- 한국 및 일본의 유명 앱들에 대한 기능, 성능, 디자인, 호환성 등을 높이기 위한 기술 컨설팅

• 2018 ~ 2020
IBM Japan / Senior IT Specialist
- 일본 대형은행 2개 사의 모바일 앱에 대한 컨설팅 및 개발

• 2004 ~ 2006
Nexon / Lead Programmer
- 모바일 3D 게임 개발
<강연 및 기타 활동>

• 2021 ~ 현재
DroidKnights 2021 / Speaker
- Android Testing Best Practices

• 2020
DroidKnights 2020 / Speaker
- 안드로이드 아키텍처 총정리 2020

iOSDC Japan 2020 / Speaker
- iOS에서의 멀티모듈화, 빌드속도 최적화 일석이조 노리기

• 2019
DroidKnights 2019 / Speaker
- 안드로이드 아키텍처 총정리
FAQ
강의를 수강하는데 필요한
사전지식이 있나요?
▫️[필수] Android 앱을 개발을 할 수 있는 정도의 Kotlin 지식과 Android 앱의 구조에 대한 기초 지식
▫️[권장] 하나 이상의 아키텍처를 적용해 Android 앱을 개발해본 경험

* 본 강의는 Kotlin에 대한 기초 지식을 다루지 않습니다.

어떤 사람이 들으면
가장 도움이 될까요?
▫️실무 Android 개발 경험 2년 이상의 시니어 개발자
▫️하나 이상의 아키텍처를 사용해 규모있는 앱을 개발한 경험이 있는 사람
▫️Android 앱을 기반으로 하지만, 모바일 아키텍처에 대한 이론에 대한 내용은 다른 플랫폼 모바일 앱(iOS, Flutter 등)에도 적용 가능 합니다.

*본 수업에서 진행하는 모든 개념 설명과 실습은 Android 앱을 기반으로 하고 있습니다.

실습에
사용하는 Tool
▫️Android Studio Dolphin (2021.3.1) 이상
▫️ Kotlin 1.7.0 이상
20년 경력의 Android 전문가에게 배우는
아키텍처 구현 가이드.
지금 최저가로 만나보세요!
코스 프로모션 배너 전용입니다.
0 0시간 0 0 코스 프로모션 배너 전용입니다.
(자동)
정가 (자동)
현재 판매가 (자동)
12개월 무이자 할부 시 (자동)
상세 커리큘럼
패스트캠퍼스

수강료.

국내 8개 카드사 12개월 무이자 할부 지원! (간편 결제 제외)

  • 삼성카드
  • 신한카드
  • 롯데카드
  • 현대카드
  • 하나카드
  • BC카드
  • KB국민은행
  • NH농협카드

※ BC카드의 경우, 비씨(페이북)을 선택하여 결제시에만 12개월 무이자 할부가 가능합니다.
(BC계열 – 우리/제일/기업/대구/경남/부산/광주/수협/전북/제주/신협)