강의

멘토링

로드맵

BEST
개발 · 프로그래밍

/

백엔드

장애를 허용하는 견고한 시스템 만들기

장애에 견고한 시스템을 구축하는 방법을 다루는 실용적인 강의입니다. 서비스 안정성을 위한 설계 기초부터 장애 전파를 막는 다양한 패턴, 그리고 메시지 큐를 활용한 비동기 처리와 분산 데이터 일관성 유지 전략까지, 안정적인 백엔드 시스템에 필요한 핵심 기술과 개념을 학습합니다.

(4.9) 수강평 10개

수강생 253명

  • 이준형(Foo)
장애
이론 실습 모두
resilience4j
예외처리
Spring BoottransactionKafkadata-consistency

먼저 경험한 수강생들의 후기

이런 걸 배울 수 있어요

  • 장애를 허용하는 견고한 시스템 설계

  • 카프카(Kafka)를 활용한 이벤트 기반 아키텍처 구축 기초

  • 분산 환경에서의 트랜잭션을 다루는 방법 기초

"이 코드 한 줄 바꿨을 뿐인데, 왜 관련 없는 서비스까지 멈춘 걸까?"

개발자라면 누구나 한 번쯤 이런 막막한 순간을 마주하곤 합니다. 분명 로직은 문제없어 보이는데, 작은 변경 하나가 나비효과처럼 번져 전체 시스템의 안정성을 위협하는 경험 말이죠. 많은 개발자들이 처음에는 이런 가용성(Availability) 문제, 즉 '서버가 다운되지 않게 하는 것'에 집중합니다. 이 강의는 먼저 이 근본적인 문제에서 출발하여, 장애의 원인을 진단하고 서버 이중화, 재시도(Retry), 서킷 브레이커(Circuit Breaker)와 같은 필수 패턴들을 통해 견고한 시스템의 기초를 다지는 방법을 배웁니다.

하지만 현대적인 시스템 설계의 고민은 여기서 끝나지 않습니다. 시스템의 규모가 커지고 복잡해지면서, 우리는 서비스들을 더 작은 단위로 나누고 그 사이를 카프카(Kafka)와 같은 메시징 시스템으로 연결하는 이벤트 기반 아키텍처를 도입하게 됩니다. 이는 서비스 간의 의존성을 낮춰 유연성을 확보하는 강력한 방법이지만, 동시에 새로운 종류의 문제를 낳습니다.

여기서 우리는 더 교묘하고 어려운 질문과 마주하게 됩니다.

"주문 요청 메시지가 네트워크 오류로 유실되면 어떡하지?"

"결제 완료 메시지가 중복 전송되어 고객에게 돈이 두 번 청구되면 어떡하지?"

"주문 처리는 성공했는데, 재고 처리에서 실패하면 데이터는 어떻게 맞추지?"

이처럼 시스템이 분산되면서, 단순히 서버가 멈추는 '장애'를 넘어 데이터의 일관성(Consistency) 이라는 더 교묘하고 어려운 문제를 마주하게 됩니다. 이 강의는 여기서 한 걸음 더 나아가, 분산 환경에서의 신뢰성 문제를 정면으로 다룹니다. 카프카를 안정적으로 운영하며 메시지 유실과 중복을 방지하는 기술을 배우고, 트랜잭셔널 아웃박스, 보상 트랜잭션, 멱등성 처리와 같은 고급 패턴들을 통해 분산된 서비스 간의 데이터 일관성을 보장하는 방법을 깊이 있게 탐구합니다.

이 강의를 통해 여러분은 단순히 '기능이 동작하는' 코드를 넘어, 어떤 예외적인 상황에서도 시스템이 '신뢰성 있게' 동작하도록 만드는 설계의 전체적인 시야를 갖게 될 것입니다. 장애 대응부터 분산 데이터 처리까지, 현대적인 백엔드 시스템이 요구하는 진짜 '안정성'을 확보하는 여정을 시작해 보세요.

이 강의의 특징

📌 장애에 대한 관점 전환: 이 강의는 단순히 에러를 해결하는 기술을 나열하지 않습니다. 장애를 피할 수 없는 시스템의 속성으로 보고, 장애가 발생했을 때 어떻게 시스템 전체의 안정성을 지킬 수 있을지에 대한 설계 관점을 함께 고민합니다.

📌 안정성을 위한 핵심 원리와 패턴: 견고한 시스템의 기초가 되는 서버 이중화, 확장성 개념부터 시작해, 실무에서 자주 사용되는 재시도(Retry), 서킷 브레이커(Circuit Breaker)와 같은 안정성 패턴들의 동작 원리를 이해하고 적용하는 데 집중합니다.

📌 이론과 실습의 균형: 각 개념이 왜 필요한지 먼저 이해하고, 배운 내용을 곧바로 실습에 적용합니다. 직접 장애 상황을 만들어보고 해결하는 과정을 통해, 실제 문제 해결 능력을 기를 수 있도록 구성했습니다.

강의 내용 미리보기




이런 내용을 배워요

견고한 시스템 설계 원칙

장애는 왜 발생할까요? 서비스 내부에서 애플리케이션을 나누는 이유, 이중화와 복제, 확장성의 개념을 배우고, 예외 및 응답 상태 코드 처리, Retry, Timeout, 서킷 브레이커, Fallback, Graceful Degradation, Rate Limit, Bulkhead 등 장애의 연쇄적인 전파를 막는 핵심 패턴들을 학습합니다.

메시징 시스템과 이벤트 기반 아키텍처

서비스 간의 결합도를 낮추고 트래픽 급증에 유연하게 대처하는 방법은 무엇일까요? 카프카(Kafka)의 기본 개념과 비동기 통신 구현, 메시지 유실 및 전송 보장 수준, DLQ(Dead Letter Queue)와 순서 보장, 컨슈머에서 발생할 수 있는 메시지 중복 처리, 백엔드 개발자가 알아야 할 카프카 주요 설정 등 실무적인 주제를 깊이 있게 다룹니다.

분산 환경에서의 데이터 일관성

마이크로서비스 환경에서 데이터는 어떻게 일관성을 유지할 수 있을까요? 데이터 일관성이 깨지는 원인, 트랜잭션과 @Transactional의 역할, 데이터베이스 동시성 문제와 격리 수준 등 데이터 정합성을 보장하는 고급 패턴들을 학습합니다.

수강 전 참고 사항

실습 환경

  • 운영 체제 및 버전(OS): Windows 10

  • 사용 도구: Intellij Community 2023.2, Google Chrome, Docker Desktop


학습 자료

선수 지식 및 유의사항

  • 해당 강의는 Java, Spring Boot 애플리케이션을 기준으로 진행됩니다. 다만 강의 주요 내용은 코드 레벨보다는 개념 위주이기 때문에 해당 강의는 Java, Spring Boot로 실습해본 후 다른 언어, 프레임워크로 적용해보는데 큰 어려움은 없을겁니다. (일부 기능은 라이브러리 자체적으로 지원되지 않을 수도 있습니다)

  • 서버에 올려서 실습을 진행하는게 아니라, 로컬 개발환경에서만 실습을 진행합니다. Kafka, Database 등 필요한 요소는 Docker Desktop을 통해 실행시킵니다.

  • 수강하시면서 궁금한 내용이 있다면 질문을 남겨주세요. 업데이트해야 할 내용이 있다면 업데이트하겠습니다.

이런 분들께
추천드려요

학습 대상은
누구일까요?

  • Retry, Timeout, Circuit Breaker 등을 활용해 장애 전파를 막고, 견고한 시스템을 설계하고 싶은 분

  • 카프카(Kafka)를 처음 다뤄보거나, 메시징 큐의 기본을 넘어 안정적인 비동기 통신 아키텍처를 구축하고 싶은 분

  • 분산 환경에서 트랜잭션과 멱등성을 이해하고, 데이터 일관성을 보장하는 방법을 학습하고 싶은 백엔드 개발자

선수 지식,
필요할까요?

  • Spring Boot를 활용한 백엔드 애플리케이션 개발 경험

안녕하세요
입니다.

5,382

수강생

240

수강평

108

답변

4.9

강의 평점

9

강의

안녕하세요.

멘토링을 하면서 주니어 개발자들이 어려워 하는 개념들에 대해 어떻게 하면 쉽게 전달할 수 있을지에 대해서 많은 고민을 하고 있는 푸(Foo)라고 합니다.

잘 부탁 드리겠습니다.


이력

  • 2019. 08 ~ 현재 : 카카오 자바 백엔드 개발자

  • 2021. 08 ~ 현재 : programmers 백엔드 데브코스 멘토

  • 2021. 12 ~ 현재 : F-Lab 자바 백엔드 멘토

 

  • 이것이 취업을 위한 백엔드 개발이다 with 자바(링크)

 

기타 이력 및 타 플랫폼 강의들은 아래 GitHub 링크에서 확인할 수 있습니다.

GitHub - https://github.com/lleellee0

커리큘럼

전체

32개 ∙ (8시간 45분)

해당 강의에서 제공:

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

수강평

전체

10개

4.9

10개의 수강평

  • 도토리묵님의 프로필 이미지
    도토리묵

    수강평 2

    평균 평점 5.0

    5

    32% 수강 후 작성

    • 100and님의 프로필 이미지
      100and

      수강평 20

      평균 평점 4.8

      5

      100% 수강 후 작성

      와~!! 정말 몇 번을 곱씹으면서 강의를 들었는지 모르겠어요. 덕분에 완강까진 오래 걸렸지만, 그만큼 정말 많은 걸 배울 수 있었습니다. 특정 기술 영역도, 전체적인 아키텍처 시각도 두루 기를 수 있었던 값진 시간이었습니다. Foo님의 다음 강의도 너무 기대됩니다!! 좋은 강의 제작해주셔서 정말 감사해요!! :)

      • jihyeonglee님의 프로필 이미지
        jihyeonglee

        수강평 3

        평균 평점 5.0

        5

        31% 수강 후 작성

        • JS Lee님의 프로필 이미지
          JS Lee

          수강평 3

          평균 평점 5.0

          5

          100% 수강 후 작성

          백엔드개발자로서 필수 강의라 생각합니다.

          • tails님의 프로필 이미지
            tails

            수강평 8

            평균 평점 5.0

            5

            63% 수강 후 작성

            2025 추석맞이 감사할인 중 (7일 남음)

            ₩41,250

            25%

            ₩55,000

            이준형(Foo)님의 다른 강의

            지식공유자님의 다른 강의를 만나보세요!

            비슷한 강의

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