Flutter 중급 - 클린 아키텍처
더 견고하고, 더 안정적인 모바일 앱!
클린 아키텍처로 플러터 한 단계 레벨 업.
더 좋은 구조의 앱 아키텍처란? 📖
이 강의에 관심이 있으신 분들이 이미 제 Flutter 강의 몇 개는 보셨거나, 간단한 앱 한 두 가지는 만들어 보셨을 겁니다. 그리고 아마도 다음과 같은 고민들을 하셨을 것입니다.
플러터 앱 개발자의 고민!
‘더 나은 앱을 위한 프로젝트 구조는 어떤 것일까?’
‘참고할 만한 좋은 구조의 프로젝트 샘플은 없을까?’
‘실무에서는 어떤 구조로 앱을 개발할까?’
이런 고민을 하시는 분들께 도움을 드리기 위해 이 강의를 준비했습니다. 함께 도전해보실까요?
클린 아키텍처를
적용해야 할 세 가지 이유 🚩
이 강의에서는 플러터 앱에 클린 아키텍처를 적용하면서 이러한 부분을 해소해 나갑니다.
클린 아키텍처는,
- 1️⃣ 프레임워크에 독립적이고
- 2️⃣ 테스트를 쉽게 할 수 있으며
- 3️⃣ 기능 수정이나 추가가 용이합니다.
따라서, 좋은 앱 개발을 하기 위해 꼭 필요한 개념이라고 할 수 있습니다.
두 가지 앱을
클린 아키텍처로 직접
개발해봅니다 📲
다음 두 가지 앱을 클린 아키텍처를 적용하여 개발합니다.
- 이미지 검색 앱: 외부 API를 통해 이미지를 검색할 수 있는 간단한 앱입니다.
- 노트 앱: 로컬 DB에 저장되는 노트 앱입니다.
직접 만들어보세요!

이미지 검색 앱
- 검색어를 입력하여 이미지 검색
- 네트워크 오류시 적절한 오류 처리

노트 앱
- 노트 작성, 수정, 삭제
- 삭제 취소
- 여러 조건으로 정렬
- 로컬 DB에 저장
이 강의만의 특징을
알려드립니다 🔍
클린 아키텍처를 적용하는 과정을 단계별로 심도있게 학습합니다.
- ✅ 특정 라이브러리 사용시 왜 그 라이브러리를 사용하게 되었는지 라이브러리 사용 전과 후를 비교하여 설명합니다.
- ✅ 복잡한 개념은 도식을 활용하여 설명합니다.
- ✅ 모든 소스 코드와 강의에 사용한 슬라이드를 제공합니다.


강의 수강 후, 여러분의 코드 구조는 이렇게 달라집니다!
발전한 코드 구조, 직접 경험해보세요.
자주 묻는 질문이
궁금하다면? 💬
Q. 강의를 수강하기에 적절한 지식은 어느 정도일까요?
제 강의 중 최소한 Flutter 중급-Http통신,상태관리를 들으시거나 그에 상응하는 지식이면 됩니다. Future, Stream, Provider 를 이해하고 있는 것이 도움이 됩니다.
Q. 강의에서 사용하는 소스 코드가 제공되나요?
강의에서 다룬 모든 소스 코드와 슬라이드가 제공됩니다.
Flutter 중급 - Http통신, 상태관리
Flutter의 다양한 위젯, 네이티브 코드 연동 방법, Http 통신, Bloc 패턴을 학습합니다.
인프런 동시 등록 가능 강좌
본 강의를 구입하신 분들은 이메일로 <구매한 강의명, 생존코딩 가입 이메일, 인프런 가입 이메일> 을 알려주시면 인프런에도 등록해 드립니다.
[email protected]
강의자
교육하고 책 쓰는 개발자 오준석입니다. 저는 최근 10여년간 모바일 소프트웨어 개발을 해 왔으며, 온오프라인 강의와 Youtube 채널을 통해서 2000명이 넘는 사람들에게 개발자가 되는 방법이나 코딩 기술을 가르쳤습니다.
강좌 커리큘럼
-
시작01 이미지 검색 앱 모델 클래스 작성 (13:53)
-
시작02 UI 작성 (17:27)
-
시작03 이미지 검색 기본 버전 완성 (15:33)
-
시작04 기능 분리하기 (7:59)
-
시작05 InheritedWidget을 활용한 객체 주입 (18:36)
-
시작06 Stream을 활용하여 데이터 다루기 (10:44)
-
시작07 라이브러리 없이 MVVM 구현 (6:50)
-
시작08 ViewModel과 Test (23:51)
-
시작09 Mockito를 활용한 테스트 (23:39)
-
시작10 JsonSerializable과 Equatable (17:28)
-
시작11 Freezed (11:28)
-
시작12 Provider (7:37)
-
시작13 ChangeNotifierProvider, Consumer (14:03)
-
시작14 클린 아키텍처 (21:37)
-
시작15 에러 처리 (33:23)
-
시작16 상태를 불변상태로 관리하기 (18:47)
-
시작17 Use Case (15:26)
-
미리보기18 DI (의존성 주입) (19:22)
-
미리보기19 클린 아키텍처 정리 (8:17)
-
시작클린 아키텍처 참고
-
미리보기20 디렉토리 구조 (5:45)
-
시작21 라이브러리 설정 (4:59)
-
시작22 노트 모델 클래스, NoteRepository 작성 (11:30)
-
시작23 Sqflite (12:43)
-
시작24 Sqflite Test 코드 작성 (14:12)
-
시작25 Use Case 작성 (9:57)
-
시작26 첫 번째 ViewModel 작성 (14:03)
-
시작27 ViewModel에서 다룰 상태 클래스 작성 (4:16)
-
시작28 두 번째 ViewModel 작성 (9:32)
-
시작29 첫 화면 UI 작성 (33:05)
-
시작30 두 번째 화면 UI 작성 (28:09)
-
시작31 DI 설정 (15:59)
-
시작32 새 노트 작성, 노트 표시 기능 (29:28)
-
시작33 노트 삭제, 취소 기능 (4:00)
-
시작34 노트 수정 (11:13)
-
시작35 Use Case 활용 (16:28)
-
시작36 정렬 기능 구현 (14:45)
-
시작37 Mockito를 활용한 Test 코드 작성 (15:29)
-
시작38 정렬 기능 작성 (20:04)
-
시작39 UI 몇 가지 수정 (9:13)
-
시작40 끝 인사 (2:30)
총 학습기간 :
정상 수강기간(유료 수강기간) 최초 2개월(60일), 무료 수강 기간은 61일차 이후로 무제한이며, 유료 수강기간과 무료 수강기간 모두 동일하게 시청 가능합니다.