인프런 영문 브랜드 로고
인프런 영문 브랜드 로고
NEW
개발 · 프로그래밍

/

백엔드

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

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

15명 이 수강하고 있어요.

Thumbnail

중급자를 위해 준비한
[Spring Boot, 시스템설계] 강의입니다.

이런 걸
배워요!

  • 대규모 시스템 디자인

  • 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 문법 기초

안녕하세요
쿠케입니다.

안녕하세요.

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

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

커리큘럼

전체

71개 ∙ (13시간 20분)

수업 자료

가 제공되는 강의입니다.

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

수강평

아직 충분한 평가를 받지 못한 강의입니다.
모두에게 도움이 되는 수강평의 주인공이 되어주세요!