1. 강의제작 배경 및 학습목표
"이 강의는 Kotlin/Spring 문법 입문 강의가 아닙니다.
실제 서비스 요구사항을 기반으로 설계부터 구현까지를 압축적으로 경험합니다."
화려한 디자인 기반의 강의를 위한 강의가 아닙니다! 정말 대규모트래픽을 경험하고 싶은데
redis, kafka 를 잘 써보고 싶은데, 실무에서 경험하지 못하는 수강생들
or 경험했지만 더 잘하고 싶은 수강생을 위한 강의입니다!
1) AI tool(Claude Code, Cursor CLI) 사용이 대세가 된 지금, 구현은 AI 가 빠르게 대체하고 있는 상황,
코드를 어떻게 빠르고 잘짜냐?의 역량보다 아키텍처 관점에서 비지니스 요구사항을 명확히 이해하고
이에 적합한 개발을 빠르고 잘하는 게 중요해 졌음(요구사항 분석과 설계관점)
→AI 의 한계점은 분명 존재, 70%이상 자동화는 가능하지만 20~30%는 여전히 개발자의 몫
2) 많은 주니어 개발자들이 CRUD와 같은 기본 기능은 익숙하지만,
언어의 핵심이 되는 자료구조, 실무에 필요한 패키지 구조 설계, 데이터 흐름 제어,
동시성 처리(DB Lock, Redis, Kafka 등과의 연계 활용) 등은 정확히 이해하지 못하는
경우가 많음
3) Java Spring 기반 개발자들에게 Kotlin은 가장 빠르게 적응할 수 있는 언어 임
(Spring 프레임워크 내에서 Kotlin만 적용하면 개발은 그대로 가능함)
→ 이제는 ‘어떻게 Kotlin답게 개발할 것인가?’에 집중해야 할 때!
(OOP 중심의 Java에서 OOP + FP 지향의 Kotlin으로 자연스럽게 전환하는 방법에 초점)
4) 왜 Kotlin을 배워야 하나?
Kotlin은 문법적 간결함을 넘어, 생산성, 안정성(Null safety), Coroutine 기반 비동기 처리,
FP 스타일 설계 등 실무에서 더 나은 코드를 만들 수 있는 수단이 됨
5) Node.js(NestJS 등) 기반의 비교적 최신 기술을 사용해본 개발자들에게도 JVM 생태계와
Kotlin은 빠르게 익힐 수 있는 기술 스택 임
val Goal = "Kotlin을 단순히 쓸 줄 아는 수준을 넘어,
Spring 기반 실무 프로젝트에서 ‘Kotlin답게’ 설계하고 구현할 수 있는 개발자”로 성장하는 것"
※ 백엔드 개발에 대한 전반적인 기본 강의가 아니며, 미들급 개발자로 도약하기 위한 강의 임!
2. 기능별 익히는 강의 주요 목차
1) Kotlin 이란?
(1) Kotlin 주요 자료구조
(2) Kotlin 주요 문법
2) Spring 이란?
3) Spring 컨테이너, Bean
4) Spring @controller, @service, @repository
5) 요구사항 분석 및 ERD 설계
6) 개발 architecture
(1) 레이어드 아키텍처(Layered Architecture)
(2) 헥사고날 아키텍처(Hexagonal Architecture)
(3) 클린 아키텍처(Clean Architecture)
(4) EDA(Event-Driven Architecture) 패턴
(5) 강의용 Architecture
7) 주요 기능 개발(Back-end)
(1) 로그인 로그아웃
(2) Home body
- 최초 진입 시 표시 되는 화면을 위한 기능
(3) 상품(product)
- 사용자가 상품조회(상품정보, 가격정보, 재고수량)
(4) 장바구니(cart)
- 상품을 선택하여 장바구니로 저장
- 장바구니 조회
(5) 주문서(order)
- 장바구니의 상품을 주문 하기위한 주문서
- Spring Feign을 이용하여 도메인 분리하기(cart 정보 가져오기)
(6) 쿠폰(coupon)
- 주문 내용 100%무료 쿠폰 발급(인기쿠폰 발급 시 동시성 문제 해결)
(7) 결제
- 전액 무료 쿠폰을 사용하여 결제로직을 구현(0원 결제 - No PG)
- 재고차감, 배송정보 생성, 마케팅 정보 생성 등의 가상의 요구사항을 기반으로 개발로직 구현
8) 테스트 코드 작성
(1) 테스트 코드란?
(2) 주문하기 기능을 대상으로 테스트 코드 작성
9) Spring 캐시
(1) HomeBody 상품 리스트 구현 내 로컬 캐싱 추가
(2) 분산 캐시란?
(3) Redis 란?
(4) Redis 로 캐싱 관리
10) Kafka 기반 도메인 분리
(1) Kafka 란?
(2) 결제 시 쿠폰도메인을 완전하게 분리하기
(분산락의 한계와 트랜젝션 분리를 통해 성능개선)
(3) Saga 패턴이란?
(4) Transactional Outbox 패턴이란?
11) REST 기반 마이크로 서비스 간 통신 - OpenFeign
(1) OpenFeign
3. 강의 이후의 기대효과
1) Kotlin + Spring 기반의 프로젝트 "설계" 및 "구현" 경험을 갖추게 됩니다.
2) Redis 기반 캐싱 처리 및 NoSQL 연동 방식에 대한 실전 적용 능력을 확보할 수 있습니다.
3) Kafka 기반의 도메인 분리 및 메시징 처리 구조 설계에 대해 학습하고,
이를 통해 발생 가능한 이슈(중복 소비, 순서 보장 등)에 대한 대응 전략을 익히게 됩니다.
4) Kotlin + Spring 스택을 사용할 때 자주 마주치는 동시성 문제(Race condition, DB Lock 등) 를
어떻게 설계하고 처리할 수 있는지 이해하게 됩니다.
5) 마이크로 서비스간에 이벤트 기반 비동기 처리와 동기기반 통신을 제어할 수 있게 됩니다.
'Kotlin Spring > Kotlin Spring 강의 내용' 카테고리의 다른 글
| 4) Spring @controller, @service, @repository (0) | 2025.08.29 |
|---|---|
| 3) Spring 컨테이너, Bean (0) | 2025.08.26 |
| 2) Spring Boot란? (맛보기) (0) | 2025.08.25 |
| 1. (2) Kotlin 주요 문법 (0) | 2025.08.25 |
| 1. Kotlin 이란? & (1) 주요 자료구조 (1) | 2025.08.24 |