모집 기간
[오프라인] 고성능 서버 개발을 위한 Async Non-blocking in Practice [마감페이지]
서비스에서 '성능'이 중요한 요소가 될수록, 백엔드 개발자들이 알아야할 개념인 블로킹과 논블로킹, 동기와 비동기에 대해 깊이 있게 & 실용적인 방식을 학습하는 과정입니다. 고성능 서비스 개발을 위한 비동기(Async) 논 블로킹(Non-blocking) 조합의 서비스를 개발하며 실무에 비동기를 적용시켜보세요!
-
Dramatic Growth
비동기 개념부터
Async NIO 서버 개발까지
고성능 백엔드 개발의 정수성능에 관심이 많은 백엔드 개발자라면, 이번 기회를 놓치시면 분명 후회합니다. 어디서도 들을 수 없는 고성능/심화/실전 개발 강의입니다. 대용량 데이터를 처리하거나 서버 속도가 중요한 서비스라면 '비동기 논블로킹'을 적용해 성능을 압도적으로 향상시키는 경험을 해보세요!
-
Code Review
18년의 이상의 개발 경력
현 빅테크 Staff Engineer
강사님의 1:1 코드리뷰강의는 이론 10%, 실습 90% 으로 진행됩니다. 즉, 현장에서는 대부분 코드를 작성하고, 디버깅하고, 완성한 소스 코드를 Github에 올리면 리뷰하는 형식으로 강의를 진행합니다. 팀 프로젝트는 진행하지 않으며, 강사님께서 1:1 밀착코칭 해주실 예정입니다.
-
Practical Programming
실무 에러 상황을
그대로 담은 최종 실습
실무형 심화 개발 프로젝트마지막 주차는 mini workshop을 진행 합니다. 실전처럼 '요구사항'을 바탕으로 문제를 해결하고 '고도화' 작업을 진행하며, 특히 실무에 비동기를 적용할 때에 겪게 될 수많은 에러 상황을 case 별로 정리하고 실습합니다. 당장 내일 실무에 비동기를 적용하실 수 있는 역량을 쌓습니다.
- 본 강의는 모집이 마감되었습니다. -
아쉽지만, 본 강의는 현재 수강 인원 초과로 조기 마감되었습니다.
곧 같은 커리큘럼의 온라인 VOD 강의 혹은 오프라인 2기를 준비중이오니, 런칭 알림 신청하시고 쿠폰 혜택도 받아가세요!
9월 개강반
모집 기간
※ 1~4회차 | 14:00 - 18:00(4시간)
※ 5회차(mini workshop) | 10:00 - 17:00(6시간)
매주 토요일, 5주간 5회 총 22시간
[주의] 본 강의는 실무자를 위한 강의입니다.
원활한 코드리뷰를 위해 최소 1년 이상의 개발 경험이 필요합니다.
수업 장소 및 준비 사항
- 위치 : 강남역 4번출구 미왕빌딩 11층 패스트캠퍼스
- 강의장 주소 : [도로명] 서울 강남구 강남대로 364 [지번] 역삼동 826-21
- 강의장 : 개별 문자 및 이메일 안내
- 준비사항 : 개별 노트북 (사양 무관)
실습 중심의 강의이므로, 온라인 녹화본이 제공되지 않습니다.
본 강의는 Kotlin으로 진행됩니다. (가장 효과적인 방식인 Kotlin Coroutine 사용을 위해)
하지만 Spring MVC 개발을 하셨던 분들이라면 충분히 수강하실 수 있도록 커리큘럼을 설계했으며, 강의를 구매하시면 Java 개발자를 위한 Kotlin 입문 강의를 제공합니다.
1. Kotlin 문법 강의 (기본/고급) | 7시간
2. Java to Kotlin 리팩토링 강의 | 3시간
3. Java : Kotlin 함수 1:1 비교 | Notion
(*구매하신 주의 익일 월요일에 제공됩니다.)
4년차 이상의 이상의 백엔드 개발자 여러분!
혹시 ‘동기/비동기’ 와 ‘블로킹/논블로킹’ 개념 제대로 아시나요?
혹은 이런 고민 하고 계시나요?
단 5주간, 당신의 개발 역량을 퀀텀 점프 시켜줄
고성능 서버 개발을 위한 Async NIO 강의를 준비했습니다!
정말 배우고 싶어도 제대로 된 강의가 없는 고급 심화 주제!
패스트캠퍼스에서 어렵게 모신 빅테크 18년차 개발자와 함께 공들여 준비했습니다.
단언컨데 성능에 관심이 많은 개발자라면
강의를 듣기 전과 후, 개발 시야가 확장되는 경험을 드릴 것을 보장합니다.
강사님과의 [ 1:1 코칭권 ]을 제공합니다.
여러분이 갖고 계신 어떤 고민이든 나누어보세요!
( 종강 후 1개월 내에 강사님과 협의한 일정에 따라 20분간 진행합니다. )
Curriculum
다양한
실무자가 직접 설계한 커리큘럼으로 진행합니다.
빈틈 없는 커리큘럼으로 개념이해 와 실무적용 두 마리 토끼를 잡을 수 있도록 구성했습니다.
이번 강의는 차근차근 단계를 밟아 목적지에 도달할 수 있도록 점진적으로 구성되어 있습니다.
1~3주차에는 실용적인 실습 예제를 통해 개념을 이해하고, 4~5주차에는 실무에 적용하기 위한 실제적인 스킬과 노하우를 익힙니다.
특히 5주차에는 mini workshop의 형태로 오전/오후에 걸쳐 실전 프로젝트를 통해 실무형 심화 개발을 경험합니다.
비동기 NIO(Non-blocking IO) 어플리케이션의 기본 개념을 학습하고, 이론을 검증해보기 위한 pure kotlin 프로그램 구현합니다.
✏️ 이론 학습 내용
1. Async NIO 개념
2. Spring Webflux
3. Coroutine
4. Perfomance comparison
💻 실습 내용
1. Coffee Order
- Java Thread Block I/O
- Kotlin Corouthine NonBlock I/O
2. Context switching cost 비교
(Java Thread vs Kotlin coroutine)
기본기를 복습하고 추후 대조에 필요한 비교군 준비를 위해, Spring MVC 기반의 동기식 API 서버를 구축합니다.
💻 실습 내용
1. 구현내용 설명
- 간단한 게시판 서비스
- API, DATA
2. 환경구성
- Spring MVC
- Docker > MySQL
3. 구현
4. 테스팅
- Postman
- Intelij dot http
- Junit
- Mockito
본격적인 비동기 서비스 구현을 위해, Spring Webflux 기반의 비동기 API 서버를 구축합니다.
💻 실습 내용
1. Corutine 실습
- ANIO programing in Coroutine
2. Spring Webflux 설명
3. 환경구성
- Spring Webflux
- Kotlin Coroutine
4. 구현
5. 테스팅
- Kotest
2인 1조로 부하를 쏘는 쪽과 받는 쪽이 되어 성능 테스트를 수행합니다. 눈으로 직접 비동기 NIO 서버의 성능을 확인하며, 발생하는 에러 상황을 해결합니다.
💻 실습 내용
1. 성능 테스트 도구 셋업
- Lucust 셋업
- 성능테스트 스크립트 구현
2. 성능비교
- 기 구현해놓은 Spring MVC/Webflux를 이용해 성능 비교
- 매우 많은 돌발상황이 발생시키고 해결하는 과정 진행 (ex. 개발시 자주 하는 쿼리 로깅만 on 시켜도 webflux 성능은 mvc 보다 높지 않음)
3. Docker 를 이용한 성능비교
- netty의 성능이슈로 윈도우 OS 를 사용하는 수강생은 성능비교시 차이점을 확인하지 못함
- 때문에 2,3주차에서 실습한 프로그램을 docker로 만든 후, 이를 파라미터를 이용해 만져봄
서비스 운영에 꼭 필요한 요구사항을 이해하고, Webflux 환경에서 이를 해결하기 위한 방법을 학습합니다. 총 6가지의 각 요구사항을 해결하기 위한 고도화 작업을 진행합니다.
💻 실습 내용
1. Trace ID logging
- 요구사항 : 병렬처리 로그더미에서 특정 request 로그만 필터링해서 확인
2. Error Handling
- 요구사항 : 모든 오류를 공통 모듈에서 로깅
3. Request payload logging
- 요구사항 : 사용자 요청 파라미터를 로깅
4. Circuit Breaker
- 요구사항 : MSA 에서 서버간 오류전파를 막기 위한 호출 차단기 구현
※ 중간에 1시간의 점심 시간이 있습니다.
서비스 운영에 꼭 필요한 요구사항을 이해하고, Webflux 환경에서 이를 해결하기 위한 방법을 학습합니다. 총 6가지의 각 요구사항을 해결하기 위한 고도화 작업을 진행합니다.
💻 실습 내용
5. Redis & Cache
- 요구사항 : API 조회속도 향상
(Redis 연동 실습 2시간)
6. Lock
- 요구사항 : 분산환경에서 효과적으로 데이터 transaction 을 처리하고 싶음
7. 과정 정리
Point 1
동기/비동기, 블로킹/논블로킹의 확실한 이해를 위해
간결하지만 깊이 있는 실습 예제를 통해 단계적으로 구현해냅니다.
Async NIO의 개념이 어렵다고들 하는데요. 뭔가 어렵다는 것은, 중간에 단계가 빠져있어 올라가기 어려운 상태라고 생각합니다.
본 강의를 통해 단순한 기술 전달뿐 아니라, 복잡한 내용을 쉽게 이해할 수 있는 시니어 개발자의 단계적 접근법을 익힐 수 있도록 구성하였습니다.
Step 1
Spring MVC 프로젝트 skeleton 구현
Spring MVC 로 간단한 게시판 서비스를 만들어 봅니다. 이 결과물은 이후 Async NIO 서버와의 성능비교를 하기 위한 기준이 됩니다. 복습을 겸하긴 하지만, Kotlin 기반으로 작성할 예정이며, 다양한 테스트 기법을 사용할 예정이라 기본기를 탄탄하게 다진다는 느낌으로 손쉽게 수강하실 수 있습니다.
✓ 사용 스택
Spring MVC, Kotlin, JPA, H2, Junit, MockK, IntelliJ.http
Step 2
Webflux Coroutine 프로젝트 skeleton 구현
Spring Webflux 를 이용해 본격적으로 비동기 서버를 구현해봅니다. Spring MVC 로 만들었던 게시판 서비스와 완전 동일한 서비스를 다시 만들어 봄으로써, 어떤 부분을 다르게 작성해야 하는지 명확하게 이해할 수 있도록 과정을 구성했습니다.
✓ 사용 스택
Spring Webflux, Kotlin, R2DBC, H2, Kotest, MockK, IntelliJ.http Docker compose, Mariadb
Step 3
부하 테스트를 통한 성능 비교
비동기 서비스가 정말로 괄목할 만한 성능차이를 보여주는지를 직접 실험해
볼 예정입니다.2일차, 3일차에 만들었던 Spring MVC 와 Spring Webflux
(by Kotlin coroutine) 를 이용해 부하 테스트를 진행합니다.부하 테스트는 어떻게 진행해야 하는지, 성능 차이를 확인하기 위해 환경은 어떻게 세팅해야 하는지, 어떤 부분을 개선해야만 Webflux 의 성능이 개선되는지 등을 생생하게 직접 체험해 볼 예정입니다.
✓ 사용 스택
Spring MVC, Kotlin, JPA, H2, Junit, MockK, IntelliJ.http
Point 2
강의 내용이 지식에서 끝나지 않고, 실용적인 기술로 가져가실 수 있도록
대부분 실습 중심으로 강의를 진행합니다.
본 강의는 오직 실무자를 위해 이론 10% 실습 90% 로 구성된 강의입니다.
그저 '순차 실행'과 '작업 흐름' 같은 개념으로만 이해하는 것이 아니라, 실습을 통해 강의 시간 내에 내용을 온전히 이해하고 적용까지 해볼 수 있습니다.
예습이나 숙제는 필요 없습니다. 모든 과제/실습은 강의 시간 내에 강사님과 함께 수행합니다.
모든 실습은 비동기 논 블로킹 서버 개발을 메인 테마로
실무에 필요한 핵심 기술을 살을 붙여가며 자연스럽게 학습합니다.
Point 3
MSA 환경에서 Async NIO를 적용할 때 만나게 될
에러 케이스와 요구사항을 드리고 실전처럼 프로젝트를 진행합니다.
5주차는 mini workshop 형태로 실무의 6가지 요구사항에 따라 프로젝트를 고도화하는 작업을 수행합니다.
본 프로젝트를 통해 실무에서 어떤 에러 케이스가 발생하는지, 어떤 운영적 요구사항을 충족시켜야 하는지 등을 미리 경험하고 대비할 수 있습니다.
고유한 식별자 (trace id)를 세팅할 수 있어야 합니다.
오류 발생시 에러로그가 반드시 출력되어야 합니다.
(참고로 Webflux에서는 annotation을 이용한 cache 기능이 원활하게 지원되지 않습니다.)
다소 어려운 주제이더라도, 차근차근 빌드업으로 나아가
이론의 깊이감과 실무의 확장성까지 모두 만족시킬 수 있도록 과정을 설계했습니다.
Async NIO 기술은 이론적으로도 복잡하고, 성능을 최적화하는 것도 쉽지 않습니다.
그러나 이를 성공적으로 구현한다면, 아키텍처를 단순화시키고 인프라 비용을 절감하는 등 많은 이점을 누릴 수 있는 강력한 기술입니다.
기존의 동기식 프레임워크(Spring MVC)는 'Thread pool 딜레마'로 인해 하드웨어 성능이 올라가도 이를 온전히 성능 향상에 활용하기 어려웠습니다.
이를 극복하고자 Spring Webflux 라는 비동기 NIO 백엔드 프레임워크가 발표되었습니다.
하지만 Webflux는 Reactor라는 함수형 언어로만 프로그래밍이 가능해 유지보수가 매우 어렵고, RDB 호출에 병목이 있어
이론만큼의 성능을 보여주지 못했습니다.
그러나 Kotlin이 각광을 받으면서, 특히 Kotlin Coroutine 기술이 Webflux에 접목되면서
비동기 패러다임은 그대로 유지하면서 유지보수성이 급격히 향상되는 마법같은 일이 발생했습니다.
여기에 더해 RDB 호출 지연문제까지 해결되면서, 드디어 실무에서 괄목할 만한 성능을 보여줄 수 있게 되었습니다.
하지만 이렇게 만들어진 Spring Webflux는 구조만 MVC 와 비슷할 뿐, CPU 운영방식에서 매우 큰 차이가 있어
실무에 적용하기 까다로운 부분들이 여전히 많이 존재합니다. 그래서 이를 실습으로 경험하고 해결해볼 수 있도록 강의를 구성했습니다.
본 강의를 통해 이론적인 깊이감 뿐만 아니라, 실무적으로도 착실하게 기능을 확장해 나가면서
'아, 이렇게 빌드업해 나가는 거구나' 하는 깨달음을 드릴 수 있다면 더할나위 없을 것 같습니다.
그동안 선배들과 동료들에게 도움을 받았던 것처럼, 이제는 제가 여러분께 도움을 드릴 수 있다고 생각하니
벌써부터 가슴이 뿌듯합니다.
강의실에서 뵙겠습니다. 감사합니다!
자기소개 부탁드립니다.
어떤 분야든 손쉬운 지름길은 없지만, 그것이 달성할 수 없는 불가능한 장벽은 아닙니다. 어제보다 조금씩만 더 배우고 실력을 쌓아간다면, 나중에 뒤돌아보았을 때 어느새 꽤 높은 곳에 올라와 있는 자신을 발견할 수 있을 것입니다. 그동안 선배들과 동료들에게 도움을 받았던 것처럼 이제는 제가 여러분께 도움을 드릴 수 있다고 생각하니 벌써부터 가슴이 뿌듯하네요. 강의실에서 뵙겠습니다. 감사합니다!
온라인 VOD 강의들과는 무엇이 다른가요?
기술 이해에 보다 도움이 되는 실용적인 예제를 준비했고, 핵심만 간추려 이론과 실습 비율을 1:4 로 구성하여 알찬 강의를 준비하였습니다. 현장에서 여러분들과 직접 소통하며 코드를 작성하고 의견을 교환하면서 함께 성장하는 경험을 드릴 수 있도록 만반의 준비를 갖추겠습니다.
마지막으로 이번 강의를 인연으로 온라인보다 한 발 더 가까이에서 여러분을 도와드릴 수 있는 사수 역할이 되어드리고 싶습니다 :)
어떻게 되나요?
먼저, 비동기의 개념을 확실하게 다지기 위해 1주차만 예외적으로 이론과 실습의 비율이 3:1 로 구성되어 있습니다. 다음으로 2~3주차에 걸쳐 각각 동기와 비동기 프로그램을 개발해봅니다. 4주차에는 성능 테스트를 통해 눈으로 직접 비동기 NIO 서버의 성능을 확인해봅니다. 최종적으로 5주차에는 다양한 요구사항을 바탕으로 실무형 심화개발을 구현하며 과정을 마무리해봅니다. 간혹 프로젝트를 구성해 실습 과제 제출하라는 회사가 좀 있는데, 이런 경우에 좋은 연습이 될 것 같습니다.
- JDK 17
- Kotlin 1.9.24
- Spring Boot 3.3.1
- Spring MVC
- Spring Webflux
- Junit 5.6.1
- Kotest 1.1.3
- Kotlin Coroutine 1.8.1
- R2DBC 3.3.1
- Resilence4j 2.0.0
- Gradle 7.5
- H2 2.2.224
- Mariadb 11.0.2
- Redis 7.0.12
- Docker latest
다소 많아 보일 수 있지만, 각 기술이 서비스 구현에 어떻게 쓰이는지 연결고리 위주로 살펴볼 예정이라 분량 자체는 많지 않으니 걱정하지 않으셔도 됩니다.
설치하셔야 하는 개발 환경은 IntelliJ(Ultimate)와 Docker 단 두 개입니다. (IntelliJ Community 에디션은 Spring 실습에 다소 어려움이 있을 수 있습니다.)
Who
추천 수강 대상
기존에 Java로 Spring MVC 개발을 하셨던 분들이라면 충분히 수강하실 수 있도록 커리큘럼을 설계했습니다.
✓ Spring MVC로 백엔드 서버를 구성해본 경험이 있는 개발자
✓ Kotlin 기반으로 Spring 을 개발해보고 싶으신 백엔드 개발자
✓ 동기/비동기, 블로킹/논블로킹의 개념은 알지만, 이를 실무에 효과적으로 적용시키는 데 많은 어려움을 겪고 있는 실무자
✓ 복잡한 Reactor 기반이 아닌, 유지보수가 훨씬 간편한 Kotlin Coroutine 기반의 Spring Webflux로 성능향상을 경험해보고자 하는 실무자
✓ 1:1 피드백을 통해 백엔드 학습 방향성에 대한 고민을 구체적으로 상담받고 싶은 개발자
★ Benefit ★
Kotlin 입문용 온라인 강의를 제공합니다.
비동기 프로그래밍에 관심은 많은데, Kotlin 언어가 처음인 분들을 위해
강의를 구매하자마자 미리 학습할 수 있도록 Kotlin 온라인 강의와 부가자료를 모두 제공합니다.
* [백엔드 실전 역량 강화를 위한 5개 도메인 프로젝트 (Kotlin/Spring)] 강의 Part 1~3 과 동일합니다.
★ Benefit for Group★
함께 들어야 더욱 의미 있는 비동기 프로그래밍
최대 55% 할인 받고 구매하세요!
백엔드 개발에 진심인 동료 혹은 친구가 있다면 본 페이지를 공유하세요.
mini workshop 도 함께 하면 더욱 즐거울 거예요 :)
Process
패캠 강남역 오프라인 과정은
이렇게 진행 됩니다.
Community
과정 중 궁금한 내용은 언제든 강사님께 질문하고
동료들과 함께 성장할 수 있는 커뮤니티
✓ 강의를 듣는 중 이해가 안가는 부분이 생기면 바로 질문
✓ 트렌드와 커리어 등 고민을 함께 나누는 커뮤니티
* 본 커뮤니티는 디스코드를 통해 운영 되며 오프라인 수강 기간 동안 지속 됩니다.
* 강사님이 현업 중 답변하시기에 답변까지 영업일 기준 2일 내외 시간이 소요될 수 있습니다.
Classroom
강남역 4번 출구
도보 ‘3초’ 거리에 있는 강의실
쾌적한 강의장
강의에 집중할 수 있는
최적의 강의장
자주 묻는 질문
FAQ










