클래스클럽커뮤니티

함께 비교해 보세요

이런 걸 배울 거예요

Android Architecture 전반과 실전 설계

앱 구조의 핵심 원리와 레이어 책임을 기반으로 설계하는 법 익히기

Jetpack Compose 상태관리부터 Recomposition 최적화까지

Compose 상태 흐름과 리컴포지션 최적화 전략

Coroutine & Flow의 이론과 실전 설계

동시성과 데이터 스트림의 구조적 활용법

Benchmark 기반 성능 측정 & 개선

앱 성능을 측정하고 개선하는 실전 방법

안드로이드 기술 면접에도 대비하고 싶은데... 좋은 강의 없을까?


아키텍처 많이는 들어봤는데... 실전에선 어떻게 설계해야하지...?


Repository에서 1개뿐인 구현체에 Interface는 왜 두는거지?


JetPack Compose로 앱은 만들었어. 근데 리컴포지션과 상태관리가 어려워


앱은 이제 괜찮게 만든것 같아. 근데 성능을 측정해서 정량적으로 개선할 순 없을까...?


👨‍💻 강사 소개

안녕하세요, 규모 있는 APP과 SDK 5종을 직접 설계하고 개발한 경험이 있는,

6년차 안드로이드 개발자 송상윤입니다.


위와 같은 목마름을 해결하지 못한 분들... 검색해도 뭔가 속 시원한 답을 듣지 못한 분들이라 생각합니다. 저는 주니어시절 위와 비슷한 고민들을 여럿 해었습니다. 목마름을 해소하고자, 기술 공식 홈페이지, 컨퍼런스, 칼럼 등의 지식들을 스스로 분석하고 재가공하며, 지금은 답을 찾게 되었습니다.


현재는 실무를 하며 규모 있는 APP과 SDK 5종을 설계 및 유지보수했으며, 이들을 만들며 부딫혔던 문제, 해결법, 기술 등을 공유하는 일을 이어가고 있습니다. 개발 생태계 지식 공유를 좋아하여 25년 6월 17일 Droid Knights발표를 포함, 총 6차례 이상의 테크세션을 발표했으며, 개인/사내 블로그에도 약 100개에 달하는 글을 작성했습니다. 하지만 이번엔 1회성으로 끝나는 컨퍼런스나 테크세션이 아닌, 커리큘럼 기반으로 더욱 넓고 깊은 지식을 유기적으로 연결하여 여러분들께 알려드리고자 합니다.


하지만 그럼에도, 아래와 같이 생각하시는 분들이 계실거라 생각합니다.



아니... 더 잘하는 개발자분들 강의가 있는데? 이걸 꼭 들어야 할까?


맞습니다. 현재 개발 강의 생태계를 보면, 저보다 뛰어난 개발자분들 강의가 많으며 양질의 지식을 드리는 것 또한 사실입니다. 하지만 시간적, 금전적 여유가 없으신 분들은 이러한 분들의 모든 종류의 강의를 다 수강하는 것은 조금 힘들 수 있다고 생각합니다. 따라서 저는 이런 불편함을 해소할 수 있는 강의를 기획했으며, 아래 스킬들을 얻어가실 수 있습니다.


  • 1개의 깊은 주제보다, 전반적인 지식(eg., Architecture, Compose, Coroutine, Benchmark)을 알려드리며,

  • 이들의 유기적 연결에 초점을 맞춰, 머릿속에 안드로이드 마인드맵을 그려드리고자 합니다.

  • 하지만 그렇다고 지식의 단순 넓이만 추구하는게 아닌, 앱 최적화에 필요한 깊이까지 추구하며,

  • 성능 개선을 ms/µs 단위까지 정량적으로 측정하여 개선하는 방법을 알려드립니다.

  • 이런 저의 강의는 방향성 설정이 필요한 1.5 ~ 3년차 분들께 적합하다고 판단되며, 안드로이드 개발 Navigation역할을 해드리겠습니다.



우리가 앱을 처음 만들고자할 때, 무엇이 가장 중요할까요?


'Compose'? 'Coroutine'? 아니면 'Repository패턴'?, 'DI'? 모두 틀렸습니다. 가장 먼저 고려해야할 요소는 바로 회사가 어떻게 돈을 버는지,수익모델(이하 전략기획)입니다. 전략기획이 없다면 회사는 생존할 수 없으며, 결국 개발자인 우리를 고용할 수 없게 됩니다. 따라서 우린 회사의 전략기획이 무엇인지 관찰할 수 있어야 합니다.


개발자에게 가장 중요한건 개발 능력 아니야?


맞습니다. 하지만 고품질의 코드 즉, 구조화된 아키텍처를 구축하고, 이를 위해 필요한 Coroutine, Compose등을 잘 활용하기 위해선 상위 단계인, 합리적인 기획이 필요합니다. 왜 그럴까요? 개발 제품이 나오기 위해선 필요조건의 작업들(eg., 기획, 디자인...)이 순차적으로 진행되어야 하며 이로 인해 개발 방향성이 정해지기 때문입니다. 따라서 참된 개발자라면 단순 개발만 하는 게 아닌, 기획 단계에서부터 참여하여 의견을 내는 작업이 필요합니다.

스크린샷 2025-06-24 오후 9.45.31.png

(요즘 대부분 회사는 2주 단위 스크럼 즉, 애자일 방식으로 일한다 할지라도 기존 폭포수 모델을 아예 배제할 순 없습니다.)


전략기획이 정해졌다면, 이를 기반으로 한 앱 기획(이하 서비스 기획)이 들어갑니다. 서비스 기획은 우리가 익히 알고있는 ppt, figma등과 같은 목업툴로 진행됩니다. 이때도 마찬가지로 개발자는 가만히 있는 게 아니라 "앱 기획이 합리적인지?", "앱에서 사용될 도메인 단위의 데이터는 무엇인지?" 관측하고 의견을 제안할 수 있어야 합니다.


서비스 기획까지 완료되었다면, 다음 단계인 "디자인""서버 API작업"이 진행됩니다. 안드로이드 개발자인 우리는 디자인 시안을 보며, 시스템화할 것이 없는지를 체크하며 디자이너에게 제안을 할 것이고, 서버 API를 보며 앱에서 사용될 데이터를 그룹화하기 위해 인터페이스를 변경을 서버 개발자에게 제안을 할 것입니다. 이 작업이 왜 필요할까요? 우선 디자인 시스템을 갖추어 놓는다면 UI 재활용성 증가로 개발속도가 매우 빨라집니다. 그리고 앱에서 사용될 데이터를 그룹화해 놓는다면 훨씬 적은 비즈니스 로직 코드로 재사용률이 매우 높아져 앱 유지보수성이 올라가기 때문입니다.


스크린샷 2025-06-25 오전 10.59.56.png

저는 Repository를 고기를 파는 정육점에 비유하곤 합니다 ^^

이제 다음 단계인 "앱 개발"단계에서 우린 UI작업과 서버 API 연동 작업 등을 하며 앱을 만들게 됩니다. 이렇게 만들면서 마주치게되는 순수 앱 영역의 문제는 무엇인지, 아키텍처 설계와 비동기 라이브러리 사용은 어떻게 해야하는지를 흐름적으로 알려드리겠으며, 아래는 제 강의를 통해 향상시킬 수 있는 스킬입니다.



📚 강의 목차 하이라이트

CHAPTER1. [Architecture] 앱의 뼈대, 구조부터 설계까지

아키텍처, 도대체 왜 써야 할까요? 단순히 레이어를 나누는 게 아니라 책임을 분리하고 변경에 유연한 구조를 만드는 게 핵심입니다. 실무에서 살아남는 구조를 중심으로, UI/도메인/데이터 레이어의 본질을 함께 짚어봅니다.


CHAPTER2. [Jetpack Compose] UI 설계를 위한 기초 배경 지식

UI를 그리기 전, Compose의 핵심 개념을 먼저 다잡아야 합니다. 상태는 어디서 관리하고 언제 변경해야 하는지, Compose의 선언적 UI 사고방식과 recomposition이 어떤 식으로 작동하는지, 실전 설계 전 기초 체력을 다져봅니다.


CHAPTER3. [Jetpack Compose] UI 최적화를 위한 내부 동작 원리

Jetpack Compose, 최적화는 리컴포지션부터입니다. SlotTable, Composition, Reuse 등 내부 렌더링 구조를 이해해야 진짜로 성능 개선이 가능합니다. 퍼포먼스를 위한 구조적 시야를 Compose의 내부에서 찾아봅니다.


CHAPTER4. [Jetpack Compose] 최적화UI 실전 구축

성능 개선, 이론만으로는 부족하죠. LazyColumn의 스크롤 튐 현상, 무분별한 recomposition을 막는 구조까지. 실제 앱에서 마주치는 최적화 이슈를 기반으로, 실전 적용 가능한 UI 패턴을 직접 구현하며 학습합니다.


CHAPTER5. [Flow] 콜드와 핫 스트림으로 이해하는 Kotlin 비동기 흐름 처리

Flow, 왜 어려울까요? 바로 흐름의 본질을 놓쳤기 때문입니다. Cold Flow와 Hot Flow의 개념부터 차이, 생명주기 관리까지, 단순 API 사용을 넘어서 도메인/데이터 계층에서의 올바른 활용 방식을 파헤칩니다.


CHAPTER6. [Coroutine] Kotlin이 제공하는 동시성 라이브러리

Coroutine은 단순한 비동기 도구가 아닙니다. Thread와의 차이, Dispatcher, Exception Handling, Builder의 역할까지, Kotlin Coroutine이 제공하는 핵심 동시성 개념을 실무적 시각으로 다시 정리해봅니다.


CHAPTER7. [Coroutine] Domain & Data Layer 실전 구축

추상적인 설명은 그만. 실제 앱 아키텍처의 Domain, Data Layer에서 Coroutine과 Flow를 어떤 기준으로 설계하고 사용하는지를 직접 코드로 배워봅니다. Layer별 책임과 동시성 흐름의 연결고리를 명확히 짚어냅니다.


CHAPTER8. [Benchmark] 장인 정신으로 성능 개선해보기

“느려요”라는 말로는 부족합니다. Benchmark, Perfetto, Matrix와 같은 정량 측정 도구를 활용해 앱 성능을 ms 단위로 수치화하고, 실제로 개선하는 방법까지 실습합니다. 실전 최적화는 측정에서 시작됩니다.



contract-6951993_1280.jpg


Android 기술 면접 준비, 막막하셨나요?

결국 강의를 듣는 가장 큰 이유는 좋은 회사에 취업하거나 이직하기 위해서일 겁니다. 그래서 저는 직접 약 130문항으로 정리한 기술 면접지를 준비했습니다. (앞으로도 계속 업데이트 예정) 이 리스트는 [Android Framework], [Third-Party Library], [Compose], [Architecture], [Coroutine+Flow], [OS], [자료구조], [Kotlin], [네트워크] 로 구성되어 있으며, 실제로 제가 유명 IT 기업들의 면접을 준비하고 복기하면서 뽑아낸 질문들입니다. 저 역시 수차례 면접에 떨어지며 느꼈던 아쉬움을, 여러분은 덜 겪으시길 바라는 마음으로 공유하고자 합니다. 이 금쪽같은 면접 질문 리스트는 제 강의를 수강하고 리뷰를 남겨주신 분들께만 공유드립니다.

단, 특정 기업명을 기재하지는 않습니다.


이 강의, 계속 업데이트 되나요?

찍어놓고 끝나는 강의가 아닌, 강의 런칭일 이후, 약 3년간의 유지보수를 약속드립니다. Deprecated가 된 부분은 과감히 제거하고, API가 크게 바뀐 부분 또한 새롭게 찍어 올릴것을 약속드립니다. 강의 업데이트 내역은 LinkedIn의 담벼락에 개재할 예정이니, 업데이트 수신을 희망하시는 분들은 친구추가를 부탁드립니다! ^^ (송상윤 링크드인 바로가기)

강의 유지보수 기간은 안드로이드 생태계, 개발자 개인사정 등으로 인해 변동될 수 있습니다.


강의 방향성?

다시 말씀드리자면, 제 강의는 1가지의 주제를 깊이 다루지 않습니다. 그보다, 안드로이드 앱 개발에 필요한 지식들만 고르고 이들을 유기적으로 연결시키는 데에 집중을 하며, 실무에서 바로 사용 가능하도록 함을 목표로 합니다. 따라서 아직 방향성을 잡지 못한, 안드로이드 주니어 개발자 분들에게 Navigation역할을 해드림을 약속드립니다.




혼자 찾아 헤매는 시간을 줄이고, 꼭 필요한 지식만 빠르게 익히실 수 있도록 준비했습니다. 이 강의가 실무에서 바로 활용할 수 있는 나침반이 되어드리겠습니다.

준비물 · 코칭권

키트 소개

클래스 커리큘럼1

설계부터 성능 측정까지: Architecture × Compose × Coroutine
2025년 10월 29일 수강 시작
입문 난이도 · 영상 27개 · 첨부 파일 40개
총 9시간 43분
한국어 음성
한국어 · 영어 · 일본어 자막

커리큘럼

챕터 0개

크리에이터

송상윤

송상윤

안녕하세요, 송상윤입니다.


저 역시 처음 안드로이드 개발을 시작했을 때는 Architecture, Coroutine, Compose가 왜 중요한지 잘 알지 못했습니다. 작은 화면 하나 만드는 데도 헤매고, 성능 문제에 부딪히면 어디서부터 고쳐야 할지 막막한적이 있었습니다.

frustrated-man-8836744_1280.jpg


하지만 여러 프로젝트와 시행착오를 거치면서, 그리고 실제 서비스의 아키텍처를 직접 리드하며 조금씩 답을 찾았습니다.

  • 펜타시큐리티에서는 2차 인증 PASS 앱ViewSystem MVC에서 Compose MVI로 100% 마이그레이션하며 결과적으로 FirebaseCrashlystics 99.5%를 유지하였습니다.

  • 또한 모비두에서는 MVVM 패턴의 라이브커머스 앱 첫 구축 시, 28개화면 중, 25개 개발하며 수많은 신규 기능을 도입하고 유지보수성을 끌어올렸으며,

  • 버디스탁에서는 금융 SNS 플랫폼 앱을 17명의 팀원과 함께 런칭 및 유지보수를 하였습니다.

이 과정에서 깨달은 건 단 하나입니다.


앱을 단순히 만드는 것과, “잘” 만드는 것은 전혀 다르다는 것.


좋은 아키텍처는 팀의 속도를 높이고, 성능 최적화는 사용자 경험을 바꾸며, 개발자의 성장은 결국 팀과 제품의 성장으로 이어진다는 사실입니다. 이번 강의는 그런 제 경험을 온전히 담았습니다.


  • 문법 나열이 아닌, 실제 서비스에서 검증된 아키텍처 설계와 성능 개선 노하우

  • 수많은 실패와 고민 끝에 얻은, 다시 돌아가도 꼭 알려주고 싶은 핵심 지식

  • 그리고 강의 이후에도 곱씹을 수 있는 실무 친화적인 로드맵


people-8598065_1280.jpg

저는 여러분들이 이 강의를 통해 “코드를 따라 치는 개발자”에서 “앱을 책임질 수 있는 개발자”로 성장하길 원하는 마음에 강의를 런칭하게 되었습니다. 그리고 언젠가 저처럼, 혹은 저보다 더 멋지게 배운 것을 나누고 가르치는 개발자가 되기를 응원합니다.


우리 같이 성장해봅시다!! 🚀

많은 분들이 같이 본 추천

copyrightprotectionnoticetitle

  • copyrightprotectionnoticeanswer
고객센터오전 10시 ~ 오후 6시 (주말, 공휴일 제외)
주식회사 클래스101
대표 공대선
서울특별시 강남구 강남대로94길 10, 11층 1101호(역삼동, 패스트파이브 강남4호점)
대표전화 : 1800-2109
이메일 : ask@101.inc
사업자등록번호 : 457-81-00277
통신판매업신고 : 2022-서울강남-02525
클라우드 호스팅 : Amazon Web Services Korea LLC
사업자 정보 자세히 보기
클래스101은 통신판매중개자로서 중개하는 거래에 대하여 책임을 부담하지 않습니다.