대규모 트래픽 처리가 필요한 가장 대표적인 도메인 채팅 서비스!
막상 구현하려고 강의나 블로그 레퍼런스 찾아보고 많이 실망하셨죠?

채팅 서비스, 채팅 플랫폼, 대규모 시스템, 대용량 트래픽, 대규모 트래픽, 트래픽 처리

그래서 준비했습니다!

단순 웹소켓 실습만 만들어보고 대용량 트래픽 핸들링까지 할 수 있다고 말하는 강의와 다릅니다.
이 강의 하나로 진짜 대규모 서비스/대용량 트래픽 경험을 완벽하게 하게 해 드립니다.

POINT 1

20여개의 서버로 만들어진 대규모 채팅 플랫폼을 단계별로 구축하며
마스터하는 대규모 서비스 개발 & 트래픽 처리

상용 채팅 서비스와 유사한 규모로 1:1 단일 채팅, 단체 채팅 기능부터 핵심 기능을 구현하며
실시간 대규모 트래픽을 견디는 백엔드 아키텍쳐를 완벽하게 경험할 수 있는 채팅 플랫폼을 만들어봅니다.

기능 개발 | 단체 채팅과 푸시 알림까지 담은 대규모 채팅 플랫폼 구현

Step 1 Image
STEP 1. 채팅 뼈대 프로젝트 개발
| 학습 내용
· Rest API와 WebSocket의 차이
· 프로토콜 기반 다이렉트 메세지
· 메시지 브로드 캐스팅
· 페이크 콘솔 채팅 클라이언트 구현



Step 1 Image
STEP 2. 채팅 서비스 핵심 기능 개발
| 학습 내용
· Http Session과 Spring Security 기반의 사용자 인증 기능, 세션 정보 유지
· JPA & MySQL 기반의 메시지 테이블 기반 대화의 기록 저장
· Spring 기반의 백엔드로 연결 요청, 수락, 거부, 삭제 처리
· 1:1 메세지와 그룹 메세지, 목업 푸시 알림 서비스 개발

*본 클라이언트 단 이미지는 목업 이미지입니다.

채팅 서비스, 채팅 플랫폼, 대규모 시스템, 대용량 트래픽, 대규모 트래픽, 트래픽 처리

이렇게 많은 기능과 권한이 연결된 모놀리틱 플랫폼은
대규모 트래픽에 취약할 수 밖에 없어요!

서비스 확장 | 모놀리틱 서비스의 분해를 통한 대용량 트래픽을 견디는 시스템으로의 확장

Step 1 Image
STEP 3. 서비스 부하 분산을 위한 분리 시작
| 학습 내용
· Spring 멀티 데이터소스 지원
· Redis 캐싱 레이어
· Nginx 기반의 로드밸런서 추가
· Redis 기반의 메시지 시퀸스 넘버 생성, 메시지 구간 요청 처리 기능
· DB 샤딩 & 레디스 클러스터링



Step 1 Image
STEP 4. 모놀리틱 서비스 분해
| 학습 내용
· 단방향 & 양방향 카프카 연동
· 로드밸런서를 활용한 커넥션 서비스 분리
· Nginx 기반 로드 밸런서에 다중 인스턴스와 Consul 서비스 디스커버리 추가



이번 채팅 프로젝트 하나만으로도 대용량 트래픽 & 데이터 처리를 위한
기술 스택 15가지를 한 번에!

채팅 서비스, 채팅 플랫폼, 대규모 시스템, 대용량 트래픽, 대규모 트래픽, 트래픽 처리, 자바, 스프링, Java, Spring, 백엔드, 백엔드 개발자

잠깐! 그래서 이 강의는 적절한 Redis & Kafka 도입 시기부터
사용 방법까지를 강사님과 함께 따라가며 학습합니다!
모놀리틱 서비스에서 발생할 수 있는 트래픽 부하 분산을
위해서는 꼭 알아야 할 필수 기술 스택을 실제 전환 단계에서 다뤄봅니다.

POINT 2

메시징 서비스 개발 경력만 5년, 도합 24년 경력의 강사님이 알려주는
실무에서 대규모 트래픽 대응을 위해 꼭 필요한 분산 시스템 전략 핵심 9가지

아직까지 캐싱은 레디스, 메세징은 카프카로 외워서 무작정 사용하셨다면 주목!
모놀리틱 서비스에서 MSA로 전환하기 위해서 고려해야 하는 아키텍쳐 단의 포인트를 기술 스택에 적용해 학습해야 합니다.
기술 스택 결정 과정에 대한 이해를 기반으로 구성한 커리큘럼으로 비로소 Redis, Kafka를 정복할 수 있습니다.

Check Icon 데이터베이스의 고가용성 확보를 위한 리플리카 & 샤딩 전략

스프링부트 JPA 내의 멀티 데이터소스 설정을 사용하여 읽기 전용 데이터베이스 레플리카를 만들어 조회 처리에 사용하여 DB 부하를 분산합니다.

트래픽 쏠림 발생 시 데이터를 분산하여 저장하는 샤딩을 통해 DB에 가해지는 부하를 병렬로 처리할 수 있게 하여, 확장성과 성능을 보장합니다.

Check Icon 성능 개선 및 데이터베이스 보호, 정합성 보장을 위한 Redis 활용

ImageSlide- 서버가 다운되면 휘발될 세션 정보 유지를 위해 Redis 도입합니다.<br> - 트래픽 쏠림 발생 시 캐싱 레이어 추가를 통해서 조회 빈도수 높은 데이터를 따로 처리하여 상대적으로 느린 DB 속도를 커버 합니다.
- 서버가 다운되면 휘발될 세션 정보 유지를 위해 Redis 도입합니다.
- 트래픽 쏠림 발생 시 캐싱 레이어 추가를 통해서 조회 빈도수 높은 데이터를 따로 처리하여 상대적으로 느린 DB 속도를 커버 합니다.
ImageSlide- 각 메시지에 시퀀스 넘버를 부여하여 메시지가 전송 순서를 파악, 유지할 수 있도록 빠른 속도의 Redis를 활용합니다.<br> - 네트워크 이슈등으로 메세지 누락 등의 현상을 방지하고 순서 보정을 통한 정확한 메세지 송수신을 보장할 수  있습니다.
- 각 메시지에 시퀀스 넘버를 부여하여 메시지가 전송 순서를 파악, 유지할 수 있도록 빠른 속도의 Redis를 활용합니다.
- 네트워크 이슈등으로 메세지 누락 등의 현상을 방지하고 순서 보정을 통한 정확한 메세지 송수신을 보장할 수 있습니다.
ImageSlide- Redis Cluster는 샤딩과 비슷한 개념으로, 여러 노드에 자동적인 데이터 분산을 하고, 일부 노드가 실패 혹은 통신 단절에도 계속 운영되는 가용성을 제공하여 대규모 트래픽에도 견딜 수 있도록 합니다.
- Redis Cluster는 샤딩과 비슷한 개념으로, 여러 노드에 자동적인 데이터 분산을 하고, 일부 노드가 실패 혹은 통신 단절에도 계속 운영되는 가용성을 제공하여 대규모 트래픽에도 견딜 수 있도록 합니다.

Check Icon 모놀리틱 서비스의 복잡도를 줄이고 분산 시스템을 만들기 위한 Kafka 활용

푸시 알림 서비스의 특징인, 사용자가 오프라인일 때만 알림을 보내면 되는 특징을 이해하여 서비스 복잡도를 줄이기 위해 단방향 카프카를 연동합니다.

커넥션 서버와 메시지 서버를 분리하는 이유는 성능 개선과 확장성을 위해 커넥션 관리 책임과 채팅 비즈니스 로직 관리 책임을 분리합니다.

대규모 트래픽 처리에서 장애 방지를 위해 고려해야하는 가장 중요한 2가지
책임 분리 & SPOF 제거까지 하나의 프로젝트에서 구현해봅니다!

책임 분리란?

모든 코드를 테스트하지 않기 위해서는 한 클래스에 너무 많은 책임을 부여하지 말고 단 하나의 책임 만 수행하도록 해서 변경 사유가 될 수 있는 것을 하나로 만들어야 한다는 것을 의미합니다.

SPOF란?

전 서비스에 장애를 일으킬 수 있는 포인트, 시스템 구성 요소 중에서, 동작하지 않으면 전체 시스템이 중단되는 요소를 의미합니다.

POINT 3

24년차 개발자, 쿠팡과 카카오 면접관과 테크 인터뷰어,
카카오톡 메세징 서버 대규모 리팩토링까지 화려한 경력의 강사님이 완벽하게 구축한 프로젝트를 만나보세요.

  • Check Icon

    누구나 인정하는 1티어 IT 기업 재직

    쿠팡 & 카카오 테크
    인터뷰어

  • Check Icon

    깊이있는 멘토링 경험

    F-lab, 인프런
    멘토링 경험

  • Check Icon

    실시간 & 대규모 트래픽 도메인

    게임, 메세지, 풀필먼트
    시니어 개발자

Profile Image
안녕하세요. 20여년간 여러 회사에서 B2B, 게임, 메시징 서비스 등 다양한 프로젝트에 참여하면서 테크 리드, 테크 인터뷰어, 코드/디자인 리뷰어 등으로 활동해온 이상우라고 합니다.
특히, 대용량 트래픽을 위한 MSA와 하이브리드 아키텍처를 경험하면서 서비스 구조 개선과 대규모 리팩토링을 수행해 왔습니다. 현재는 F-lab과 Inflearn에서 Java Backend 멘토링, 방향성 가이드, 이력서 리뷰, 테크 인터뷰, 커리어에 대한 상담을 진행하고 있습니다.

이번 강의는 친숙한 채팅을 서비스 도메인으로 선정하고 확장할 수 있는 채팅 플랫폼을 구현하기 위해 고가용성과 확장성을 확보하면서 SPOF를 제거해 나가는 형식으로 진행됩니다.
단순해 보이는 채팅 메시지를 주고받기 위해서 꽤 많은 처리가 필요함을 단순한 예제 수준의 코드가 아닌 수천 라인의 코드를 직접 만들어보면서 배울 수 있습니다. 특히 다양한 인프라 기술 스택을 하나씩 더해가며 점진적으로 하나의 큰 시스템을 구성하는 과정을 공부할 수 있도록 구성했습니다.
자바와 스프링 기본기를 공부하고 분산 백엔드 시스템이 어떻게 구성되는지 궁금한 분에게 도움이 되리라 생각하고, 다양한 백엔드 인프라 기술 스택이 언제, 왜 필요하고 어떻게 사용하는가를 학습하고 응용할 수 있기를 기대합니다.
어려워 보일 수 있지만 하나씩 차분히 함께하시면 크게 어렵지 않습니다.
여러분의 성장을 응원합니다.

[경력]
전) Coupang - Staff Back-end Engineer L6-2 IC
전) 카카오 - Senior Software Developer
전) NHN - 책임

POINT 4

앞선 개념들이 어려워보여도 걱정하지 마세요!
분산 시스템 설계의 핵심인 DB를 더 잘 이해하기 위한 특별한 부록 강의를 드립니다!

딱! 개발자가 알아야 할 만큼만 컴팩트하게 담아 풍부한 시각 자료를 통해 알기 쉽게 설명 드립니다.

CHECK 1   |   분산 시스템 설계에 필수! 데이터베이스 핸들링을 위한 개념 모음


CHECK 2   |   기술 면접까지 완벽하게 대비 가능! 개념들이 실무에서 적용된 다양한 사례까지!

대규모 트래픽을 위한 분산 시스템 설계에 기초가 되는 개념도
꼭꼭 씹어 소화하실 수 있도록 패캠이 알차게 담아 드려요!

본 강의는 대용량 트래픽 처리를 위한 데이터베이스 첫 걸음 강의 중 일부와 동일합니다.

Profile Image
SPECIAL EVENT
No.1 자바 개발 환경 IntelliJ IDE Ultimate(유료) 버전
6개월 무료 사용 쿠폰을 지원합니다.

Jetbrains사의 IntelliJ IDE Ultimate은 개인용 기준, 연간 요금 $169.00, 월별 요금 $16.90에 판매되고 있습니다. 선착순으로 쿠폰 소진시까지 참여 가능하며, 강의장 내 공지사항을 통해 신청 후 차주 수요일에 발급됩니다.

BENEFIT
현업의 노하우와 함께 친절한 답변으로
궁금한 점도 바로 해결하는 질의응답 커뮤니티
실습 중 에러가 나면? 질의응답 채널을 통해 빠른 해결 !
강의를 듣는 중 이해가 안가는 부분이 생기면 바로 질문하세요 !
* 강사님의 질의응답은 2025.01.24~ 2028.1.24 동안 운영 됩니다.
* 강사님이 현업 중 답변하시기에 답변까지 영업일 기준 7일 내외 시간이 소요될 수 있습니다.
Community Image

POINT 3

타사에서 제대로 찾기 어려운 고퀄리티 프로젝트를
이렇게 저렴한 가격에 평생소장까지!

ImageSlide
ImageSlide

수강 대상

자바와 스프링 기본기를 다진 후, 분산 백엔드 시스템이 어떻게 구성되는지 궁금한 분.

실시간, 대용량 트래픽을 커버하는 백엔드 개발을 경험하고 싶은 백엔드 개발자 

채팅 서비스 개발을 통해서 포트폴리오를 업그레이드하고 싶은 백엔드 개발자

시니어 개발자와 개발 환경 세팅(IntelliJ, Docker, curl, MySQL Workbench)부터 프로젝트까지 완벽하게 해 보고 싶은 분