실리콘밸리 AI 개발자의 LLM 서비스를 위한 RAG
Hong
LLM의 한계? 실리콘밸리 현업에서 겪은 RAG 시행착오와 운영 노하우로 실전 문제 해결법을 알려드립니다.
입문
JavaScript, Python, 인공지능(AI)
Spring Boot 3.x + Kotlin으로 3개 인스턴스 클러스터를 구축하고, Redis Pub/Sub 분산 메시징과 Nginx 로드밸런서를 활용하여 대용량 트래픽 처리가 가능한 확장 가능한 WebSocket 실시간 채팅 서버를 개발합니다.







오피지지
임직원들도 이 강의를 듣고 있어요!





오피지지
임직원들도 이 강의를 듣고 있어요!
먼저 경험한 수강생들의 후기
5.0
Jlos Ho
이 강의도 정말 Goat입니다. 다른 강의도 수강하였지만 이렇게 현실적이고 옆에서 알려주는듯한 강의는 이 인프런 플랫폼에서 유일한거 같네요 많은 도움이 되었습니다. 감사합니다.
5.0
Hoos
이런 아키텍처도 있구나... Kotlin부터 플랫폼에 대한 아키텍처 및 실제 코드를 통해 채팅 플랫폼에 대해서 많은 분들이 이해를 하실 수 있는 좋은 강의인거 같습니다.
5.0
미래 1인 개발자
강의를 촬영하는데에 있어서 서버 아키텍처에 도움을 주고 메시지 처리에 대한 설계를 진행한 토스 조금씩 고여하는 서버 개발자 입니다. 이떄까지 무상태 프로토콜을 통한 통신을 주제로만 진행을 해보았는데, 이렇게 새로운 주제로 강의를 촬영하게 되어서 꽤나 기쁘고 재미있는 시간이였습니다. 질문도 자유롭게 남겨주세요. 저도 시간을 내며 관심있게 보고 있고 질문에 대해서도 저의 견해를 남겨보는 시간을 가져보고 싶네요. 강의 많은 관심 부탁드립니다.
Redis Pub/Sub을 활용하여 여러 서버 인스턴스 간 실시간 메시지를 동기화하는 분산 메시징 시스템
Docker Compose로 3개 인스턴스 클러스터를 구성하고 Nginx 로드밸런서로 트래픽을 분산 처리하는 방법
Spring WebSocket을 이용하여 양방향 실시간 통신을 구현
멀티모듈 구조로 Domain-driven Design을 적용하여 확장 가능한 서버 아키텍처를 설계하는 방법
Redis를 활용한 메시지 시퀀스 관리로 분산 환경에서도 메시지 순서를 보장하는 기법
Docker 컨테이너 기반 배포와 헬스체크, 로그 모니터링을 통한 서비스 운영 방법
Spring Boot 3.x + Kotlin의 최신 기능을 활용한 모던 백엔드 개발 방법
메시지 중복 처리 방지, 세션 정리, 리소스 해제 등 안정적인 서비스 운영을 위한 방어 코딩 기법
실제 서비스 환경에서 수만 명의 사용자를 감당할 수 있는 확장 가능한 서버 아키텍처를 직접 설계하고 구축하게 됩니다.
🏗. 단순히 기능을 구현하는 것을 넘어, 대규모 트래픽에도 안정적으로 동작하는 분산 시스템의 핵심 원리를 체득할 수 있습니다.
먼저, 여러 대의 서버가 하나의 시스템처럼 동작하도록 Nginx 로드밸런서로 트래픽을 분산하고 🌐, Redis Pub/Sub을 이용해 서버 간 메시지를 실시간으로 동기화하는 방법을 배웁니다. 이 과정에서 C10K (1만 동시 접속) 문제를 해결하는 노하우를 자연스럽게 익히게 될 것입니다.
또한 ⚡데이터베이스 커넥션 풀을 튜닝하고, JPA 배치 처리와 커서 기반 페이지네이션을 적용하여 응답 속도를 밀리초 단위까지 개선하는 경험을 하게 될 것입니다.
마지막으로, Docker 컨테이너🐳 를 통해 개발부터 배포까지 일관된 환경을 유지하고, Health Check와 모니터링 시스템🩺 을 구축하여 서비스 장애를 사전에 방지하는 안정적인 운영 기법까지 학습합니다. 이 모든 과정을 최신 스택인 Kotlin과 Spring Boot 3.x, websocket를 활용하여 세련되고 효율적인 코드로 구현합니다 ✨.
명령어로 전체 시스템(서버, 데이터베이스, 캐시 등)을 한 번에 실행할 수 있는, 완전한 형태의 애플리케이션 패키지를 얻게 됩니다. 단순히 코드 조각의 집합이 아닌, 즉시 배포 가능한 서비스입니다.
사용자의 요청부터 데이터 저장까지 전체 흐름을 담은 시스템 아키텍처 설계도를 직접 구축하고 이해하게 됩니다. 이 설계도는 여러분의 기술적 깊이를 증명하는 훌륭한 포트폴리오 자산이 됩니다.
사용자가 로그인하고, 채팅방을 만들고, 다양한 메시지를 실시간으로 주고받는 핵심 채팅 기능이 완벽하게 구현된 결과물을 갖게 됩니다.
n개의 Spring Boot 서버가 Nginx 로드밸런서 아래에서 동작하는 서버 클러스터를 구축합니다. 이를 통해 트래픽이 증가할 때 서버 인스턴스를 추가하는 것만으로 간단하게 시스템을 확장하는 방법을 배우게 됩니다.
한 서버에 장애가 발생하거나, 사용자가 서로 다른 서버에 접속해도 Redis Pub/Sub을 통해 모든 메시지가 누락 없이 전달되는 안정적인 메시징 시스템을 구축합니다.
PostgreSQL에 채팅 데이터를 영구적으로 저장하고, Redis에 세션 정보나 캐시 데이터를 저장하여 데이터의 안정성과 빠른 응답 속도를 모두 만족시키는 하이브리드 데이터 시스템을 완성합니다.
여러 서버 인스턴스 간 실시간 메시지 동기화를 위해 Redis의 발행-구독 패턴을 구현합니다. 중복 메시지 방지, 메시지 순서 보장, 서버별 격리 처리 등 프로덕션 레벨의 분산 메시징 시스템을 구축하여 확장 가능한 실시간 통신 기반을 마련합니다.
Spring WebSocket을 활용하여 HTTP보다 훨씬 효율적인 양방향 실시간 통신을 구현합니다. 세션 관리, 연결 상태 추적, 에러 핸들링 등을 통해 안정적인 실시간 채팅 기능을 제공하며 해결을 위한 최적화 기법도 적용합니다.
Domain-driven Design 원칙에 따라 API, Domain, Persistence, WebSocket 계층을 독립적인 모듈로 분리합니다. 각 모듈의 책임을 명확히 구분하고 의존성 방향을 제어하여 유지보수성과 테스트 용이성을 극대화한 확장 가능한 서버 아키텍처를 구축합니다.
n개의 Spring Boot 인스턴스에 트래픽을 균등 분산하는 Nginx 로드밸런서를 구성합니다. HTTP 요청뿐만 아니라 WebSocket 연결도 안정적으로 프록시하며, 프로덕션 레벨의 리버스 프록시 설정으로 고가용성 서비스 환경을 구축합니다.




Spring과 100% 혼용이 된다고 말하며, Jetbrain에서 만든 Kotlin이라는 언어는 Spring에서 적합하지 않은 동시성 프로그래밍에 최적화되어 있습니다.
Kotlin은 간결하고 직관적인 문법을 제공하는 형태이기 떄문에 개발자가 더 적은 코드로 더 많은 작업을 수행 할 수 있습니다. 이는 가독성 향상의 효과가 있으며 요지보수가 더 용이하게 합니다.Kotlin은 널 안정성을 기본적으로 지원하여 널 포인터 예외(NullPointerException)를 줄일 수 있습니다. 또한, 함수형 프로그래밍을 지원하여 보다 기능적이고 선언적인 방식으로 코드를 작성할 수 있습니다. 이러한 기능들은 개발 생산성을 높이고, 버그 발생 가능성을 줄여줍니다.Kotlin은 100% 자바와 호환되므로 기존 자바 프로젝트에 쉽게 통합할 수 있습니다. 이는 자바 개발자들이 Kotlin을 배우는데 큰 장벽이 없으며, 기존 코드를 유지하면서도 새로운 Kotlin 기능을 사용할 수 있다는 것을 의미합니다.📌 가능합니다. 불가능한 개발 방식은 아닙니다.
📌 하지만 서버 개발자는 일반적으로 서버에 대한 리소스를 최대한 절감을 하여 가져가야 합니다.
📌 그러기 떄문에, 채팅서버와 같이 지속적인 Connection이 유지되어야 하는 통신 같은 경우에는 WebSocket을 사용하는것이 매우 적합합니다.
전문성이 떨어지는 모습으로 여겨질지라도 보여주기 편한 강의는 강의가 아니라고 생각합니다. 디버깅도 진행하는 시간또한 강의의 일부 입니다.
개발은 말로하는것이 아닙니다. 실제 구현을 해보고 동작하는 과정을 함께 하실 수 있습니다.
기획자분들... 살려주세요..
제가 실무에서 적용해서 효과를 보았던 개념들을 녹이고자 하였습니다. 이 과정을 통해서 실무를 간접적으로 체험하시거나 실무자라면 실무 환경에 더 뛰어난 퍼포먼스를 보여주실 수 있습니다.
강의를 진행하시면서 질의응답을 많이 남겨주시기를 바랍니다. 이 강의는 저 혼자만의 지식을 통해서 만들어지지 않았습니다. 다양한 대기업 개발자분들의 의견또한 취합되어 있습니다.
강의 완성에 도움을 주신분들에 대한 간단한 이력은 다음과 같습니다.
private val supported_one = "카카오페이 플랫폼 백엔드 개발자"
private val supported_two = "토스증권 API 서버 개발자"
private val supported_three = "비밀로 해달라는 유니콘 스타트업 서버 개발자"Macos M3를 사용하여 촬영되었습니다.
Docker를 기본적으로 사용합니다.
java --version : 17.0.12 2024-07-16 LTS
JetBrain 계열의 IDE를 사용합니다.
Gradle을 사용하여 빌드 합니다.
소스코드는 혹시 모르는 버전 충돌을 방지하기 위해 빌드 파일까지 전부 포함되어 있습니다.
학습 대상은
누구일까요?
주니어→미드레벨 성장을 원하는 백엔드 개발자
실시간 서비스 개발 경험을 쌓고 싶은 개발자
분산 시스템 아키텍처에 관심있는 개발자
시니어 개발자로 성장하고 싶은 미드레벨 개발자
Docker 기초 지식이 있는 개발자 또는 배우고 싶은 개발자
게임/채팅/소셜 서비스 개발자
포트폴리오를 강화하고 싶은 취업 준비생
기술 스택 확장을 통한 이직을 계획중인 개발자
선수 지식,
필요할까요?
Spring에 대한 기본적인 지식이 있으면 좋습니다.
웹 소켓 통신에 대한 기본적인 지식이 있으면 좋습니다.
이 모든 지식이 없어도 됩니다. 프로젝트를 직접 구현하기 떄문에 같이 학습 가능합니다.
인프런인증
커리어인증
9,693
명
수강생
608
개
수강평
167
개
답변
4.8
점
강의 평점
31
개
강의
집에서 빈둥대다 개발에 흥미를 느껴 개발 공부를 시작하였고 현재는 판교에서 플랫폼 서버 개발을 담당하여 진행하고 있습니다. 제가 공부를 했던 방법과 실무에서 접하실 수 있는 여러가지 문제점들과 해결책을 여러분들에게 제공하고 싶어 지식공유자 활동을 이어나가고 있습니다.
강의는 오로지 저만의 지식을 통해 만들어지지 않습니다. 모든 강의는 함께하시는 분들이 계십니다.
토스 개발자분의 추천으로 합류하신 실리콘 밸리 개발자 Waddy
[지식공유자 경력]
[前] 샌드박스IP 관련 블록체인 개발자
[前] 메타버스 백엔드 개발자
[現] 판교에서 고여가는 서버 개발자
[인터뷰 이력]
[기타 문의]
[공식 사이트]
전체
28개 ∙ (4시간 55분)
해당 강의에서 제공:
1. 강의 소개
08:57
2. 강의 수강 참고사항
04:06
전체
30개
4.9
30개의 수강평
수강평 10
∙
평균 평점 5.0
수정됨
5
취업을 준비하고, 실무에서 일을 하면서 강사분 강의를 많이 참고하고 토대로 학습을 진행하였는데, 정말 너무 많은 도움이 되는 양질의 주제인거 같습니다. 함께 코드를 작성하는 과정도 너무 유익하고 옆에서 같이 코딩을 하는 느낌이 들다보니 그만큼 더 학습 효과가 좋아지는거 같아요!! 앞으로 더 자주보고 좋은 강의가 만들어지면 좋겠습니다. 감사합니다!
안녕하세요 텐버거님! 취업을 준비하시다니!! 이 강의가 많은 도움이 되었으면 좋겠습니다 추후에 취업도 성공하신다면 소식 전해주세요 ㅎㅎ 감사합니다!
지식공유자님의 다른 강의를 만나보세요!
같은 분야의 다른 강의를 만나보세요!
지식공유자의 깜짝할인 중
₩8,144
20%
₩82,500