강의

멘토링

커뮤니티

BEST
개발 · 프로그래밍

/

모바일 앱 개발

[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!

이 강의를 통해 주니어급 Flutter 개발자가 중급 Flutter 개발자가 되기까지 필요한 필수 지식들을 단기간에 배워볼 수 있습니다.

(4.9) 수강평 174개

수강생 3,009명

  • 코드팩토리

먼저 경험한 수강생들의 후기

수강 후 이런걸 얻을 수 있어요

  • Flutter

  • Riverpod 상태관리

  • Pagination

  • JWT 토큰관리 및 인증

  • Optimistic Response

  • JsonSerializable

  • GoRouter

  • Retrofit

  • Dio 토큰관리 자동화

  • 실전 OOP

  • Debounce and Throttle

중급 플러터 개발자로 업그레이드하고 싶다면? 
믿고보는 코드팩토리의 실무 중심 강의 🖥

교보문고 2023 상반기 베스트셀러 저자가 직접 가르쳐주는 강의

컴퓨터/IT 부문 23위 TOP30 이내 유일한 앱 개발 서적\

 

플러터만으로 2022년 슈퍼루키 달성!

대기업에서도 찾는 강의! 리뷰가 증명하는 최고의 강의 보장해드립니다!

 

 

🙋‍♂️ 수강 전 참고사항


  • 이 강의는 단순히 "배달앱"을 만들기 위해 제작된 강의가 아닙니다! 절대 클론 코딩이 아니니 단순히 배달앱을 만드는 방법을 배우고 싶은 분에겐 적합하지 않은 강의일 수 있습니다. 배달앱 컨셉은 제가 전달하려는 프로그래밍 지식의 매개체 역할을 할뿐입니다. 어떤 앱이든 꼭 알아야하고 적용할 수 있는 지식을 담았으니 참고해주세요!
  • 코드팩토리 Flutter 초급 강의에 비해 난이도가 매우 높습니다! 실전에 꼭 필요한 지식들을 담았으니 여러 번 반복해서 완전 내 것으로 만든다는 마인드로 수강해주세요. 100% 흡수하고 나면 당장 실무 투입이 가능한 개발자가 되리라고 자신합니다!
  • 이번 프로젝트는 실제 서버 연동 실전감각을 키우기 위해 제가 직접 제작한 NestJS기반의 REST API 서버를 제공해드립니다. Swagger 서버 다큐멘테이션을 보면서 실전처럼 API 연동을 진행하며 주니어 개발자들이 알아야 할 필수 지식들을 익힙니다.

학습 내용 📚


1) Authentication (인증 로직)

현대에 가장 많이 사용되는 Token Authentication 중에서도 Refresh Token과 Access Token을 사용해서 인증을 진행하는 시스템을 공부합니다. Dio를 이용해서 자동으로 토큰을 갱신하는 방법도 학습합니다.


2) Pagination

Page 기반의 Pagination과 Cursor 기반의 Pagination 이론을 배운 후 Cursor Pagination을 OOP로 효율적으로 풀어볼 수 있는 방법에 대해 깊게 학습합니다.


3) JsonSerializable

JsonSerializable은 모델을 생성할때 JSON을 오브젝트로 Serialize하는 코드를 작성할 필요가 없게 만들어줍니다. JsonSerializable 기본 사용법과 Pagination과 연동한 Inheritance 적용법도 배워봅니다.


4) Retrofit

Retrofit은 Flutter의 Code Generation 중 가장 유용한 툴이고, REST API 매핑을 자동으로 해주며 JsonSerializable과 호흡이 매우 좋은 패키지입니다. Retrofit을 이용해서 모든 API 매핑을 진행합니다.


5) Riverpod 및 Cache 관리

Riverpod에 존재하는 모든 Provider들의 사용법을 배워보고 실전에 적용도 해봅니다. 추가적으로 여러 Provider를 동시에 관리하며 Cache를 최적화해서 관리하는 방법도 배워봅니다.

 

6) GoRouter

앱/웹에서 사용한 라우팅 라이브러리인 GoRouter는 Dynamic Link, Deep Link, Redirect, Refresh룰등 유용한 기능을 기본으로 제공해줍니다. 이를 통해 인증 시스템을 완벽히 구성해봅니다.


7) Debounce and Throttle

Debounce와 Throttle은 서버의 과부하및 앱의 최적화까지 생각해볼 수 있는 중요한 기술입니다. 이번 강의에서 Debounce및 Throttle의 적절한 사용 상황과 사용법을 배워봅니다.


8) Swagger

서버 개발자가 프론트엔드 개발자와 소통하기위해 가장 많이 사용하는 다큐멘테이션 툴인 Swagger를 사용해서 API 규격을 이해하고 프론트엔드 코드로 소화시키는 방법을 배웁니다.


9) Optimistic Response

Optimistic Response는 긍정적 응답을 예측해서 미리 캐시를 업데이트하는 기술입니다. 어떤 상황에 어떻게 적용하면 좋은지 이 강의에서 배워볼 수 있습니다.


소개합니다,
프로젝트 스크린! 🤸‍♀️

#1 스플래시 스크린

첫 앱 실행 시 필요한 인증/검증 로직과 라우팅 로직을 세팅합니다.

#2 로그인 페이지

로그인 스크린입니다.

#3 레스토랑 리스트 페이지

레스토랑 정보를 Pagination하는 홈스크린입니다.
Pagination과 Throttle에 대해 배워보고 직접 실전에 적용해봅니다.

#4 레스토랑 상세페이지

레스토랑의 상세페이지로 주문할 음식을 선택할 수 있고, 아래로 스크롤하면 레스토랑 리뷰도
조회 가능합니다. Custom Scroll View를 이용해 여러 개의 Sliver List를 실전에 적용해봅니다.

#5 장바구니 페이지

선택한 음식을 확인할 수 있는 장바구니 스크린입니다.
Optimistic Response와 Debounce 기능을 배워보고 적용해봅니다.

#6 음식 리스트 탭

음식들을 리스트로 조회할 수 있는 페이지입니다.
Pagination 일반화 및 고급 캐시관리 기능을 배워봅니다.

#7 주문 리스트 랩

주문들을 조회할 수 있는 탭으로, Pagination 일반화를 해봅니다.

#8 프로필 탭

로그아웃 기능이 있는 프로필 탭입니다.


강의 한 마디 🎙

Flutter가 출시된 뒤로 수많은 크고 작은 프로젝트를 직접 경험해봤습니다. 그리고 최근에는 채용과 컨설팅의 목적으로 많은 인터뷰를 보면서 많은 프론트엔드 개발자들이 단순히 UI를 그려내는데 포커스를 과하게 맞춘다는 생각이 들었습니다. 물론 보기좋은 UI를 그려내는 것은 프론트엔드 개발자의 가장 중요한 스킬 중 하나입니다. 하지만 정확한 컴퓨터 공학적 이해도와 프로젝트를 갖추고 군더더기 없는 코드를 작성해 나가는 것 또한 그에 못지않게 중요합니다.

이번 강의는 실무 경험이 부족한 Flutter 개발자들이 코드를 작성할 때 원활한 협업과 유지관리의 관점에서 어떤 고민을 해야 하는지 학습할 수 있습니다. Flutter 초보강의와 다르게 이 강의는 하나의 프로젝트를 진행하며 중급 Flutter 개발자로서 꼭 알아야하는 지식과 좋은 코드 작성 방식에 집중합니다. 프로젝트의 중간마다 고의적으로 함정들을 심어두고 이를 극복해나가며 어떻게 더욱 좋은 코드를 작성할 수 있는지 마음으로 직접 느끼는데 집중을 했습니다. 주니어 수준의 Flutter 개발자를 실무에 투입이 가능한 수준까지 실력을 끌어올리는데 초점이 맞춰져있습니다. 실제 프로젝트에서 꼭 알고있어야하는 필수 지식인 Authentication 시스템, Refresh, Access Token 관리, 글로벌 상태관리, Pagination, Debounce와 Throttle 등을 한번에 실제 프로젝트에 적용해보며 공부합니다.


이런 분들에게 추천해요 🖐

이제 막 Flutter 초보 딱지를 뗀 상태로
한 단계 지식 레벨업을 하고싶으신 분

어느 정도 Flutter 프로그래밍에 대해 알지만
막상 프로젝트를 시작하려니 막막하신 분


수강후기를 모았어요 📜


최고의 커뮤니케이션 🧑🏼‍🏫

매주 유튜브 라이브를 통해 질의응답을 받으며 학생들과 소통합니다!

유튜브 라이브 푸쉬알림을 받고싶으시면 아래 코드팩토리 유튜브 채널을 구독해주세요!

> 코드팩토리 유튜브 채널 바로가기

 


코드팩토리 집필 서적

Must Have 코드팩토리의 플러터 프로그래밍 서적은 제가 오랜 기간 투자해서 직접 집필한 책입니다!
초급 강의와 곂치는 내용도 있고 초급강의에는 없는 Firebase 및 광고등에대한 강의도 있습니다!
EBook이나 실물 서적을 좋아하시는 분들에게 추천드립니다!
서적은 교보문고, Yes24, 알라딘등 메이저 서점에서 만나 볼 수 있습니다!
아래 이미지를 클릭해서 이동해주세요!


Q&A 💬

Q. 코드팩토리 Flutter 초보강의를 꼭 수강해야하나요?

코드팩토리 Flutter 초보강의에 준하는 지식이 이미 있다면 추가로 수강할 필요는 없습니다. 하지만 코드팩토리 Flutter 초보강의를 수강했다는 가정하에 제작된 강의이기 때문에 이미 설명한 개념은 반복해서 설명하지 않습니다. 최소 코드팩토리 Flutter 초보강의에 준하는 지식이 없다면 따라오기 힘든 강의이니 초보 강의부터 수강해주세요!

Q. 배달앱을 제작하는 강의인가요?

진행하는 프로젝트의 컨셉은 배달앱이 맞습니다. 하지만 배달앱의 UI/UX나 기능의 플로우와 전혀 관련이 없는 강의입니다. "컨셉"만 지식을 전달하는 매개체로 사용할 뿐이고 주니어 Flutter 개발자가 중급 Flutter 개발자가 되기위해 꼭 알아야하는 보편적인 지식들을 습득하는 강의입니다. 단순히 "배달앱 제작법"을 위해서는 이 강의를 수강하지 마세요!

Q. 이 강의를 수강하면 어느정도 수준의 개발자가 될 수 있나요?

한마디로 말하면 당장 실무 투입이 가능한 수준이 된다고 생각합니다. 오랜 기간 동안 여러 프로젝트와 인터뷰를 봐오면서 Flutter 개발자가 꼭 알고왔으면 좋겠다고 생각한 지식들을 담았습니다.


더 많은 코드팩토리님의 강의는?

[입문] Dart 언어
4시간만에 완전정복

  • Dart 프로그래밍 언어
  • 객체지향 프로그래밍
  • 함수형 프로그래밍
  • 비동기 프로그래밍

[초급] Flutter 3.0 앱 개발
- 10개의 프로젝트로 초보 탈출!

  • Dart 언어 마스터
  • Flutter로 예쁜 UI 제작
  • SQLite 데이터베이스 활용기
  • 동영상 플레이어 앱 제작

[중급] Flutter 진짜 실전!
중수가 되기 위한 필수 스킬들

  • GoRouter
  • JsonSerializable
  • Dio 토큰관리 자동화
  • Debounce and Throttle

기타 사항 ✔️

(1) 도움받고 배울 수 있는 다른 채널들!

🏭 코드팩토리 유튜브
🔥 코드팩토리 Discord
💬 코드팩토리 카카오 오픈톡

(2) 강의용으로 공유되는 이미지

강의에서 제가 제공해드리는 이미지들은 유료로 직접 구매한 이미지들이예요. 저는 창작물을 만들어 배포해드릴 수 있는 권리를 구매했지만 여러분들은 절대로 다른 사람 또는 인터넷에 이미지를 배포하시면 안돼요! 저작권 위반으로 법적 문제가 생길 수 있으니 공부하는 용도 외로 이미지들을 사용하지 마세요.

(3) 질문하는 법

프로그래밍을 배우면서 정말 빠르게 실력을 늘릴 수 있는 법은 올바르게 정확한 질문을 하는 법을 깨우치는거예요. 프로그래밍의 특성상 코드의 전체를 다 봐주기 어려워요. 그러니 문제가 되는 위젯의 코드를 통째로 올린 후 "이거 안돼요!" 하시면 제가 답변을 해드리기 어려워요.
질문을 하실 때는, 밑의 3단계로 잘 정리해서 전달해주시면 훨씬 빠르게 소통하고 답변을 드릴 수 있어요!

1️⃣  내가 생각했을때 어떤 식으로 작동이 되어야 하는지
2️⃣  현재 어떻게 작동되는지
3️⃣  정확한 코드의 위치와 어떤 문제가 생기는지 (예제까지 있으면👏)

이런 분들께
추천드려요

학습 대상은
누구일까요?

  • 어려운 컨셉이라도 반복적으로 수강하고 흡수할 자신이 있는분

  • 플러터 개발 능력을 한단계 업그레이드 하고싶은분

  • 코드팩토리 Flutter 초급 강의를 완전 흡수하신분

  • 실무 프로젝트를 경험하고싶으신분

  • 회사에 시니어 엔지니어가 없는 주니어 개발자

선수 지식,
필요할까요?

  • Flutter 주니어 개발자 수준의 지식

안녕하세요
입니다.

28,843

수강생

1,602

수강평

1,914

답변

5.0

강의 평점

6

강의

안녕하세요 프로그래밍 강사 코드팩토리입니다!

코드팩토리 통합 링크
https://links.codefactory.ai

 

🏭 코드팩토리 유튜브 바로가기
🔥 코드팩토리 Discord 바로가기
💬 코드팩토리 카카오 오픈톡 바로가기

 

💼 주식회사 코드팩토리 대표

 

🏆 2023년 인프런 베스트셀러 수상

🏆 <<Must Have 코드팩토리의 플러터 프로그래밍>> 서적 2023 상반기 교보문고 컴퓨터/IT 부문 베스트셀러 23위

🏆 AWS Certified Developer Associate

🏆 AWS Certified Solutions Architect

커리큘럼

전체

147개 ∙ (21시간 6분)

해당 강의에서 제공:

수업자료
강의 게시일: 
마지막 업데이트일: 

수강평

전체

174개

4.9

174개의 수강평

  • kayjay님의 프로필 이미지
    kayjay

    수강평 1

    평균 평점 3.0

    3

    98% 수강 후 작성

    Thank you for the great Flutter lecture~ I wrote a long post because there were many things I regretted while listening to the lecture. Summary - It is a great lecture for making apps with Flutter, but is it bad for understanding Flutter? ------------------------------------------------------ Overall course review Judging from the speed at which you wrote Flutter code, it seems that you have done a lot of related work, but compared to that, I felt that your overall project design ability, experience, and IT knowledge were somewhat lacking. Of course, I think it is enough for job seekers or students to listen to, but for developers with some experience, there were many parts where the explanation of concepts was wrong or why the project was structured like this. At first, I wrote a post by asking questions while listening to the lecture, but I thought that if I kept writing, the lecture would not progress, so I just took notes separately and skipped the lecture. Here is what I wrote for now. - Insufficient theoretical explanation of tokens or sessions in the authentication process explanation -> I left this in the question - Insufficient detailed explanation in terms of taking the project structure. I wanted to hear a little bit about what patterns are used in Flutter, but they created a repository and a provider without explanation~ - The response format of the provided server API does not match. It is easier to develop if the response model is the same whether paging is used or not, but if there is paging, it is wrapped once in data and sent down, and if there is not, it is just sent down as is, so it is too inconvenient because it cannot be managed commonly in the client,, - When creating a Dio interceptor, the explanation is like 'It's just a rule~' and you can follow it, and the explanation on the network side is insufficient overall - There are parts where the explanation is skipped here and there, such as "If you know oop,,", and there are parts that talk about it even though it is not a concept about oop - The naming does not match overall. The same image URL field is used as imgUrl, imageUrl, and I don't know why user_model is used as camel as userModel, but username is not used as userName - The more the lecture goes on, the more the same words are repeated. It seems to be due to video editing, but there are parts where the same thing is repeated.. It's uncomfortable to watch - After the gorouter chapter, it suddenly goes to UerMeRepository. In the previous lecture, UserModel was not created, but it was created. It seems like the lecture was missed ... Because of the above contents, rather than listening to the lecture, I watched the lecture by stopping the lecture at the beginning of the lecture and implementing and comparing it myself when I thought, "What should I do?" In fact, the reference codes I saw on github or stackoverflow were much cleaner and had a better structure. (+ I also bought and read the book that he wrote, but I feel like he has never experienced a project at a large company.) I usually don't write reviews while listening to the lecture, but I ended up writing this because he said this so many times during the lecture. "This code can be written differently because it's different for each project, team, and person." "Can't this be done like this?" If you say that, I have nothing to say." You say a lot of defensive things about tackles, but from the perspective of the listener, it sounds negative. If you had various project experience, you could explain various examples and say that there are various methods, but it seems like you are saying this because you can't. It would have been better if you didn't mention it. And you say a lot, "This is a paid lecture, so I will tell you everything," but the explanation is too poor. I think it took more time to look into the internal code while listening to the lecture. In my opinion, if it's an 'intermediate' level, you expect to be explained how the code works internally, but it was a lecture where you just used what was there without knowing how it worked inside. I hope that in future lectures, you add examples of various projects and explanations of internal logic.

    • codefactory
      지식공유자

      Hello! I apologize for not being able to satisfy the parts you felt dissatisfied with. I also reflect a lot on your sincere course review! I will show you a more improved image in the future. Thank you for your hard work in taking the course. Thank you!

    • I'm also taking the course (about 10% done), and after seeing this review, I strongly resonated with it. It seems like a great lecture for job seekers. I usually write a review after completing a course, but like this person, I also feel I could write about 3 points. I don't want the course rating to drop because of me, so I'm writing this comment as a review.

  • jamescode73422님의 프로필 이미지
    jamescode73422

    수강평 2

    평균 평점 5.0

    5

    29% 수강 후 작성

    This is a lecture that is almost perfect. Although the title of the lecture is [Intermediate], it is not an exaggeration to say [Intermediate-Advanced] because the lecture content is solid. Since most of the content can be applied directly to actual work, it is a lecture that is perfect for current Flutter developers as well as those preparing for employment. Honestly, it is really cheap to learn this quality lecture at this price. Not only me, who has been developing for more than 15 years, but also anyone who has worked in the field for 1-2 years will probably know what I mean. If someone who explains this in detail were to work at a company, I would sincerely and childishly advise them, “Even if you give all your salary to that person, come learn for just one year.” There is no faster growth than learning from a good mentor. In order to really grow as a developer, you definitely need the attitude and passion of a learner, but it would be even better if a veteran who has already walked that path could guide you to the best course. Flutter has been a hot topic for several years, but there is still a shortage of intermediate to advanced personnel. I think that if you listen to this lecture repeatedly and master everything yourself, you will be able to work happily under really good conditions. Your skills will improve to the point where you can quickly create not only company projects but also the apps you want to create. I bought almost every book sold in bookstores to study Flutter, and I also came across a lot of online clone coding. I also took lectures on other platforms that really explained Flutter step by step. But this is the most useful. It is the most practical and cost-effective. I sincerely advise you to learn this first and fill in the gaps. I would like to express my sincere gratitude to the instructor, and I look forward to the [advanced] lecture coming out in the future.

    • codefactory
      지식공유자

      Thank you ㅠㅠ I think I work harder to create lectures because of the students who always support me. I will definitely make an even better lecture next time!!

  • sbw91303643님의 프로필 이미지
    sbw91303643

    수강평 4

    평균 평점 3.0

    5

    69% 수강 후 작성

    I started learning Flutter by taking a Flutter course on another site. I won’t mention the site or the instructor, but when I think about it now, I can only say that the instructor’s level was too low. I had a lot of complaints while taking that course. It felt like I was just practicing typing, and the answers to my questions were not very satisfying. Even though I took all the courses, all I gained was my typing skills. Nothing more or less. After that, I Googled on my own and applied for a 1:1 tutoring class on Soom* to try a personal project. If I look at the code now, it’s really… incredibly crude and messy to the point where I wonder why it was written like that. In the end, I just spent money and didn’t learn properly. Since my personal project wasn’t progressing well, I started looking for other courses, and that’s when I found Code Factory’s course. At that time, I was debating between Code Factory's lecture and another lecture (since there were two lectures by Copac, I was a little worried... hahaha). I can't help but think that it was really lucky that I ended up taking Copac's lecture. Whether it was the 4-hour Dart lecture or the beginner's lecture, I had a hard time because of the build speed or setting errors while using Windows.. Other than that, I never felt so frustrated because of the lecture. Now I'm using a MacBook, so it's really refreshing hahaha I took the beginner's lecture once, and honestly, there were many parts that I didn't understand, so I asked questions several times and googled a lot to figure out how to proceed. In the meantime, I also changed my personal project and am working on it again. I realized that my skills had really improved after taking the beginner's lecture right after I took the intermediate lecture. When I first started taking the beginner's course, I was busy following along, comparing, and understanding the code, but when I saw that I could follow along just by listening to the instructor without looking at the screen in the beginning of the intermediate course, in the basic parts of creating the UI or screen, I realized that the beginner's course was really effective! (Come to think of it, I had no idea about Future/Stream Builder, but now I'm using it in my personal project without any problems.) There's still a lot of content left, and I haven't even started the difficult parts, but I'm confident that if I trust the instructor and follow the intermediate course, I'll level up before I know it. It's the beginning of the intermediate course, but I'll follow along well without falling behind and become a developer like Copac's disciple who can create clean codes on my own!

    • codefactory
      지식공유자

      Thank you ㅠㅠ This is a really helpful review for me!! I will work hard to make better lectures!

  • harashow884974님의 프로필 이미지
    harashow884974

    수강평 4

    평균 평점 4.5

    5

    58% 수강 후 작성

    The lecture I've been waiting for has finally come out. I've been running the lecture since it came out, and the content is so rich that it's worth the wait. I'm an Android developer working in the field, and since the end of this year, I've had to do several small projects in a row with Flutter, so I've been taking Dart and Flutter beginner lectures and working on personal projects. There were some parts that I lacked on my own, so I took other Flutter intermediate lectures, but there were so many parts that were disappointing in the lecture composition and level. Fortunately, the intermediate lecture was uploaded right before I started the projects, so I'm listening to it quickly. The content composition is really good and the lecture preparation is perfect. I asked on the bulletin board when the intermediate lecture would be uploaded, and you said it would take time to prepare more thoroughly, but I can understand that you've prepared really well. I'm writing this without any order because I'm grateful, but if anyone is thinking about taking the course, just take it right away!!

    • codefactory
      지식공유자

      Thank you! I will try my best to make better lectures!!

  • apswtrare1695님의 프로필 이미지
    apswtrare1695

    수강평 4

    평균 평점 5.0

    5

    5% 수강 후 작성

    I started listening from the beginner level and am listening to the intermediate level. When I suddenly started using Flutter, I was at a loss, but since you covered everything from the basics, I am so grateful and I don't know how to express my gratitude.!! I will also wait for the advanced lectures ><!

    • codefactory
      지식공유자

      Thank you!! I hope it helps!

₩132,000

코드팩토리님의 다른 강의

지식공유자님의 다른 강의를 만나보세요!

비슷한 강의

같은 분야의 다른 강의를 만나보세요!