채널톡 아이콘
BEST

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

대규모 데이터와 트래픽을 지탱하기 위한 시스템을, 스프링부트로 직접 만들면서 배워봅니다.

이런 걸 배울 수 있어요

  • 대규모 시스템 디자인

  • Microservice Architecture

  • Event-Driven Architecture

  • 분산 시스템에 대한 이해

  • 동시성 문제를 다루는 방법

  • MySQL, Redis, Kafka에 대한 이해 및 실전 활용 전략

  • 데이터베이스 인덱스를 활용한 대규모 데이터 쿼리 최적화

  • 복잡한 계층형 테이블 설계 및 최적화

  • 높은 쓰기 트래픽에서도 데이터 일관성을 보장하는 방법

  • 이벤트 스트림 처리 및 비동기 애플리케이션 구축

  • 이벤트 유실 방지를 위한 시스템 구축

  • 대규모 트래픽 및 복잡한 아키텍처에서 활용할 수 있는 방법론

  • 다양한 요구사항에 적용할 수 있는 성능 최적화 전략

  • 캐시 최적화 전략

IT 서비스 대기업 개발자의 대규모 시스템 실전 개발 노하우!

본 강의는 대규모 시스템구축하기 위한 기술적 지식방법론을 설명하고, 스프링부트직접 코드를 작성하며 만들어봅니다.

IT 서비스 대기업에서 대규모 시스템을 지탱하며 경험실전 개발 노하우를 전달합니다.

기술의 선정 및 고민 과정도 자세하게 서술하고, 설계를 만들어가는 과정수백장의 이미지 자료와 함께 살펴봅니다.

다음과 같은 분들에게 추천드립니다.

  • 대규모 데이터와 트래픽을 어떻게 처리하는지 궁금한 사람


  • 성능 최적화가 궁금한 사람

  • 경력은 있지만 트래픽 경험은 없는 사람

  • 단순하게 이론만 설명하는 것 보다는, 실제로 어떻게 만드는지 궁금한 사람

  • 스프링부트로 게시판을 1번 이상 개발해본 사람

  • 데이터베이스 기초와 간단한 SQL 작성 방법을 아는 사람


선수 지식

  • Spring Boot

Spring Boot 동작 원리나 사용 방법에 대해서 다루진 않습니다.

  • Java

Java 21을 사용하지만, 복잡한 최신 문법을 사용하진 않기 때문에, 반드시 21 버전에 대해 알 필요는 없습니다. Java 8 이상 문법을 학습했으면 충분합니다.

  • 관계형 데이터베이스 및 SQL 기초 문법

관계형 데이터베이스 기초 지식, SQL 기초 문법을 설명하진 않습니다. CREATE, SELECT, UPDATE, DELETE 문법만 작성할 줄 알면 충분합니다.

Redis와 Kafka는 강의에서 설명하므로 선수 지식이 필요하진 않습니다.

  • Computer Science 지식

CS 지식에 대한 기초가 있으면 이해가 수월할 수 있으나, 절대 필수 사항은 아닙니다.

기술 스택 및 도구

  • Spring Boot 3.3.2

  • Java 21

  • JPA

  • Gradle

  • MySQL 8.0.38

  • Redis 7.4

  • Kafka 3.8.0

  • IntelliJ IDEA


특정 버전에 구애받는 강의는 아니지만, 원활한 실습을 위해 동일한 환경을 권장합니다.

타 언어 또는 프레임워크를 사용하더라도, 개념 및 설계 방식은 동일합니다. 이러한 부분에 대해 직접 고려하고 개발할 수 있다면, 스프링부트를 사용하지 않더라도 학습하실 수 있습니다.

JPA에 대해 설명하진 않지만 기초 수준에서 다루기 때문에, 별도 지식은 없어도 괜찮습니다.

다음 내용을 배우게 됩니다.

  • 대규모 시스템 디자인

  • Microservice Architecture

  • Event-Driven Architecture

  • 분산 시스템에 대한 이해

  • 동시성 문제를 다루는 방법


  • MySQL, Redis, Kafka에 대한 이해 및 실전 활용 전략

  • 데이터베이스 인덱스를 활용한 대규모 데이터 쿼리 최적화

  • 복잡한 계층형 테이블 설계 및 최적화

  • 높은 쓰기 트래픽에서도 데이터 일관성을 보장하는 방법


  • 이벤트 스트림 처리 및 비동기 애플리케이션 구축

  • 이벤트 유실 방지를 위한 시스템 구축


  • 대규모 트래픽 및 복잡한 아키텍처에서 활용할 수 있는 방법론

  • 다양한 요구사항에 적용할 수 있는 캐시 최적화 전략


학습 키워드

#Relational_Database #MySQL #Shard #Replication #Index #Clustered_Index #Secondary_Index #Covering_Index #Query_Plan #Query_Optimization #Primary_Key #Transaction #(De)Normalization #dbms_schema_design #Adjacency_list #Path_enumeration #database_collation #Lock #Optimistic_Lock #Pessimistic_Lock #Record_Lock #Concurrency_Problem #In-memory_database #NoSQL #Redis #Data_Structure #Distributed_Lock #Event_Streaming #Stream_Processing #Async #Kafka #Distributed_Transaction #Transctional_Messaging #Two_Phase_Commit #Transactional_Outbox #CDC #Transaction_Log_Tailing #CQRS #Cache #Request_Collapsing #Distributed_System #Microservice_Architecture #Event_Driven_Architecture

강의에서 배울 수 있는 키워드를 정리해보았습니다.

아직 모르는게 당연하지만, 강의를 통해 위 개념들에 대해 학습 및 구현하게 됩니다.

실무에서 자주 다루게 되는 개념들이고, 각 개념의 필요성과 설계하는 과정을 상세히 설명합니다.

간단한 시스템에서 복잡한 시스템까지, 점진적으로 변화되는 과정에 대한 상세한 이미지 자료!

실무에서의 고민 과정까지!

라이브 코딩으로 실전 개발을 경험하며 구현 능력 향상!

Java, Spring Boot, MySQL, Redis, Kafka

이러한 도구를 어떻게 활용하며 개발할 수 있는가?

단순한 코드 작업으로 그치지 않고,

다양한 아키텍처, 방법론, 디자인 패턴 적용하며 가독성 및 유지보수에 용이한 구조 설계

실전 개발을 통해 한층 더 성장할 수 있는 기회!

수강 전 Q&A

Q. 백엔드와 스프링부트를 완전히 처음 배우는데 수강할 수 있을까요?

A. 입문 강의는 아니기 때문에 백엔드의 개념, 스프링의 원리와 사용 방법을 설명하진 않습니다. 따라서 스프링에 대한 기초 지식은 필수 요건이고, 잘은 모르더라도 학습하면서 배울 수 있는 자세만 있으면 충분합니다. 아주 간단한 게시판이더라도, 최소 1회는 무언가를 만들어본 분들께 추천드립니다.


Q. MySQL, Redis, Kafka, Docker를 모르는데 수강할 수 있나요?

A. MySQL과 SQL 기초 문법은 알아야합니다. 그 이상의 내용과 타 도구는 강의에서 무엇인지 상세히 설명하고 직접 활용하기 때문에, 모르셔도 괜찮습니다. 


Q. 강의만 완강하면, 모든 내용 다 이해할 수 있나요?

A. 강의의 내용을 제대로 학습하고 온전히 습득하려면 몇 배의 시간이 들 수 있습니다. 단순하게 눈으로만 듣고 코드만 한번 따라친다고 해서 모든 내용을 이해할 수는 없습니다. 그만큼 어려운 주제입니다. 강의를 진행하면서도 지속적으로 복습하고 전반적인 구조를 파악해보는 것을 권장드립니다. 또, 강의의 방향성과 무관하거나 직접 학습이 필요하다고 판단한 부분은, 강의에서 설명하지 않기 때문에 마냥 친절하게 느껴지진 않을 수 있습니다. 이러한 부분은 개인 학습이 필요합니다.


Q. 백엔드 경험은 있으나, 스프링부트가 아니라 다른 프레임워크만 사용해봤어요. 강의를 들을 수 있을까요?

A. 개념은 모두 동일하므로 들으셔도 무방합니다. 다만, 스프링부트에서 자바 언어로 작성된 코드만 제공하기 때문에, 타 언어로 직접 옮길 수 있는 구현 능력은 필요할 수 있습니다. 


Q. 강의 소개에 언급된 키워드들 하나도 모르겠어요.

A. 선행 조건으로 언급된 사항만 충족되면, 강의를 통해서 이론을 학습하고 코드로 직접 구현해보기 때문에, 잘 따라올 수만 있으면 괜찮습니다.


Q. 서버 배포나 클라이언트 개발도 다루나요?

A. 로컬에서만 개발 및 테스트가 진행되고, 서버 배포나 클라이언트 화면 개발은 진행되지 않습니다.


Q. 강의를 진행하면서 클라우드 등 부가적인 비용이 드는게 있을까요?

A. 로컬에서만 개발 및 테스트가 진행되므로, 별도 비용은 필요하지 않습니다.

이런 분들께
추천드려요!

학습 대상은
누구일까요?

  • 대규모 데이터와 트래픽을 어떻게 처리하는지 궁금한 사람​

  • 성능 최적화가 궁금한 사람

  • 경력은 있지만 트래픽 경험은 없는 사람

  • 단순하게 이론만 설명하는 것 보다는, 실제로 어떻게 만드는지 궁금한 사람

  • 스프링부트로 게시판을 1번 이상 개발해본 사람

  • 데이터베이스 기초와 간단한 SQL 작성 방법을 아는 사람

선수 지식,
필요할까요?

  • Java

  • Spring Boot

  • Relational Database 기초

  • SQL 문법 기초

안녕하세요
쿠케입니다.

1,124

수강생

84

수강평

157

답변

4.9

강의 평점

2

강의

안녕하세요.

IT 서비스 대기업 개발자로 근무하며, 대규모 시스템을 지탱하기 위해 다양한 기술을 활용해보고 있습니다.

실무 관점의 개발 지식을 공유하고자 개설하였고, 많은 도움이 되었으면 좋겠습니다.

 

[문의]

Email : kukekyakya@gmail.com

더보기

커리큘럼

전체

71개 ∙ (13시간 21분)

해당 강의에서 제공:

수업자료
강의 게시일: 
마지막 업데이트일: 

수강평

전체

79개

4.9

79개의 수강평

  • wisehero님의 프로필 이미지
    wisehero

    수강평 53

    평균 평점 4.7

    5

    72% 수강 후 작성

    이 강의는 최고입니다. 이 강의는 인프런의 중, 상급 강의는 이래야 한다라는 기준과 같은 강의입니다. 이제 만 1년을 채운 주니어 개발자입니다. 사내에서는 아직 어드민만 새로 개발을 하거나 유지보수 해왔습니다. 모든 분들이 아시다시피 어드민은 트래픽이 많이 몰리지도 않고 자주 쓰이는 것도 정해져있습니다. 기획도 유저에게 전달되는 것이 아니니 내부 직원들도 속되게 말해 '개판'으로 기획하고 개발하는 경우가 대부분입니다. 이 상황속에서도 도전할 만한 과제들을 찾아보고 있지만 쉽지 않았습니다. 그러던 도중 이 강의를 만났고 앞으로 수행하게될 프로젝트에 대해 어떤 설계를, 어떤 코드를 짤지에 대해 적어도 '생각'은 해볼 수 있는 재료들을 얻었습니다. 최근 들었던 강의들에서는 거의 Q&A란을 인프런 인턴에게 맡겨두고 사실상 유기하는 지식공유자들이 많았는데 쿠케님은 주말에도 Q&A를 열심히 받아주십니다. 강의평 서문에 적었던 것처럼, 이 강의는 중,상급 강의 중 최고입니다. '중,상급 강의는 이래야한다' 라는 기준, 가이드를 제시한 강의라고 생각합니다. 이는 인프런에서 지식을 공유하는 분들이나, 인프런 서비스를 운영하시는 분들 에게도 좋은 레퍼런스가 될 수 있다고 생각합니다. 제약이 많고 꽉꽉 막힌 환경속에서 아직 더 도전적인 업무 수행을 위한 실력을 기르고 싶은 불씨가 아직 꺼지지 않은 분들은 망설이지 말고 수강하셨으면 좋겠습니다. 아쉬운 점은 코드를 제공하시기는 하나 커밋 기록이 찍혀있는 깃허브 레포지토리나 섹션별로 코드가 나뉘어져 있지 않아 흐름을 따라가기가 힘들었는데 이 부분이 개선이 되면 좋을 것 같습니다. 좋은 강의 감사드립니다. 오랜만에 진짜 강의같은 강의를 만났습니다.

    • 쿠케
      지식공유자

      wisehero님, 좋은 평가 감사합니다! 수강평까지 정성스럽게 적어주셔서 너무 감사하네요 ㅎㅎㅎ 강의를 만들면서 “이렇게 어렵게 만들어도 되는건가?” 라는 생각도 있었고, 수강생 분들이 내용을 다 소화하진 못하더라도 무엇을 모르는지 알려드릴 수 있는 것만 해도 나름의 성과라고 생각했었습니다. 다행히 난이도에 대해서는 만족하시는 수강생 분들도 많은 것 같고, wisehero님 또한 앞으로의 방향성을 잘 잡아나가고 계신 것 같아서 뿌듯하네요!! Q&A는 만족해주신 것 같아서 다행입니다! 열정 있는 수강생 분들이라면 강의 들으면서 당연히 궁금한 점이 생길 수 있겠더라고요. 저도 그러한 열정에 보답하고자 최대한 열심히 답변 달려고 노력하고 있습니다 ㅎㅎㅎ 다양한 질문 보면서 강의 내용만으로는 부족했던 점이나 보충해드릴 부분 고민하면서 저 또한 많이 배우고 있고요. 특히 wisehero님은 다른 분 질문에서도 문제 해결 도와주시던 멋진 모습 기억하고 있습니다!! 코드 분리에 대해 아쉬운 점은 충분히 공감됩니다..! 처음부터 완벽하게 오류 없는 코드를 짜면 딱 분리해 둘 수 있겠지만, 그게 생각보다 쉽지 않더라고요..! 강의 범위가 방대하고 내용이 어렵다보니, 코드 수정할 부분이 이후에서야 눈에 들어올 때가 있습니다. 이럴 경우 섹션마다 잘게 나뉘어져 있으면 앞선 내용까지 수정하는게 너무 어렵다보니 귀찮은 마음에 따로 나누지 않은 부분도 있습니다..! 관련해서는 죄송스러운 마음이 있어서 양해를 구하게 되네요 ㅠㅠ 개선할 방법은 조금 더 고민해보겠습니다..! 열정 가득한 최고의 수강생 분들이 들어주시는 덕분에 강의도 가치가 생기는 것 같습니다!! 잘 수강해주셔서 감사합니다!

  • 리나님의 프로필 이미지
    리나

    수강평 5

    평균 평점 5.0

    5

    70% 수강 후 작성

    단순히 강의 목록만 보고 강의 내용 판단하면 안되었네요. 실제로 강의를 들어보니 Index 알고리즘 부터 시작해서 최적화 된 인덱스 활용법, 그리고 애플리케이션이 Sale-out 환경과 DB 샤딩 구조 환경에서 안전하게 이벤트 메시지 발행하는 방법까지 정말 제가 원하는 강의였습니다. 단순히 서비스를 구축하는 것을 떠나서 대용량 트래픽에 기반하는 여러가지 TIP이 많아 정말 좋은 강의였습니다. 덕분에 많은 지식을 배우고 갑니다. 앞으로 이렇게 좋은 강의 부탁드립니다 :)

    • 쿠케
      지식공유자

      리나님, 좋은 평가 주셔서 정말 감사합니다! 수강생 분들에게 어떻게 잘 전달할 수 있을지 고민도 많이 되었고 장시간 열심히 준비해왔는데, 어려운 강의 잘 따라와주셔서 감사하고 뿌듯합니다!! 새해 복 많이 받으시고 남은 강의도 화이팅입니다! (후반부도 꽤나 재미(?)있을 겁니다!)

  • chlghksdyd31님의 프로필 이미지
    chlghksdyd31

    수강평 10

    평균 평점 4.9

    5

    100% 수강 후 작성

    잘 들었습니다. 시스템 설계와 성능 개선 방법에 대해서 궁금했었는데, 강의를 듣고 많이 배워 갑니다. 가격이 높은 편이라서 좀 고민하고 구매했는데 가격 이상의 내용을 배웠다고 생각합니다. 앞으로도 좋은 강의 부탁드립니다. 감사합니다.

    • 쿠케
      지식공유자

      chlghksdyd31님, 좋은 평가 감사합니다!! 잘 배워가셨다니 너무 뿌듯하고 기쁘네요!! 완강 하시느라 고생 많으셨습니다!!

  • 김현진님의 프로필 이미지
    김현진

    수강평 2

    평균 평점 5.0

    5

    100% 수강 후 작성

    좋은 강의 잘 들었습니다 여러모로 생각이 확장되는 경험이었네요. 특히 kafka가 익숙하지않아 kafka를 활용하는 Transactional Messaging 기법은 생각지도 못한 부분이어서 되게 어려웠지만 재미있는 강의였습니다 !

    • 쿠케
      지식공유자

      현진님, 좋은 평가 감사합니다! Transactional Messaging 정말 어려운 부분인데 재밌게 들으셨다니 다행입니다. ㅎㅎㅎ 완강 하시느라 고생 많으셨고, 새해 복 많이 받으세요!!

  • Ian님의 프로필 이미지
    Ian

    수강평 9

    평균 평점 5.0

    5

    99% 수강 후 작성

    처음엔 가격때문에 고민 많이 했는데, 기대한 것보다 더 방대한 내용을 의식 흐름대로 잘 설명해주셔서 즐겁게 완강했습니다. 대부분의 백엔드 개발자가 들으면 얻어가는게 많을 내용이라 생각하고, 면접에도 큰 도움 될 것 같습니다. 감사합니다!

    • 쿠케
      지식공유자

      Ian님, 좋은 평가 감사합니다!! 즐겁게 완강해주시다니 너무 감사하고 기쁘네요!! 면접도 잘 준비하시길 바랍니다!!

비슷한 강의

같은 분야의 다른 강의를 만나보세요!

월 ₩39,600

5개월 할부 시

₩198,000