
이 강의의 주요 목표와 이점
프로젝트의 아키텍처적 큰 그림과 이벤트 기반 아키텍처 및 이벤트 기반 서비스에 대한 소개입니다.
강의에서 다루는 모든 마이크로서비스 및 구성 요소의 구현 세부 사항입니다.
강의 전반에 걸쳐 필요한 도구의 설치 방법을 안내합니다.
Spring Boot, 스타터 모듈 및 사전 구성된 종속성에 대해 소개합니다.
start.spring.io를 사용하여 기본 프로젝트를 만듭니다. 하위 모듈을 위한 기본 파일로 준비하기 위해 pom.xml 파일을 조정합니다. maven 종속성 및 플러그인의 기본 사항을 설명합니다.
첫 번째 마이크로서비스를 maven 모듈로 만듭니다. spring boot 애플리케이션을 만듭니다. 기본 테스트 클래스를 생성합니다. CommandLineRunner를 사용하여 초기화 로직을 구현하고 다른 옵션을 설명합니다. application.yml을 사용하여 구성 변수를 추가합니다. slf4j와 logback.xml 파일을 사용하여 로깅을 추가합니다. 생성자 주입에 대해 설명하고 필드 주입에 비해 이점을 이해합니다.
[꼭 읽어주세요] 한글 AI 자막 강의란?
유데미의 한국어 [자동] AI 자막 서비스로 제공되는 강의입니다.
강의에 대한 질문사항은 Ali 강사님이 확인하실 수 있도록 Q&A 게시판에 영어로 남겨주시기 바랍니다.
안녕하세요! 저는 Ali Gelenler 입니다. 현실 세계 실무에서 마주치는 챌린지들에 대한 모범 해결 사례를 적용하여 이벤트 기반 마이크로서비스 아키텍처를 배우는 데 도움을 드리고자 이 강의를 준비했습니다.
중요 업데이트: 이 강의는 트위터 API 를 소스 데이터로 사용합니다. 트위터는 트위터 개발자 계정을 유료 구독으로 변경할 예정입니다. 그러나 유료 서비스로 전환되더라도 트위터 개발자 계정을 만들 필요가 없도록 저는 모의 트윗 구현을 이미 추가했기 때문에 이 강의에는 전혀 영향을 미치지 않습니다.
이 강의에서는 마이크로서비스 개발에 중점을 둡니다. 마이크로서비스를 활용하여 애플리케이션 컴포넌트를 독립적으로 개발하고 배포할 수 있습니다. 또한 각 서비스의 자체 리소스 요구 사항에 따라 서비스를 쉽게 확장할 수 있습니다. 예를 들어, 더 많은 요청이 필요한 서비스의 인스턴스를 더 많이 생성하고 더 잘 확장할 수 있습니다.
여러분은 이 강의에 나오는 spring boot, spring cloud 및 기타 종속 요소에 대해 항상 최신 버전을 사용할 수 있습니다. 업데이트된 버전에 필요한 코드와 구성 변경 사항을 확인하려면 마지막 섹션의 강의를 따라가세요. 또한 강의를 듣다가 자막을 사용하려면 강의에서 자막을 켜시면 됩니다. 강의를 더 쉽게 따라갈 수 있도록 자막을 사용하는 것이 좋습니다.
모놀리식 애플리케이션에서 마이크로서비스 아키텍처로 전환할 때 분산된 애플리케이션과 시스템으로 인해 몇 가지 문제가 발생할 수 있습니다. 이 강의에서는 Apache Kafka와 함께 이벤트 기반 아키텍처(EDA) 아키텍처를 사용하여 이러한 문제를 해결하는 방법을 배웁니다.
이벤트 기반 아키텍처를 사용하면;
서비스가 다른 서비스와 직접 통신하지 않기 때문에 서비스를 진정으로 분리하고 탄력적인 서비스를 만들 수 있습니다.
서비스 간에 비동기/비차단 통신을 사용하게 됩니다.
이벤트/상태 저장소(Kafka)를 사용하고, 서비스에서 상태를 제거하여 확장성을 개선합니다.
Tanima: "이 강의는 제가 Udemy에서 수강한 최고의 강의이며, 강사님은 매우 반응이 빠르고 강의 중에 항상 복잡한 문제를 처리합니다. 강사님께 정말 감사합니다. 이 강의에 대해 항상 감사할 것이며 다음 강의 출시를 기다릴 것입니다."
이 강의에서는 최신 소프트웨어 플랫폼, 기술, 라이브러리 및 도구를 사용하여 마이크로서비스 아키텍처를 처음부터 개발하고, 모범 사례를 따르고, 마이크로서비스 패턴을 적용하고, Java, Spring boot, Spring cloud, Spring Security, Kafka 및 Elasticsearch 를 사용하게 됩니다. 또한 이벤트 소싱과 이벤트 저장소로 Kafka 를 사용하는 이벤트 기반 서비스에 대해서도 다룹니다.구현할 마이크로서비스 패턴은 다음과 같습니다:
Spring Cloud Config 를 사용한 외부화된 구성
Kafka 및 Elastic search 를 사용한 CQRS
Rest API의 버전 관리를 위한 API 버전 관리
Spring Cloud 와 Netflix Eureka 를 이용한 서비스 등록 및 검색
Spring Cloud Gateway를 사용한 API 게이트웨이
Spring Cloud Gatewa 와 Resilience4j를 사용한 서킷 브레이커
Spring Cloud Gatewa 와 Redis를 이용하여 속도 제한하기, Redis를 속도 제한기로 사용하기
SLF4J MDC, Spring Cloud Sleuth 및 Zipkin 을 사용한 분산 추적
ELK 스택을 사용한 로그 집계(Elasticsearch, Logstash 및 Kibana)
Spring Cloud 로드 밸런서를 통한 클라이언트 측 로드 밸런싱
서비스별 데이터베이스
Kafka 를 사용한 마이크로서비스 간 메시징
또한 Keycloak 및 JWT를 사용하여 인증 및 권한 부여를 위한 Spring Security Oauth 2.0 및 OpenID 연결 프로토콜 을 구현하게 됩니다. 서비스 권한 부여를 위해 Oauth 를 사용하고 인증을 위해 OpenID connect 를 사용하는 것은 Spring boot 보안이 포함된 마이크로서비스 아키텍처에서 널리 사용되고 있습니다.
Oliver Michels: "Spring Boot, Kafka, Elastic, OAuth/Keycloak 등 많은 부분을 다루고 이러한 모든 부분이 멋진 마이크로서비스 아키텍처에서 어떻게 조화를 이루는지 보여주는 놀라운 강의입니다."
여러분이 집중할 또 다른 중요한 주제는 마이크로서비스 모니터링입니다. 상태, 실행 중인 스레드 수, 요청 수, 응답 시간 및 메모리 사용량과 같은 메트릭을 얻는 데 사용할 수 있는 Micrometer 와 함께 Spring boot actuator 및 Prometheus를 사용하게 됩니다. 또한 Grafana 를 사용하여 Spring boot actuator 와 Prometheus를 사용하여 얻은 메트릭을 시각화하기 위한 멋진 대시보드를 만드는 방법도 배우게 됩니다.
이벤트 기반 마이크로서비스를 소개하면서 Kafka topics, Kafka 파티션, Kafka 소비자 및 생산자 API, Kafka 관리자 클라이언트 및 Avro 메시징을 다룸으로써 Apache Kafka 의 기본을 이해하게 됩니다.
Emre Demir: "이 강의는 단순한 소프트웨어 튜토리얼이 아닙니다. 고급 컴퓨터 엔지니어링 과정입니다. 예제와 설명이 훌륭합니다. 풀스택 및 백엔드 개발자는 반드시 수강해야 합니다."
마이크로 서비스 간의 통신을 위해 Kafka 메시징을 사용하는 것 외에도 Kafka Streams를 소개하고 Kafka Streams를 사용하여 누적된 스트리밍 데이터로 임시 상태 저장소를 만드는 방법도 보여드릴 것입니다. 그런 다음 이 임시 데이터 소스는 다른 마이크로서비스에서 사용하게 됩니다.
마이크로서비스의 데이터 저장소와 통신하기 위해 PostgreSQL 을 사용하는 Spring Data JPA, Spring Data Elasticsearch 및 Spring Kafka 와 같은 다양한 Spring Data 종속성을 사용하겠습니다.
API 문서에서는 Swagger 3.0 을 구현하는 Open Api 3 사양을 사용하겠습니다. Open Api는 API 를 위한 RESTful 인터페이스를 생성하고 Rest API 를 쉽게 개발 및 사용할 수 있도록 도와줍니다.
또한 Spring Hateoas 와 함께 Rest API에서 Hateoas (애플리케이션 상태 엔진으로서의 하이퍼미디어)를 사용하는 방법도 배우게 됩니다. Hateoas 는 서버의 리소스에 대한 링크를 제공하고 이러한 링크로 REST API 응답을 업데이트하여 클라이언트와 동적으로 상호 작용합니다. 이를 통해 레벨 3 Rest API 를 개발할 수 있습니다.
Sidhartha Mallik: "이 강의는 요점이 명확하며 모든 수준에 맞는 훌륭한 과정으로 강력히 추천합니다."
이 강의에는 반응형 개발 섹션도 있으며, 이 섹션에서는 반응형 Spring, WebFlux, WebClient 및 반응형 Thymeleaf 를 사용하여 반응형으로 elasticsearch 를 쿼리하는 방법을 시연합니다. 이 섹션에서는 Spring Webflux 와 Spring반응형 컴포넌트를 사용해 마이크로서비스 간 비동기 흐름을 생성하는 방법을 배웁니다.
클라우드 지원 마이크로서비스를 개발하기 위해 Spring boot 및 Spring cloud 와 Docker 를 함께 사용하게 됩니다. Docker 는 컨테이너화 플랫폼으로 애플리케이션을 컨테이너로 패키징할 수 있습니다. 이러한 컨테이너는 나중에 도커가 실행되는 모든 환경에서 실행할 수 있습니다. 이 강의에서는 개발한 마이크로서비스 의 도커 이미지를 생성합니다. 그런 다음 Docker compose 를 사용하여 마이크로서비스의 모든 컨테이너를 Kafka, Elasticsearch, Keycloak, Redis, Prometheus, Grafana 및 Zipkin 과 같은 다른 종속 요소와 함께 함께 실행합니다. 결국 'docker-compose up' 명령 한 번으로 모든 마이크로서비스 아키텍처를 필요한 종속 요소와 함께 실행할 수 있습니다. 이러한 Docker 이미지가 있으면 모든 클라우드 공급업체에 애플리케이션을 쉽게 배포할 수 있습니다.
Mohammed O. Tillawy: "엄청난 강의입니다. 매우 인텐스하고 많은 정보가 들어있어서 집중력과 인내심이 필요합니다."
이 강의에서 여러분은 실습 강의를 따라가며 특정 작업을 수행하기 위해 여러 모듈로 둘러싸인 여러 마이크로 서비스를 포함하는 프로젝트를 처음부터 개발하게 됩니다. 따라서 처음부터 끝까지 제가 안내하는 과정을 따라 여러분이 직접 해보시게 됩니다. 또한 각 섹션마다 객관식 퀴즈를 통해 학습 상황을 확인할 수 있습니다.
강의가 끝나면 여러 서비스와 구성 요소가 있는 분산 애플리케이션의 실제 문제를 이해할 수 있을 뿐만 아니라 이러한 문제에 대한 솔루션을 적용할 수 있게 됩니다.
각 강의의 소스 코드는 개별적으로 다운로드하여 IDE 또는 Docker 에서 쉽게 실행할 수 있습니다.
Ido Charar: "Ali Gelenler 의 이 강의는 정말 훌륭합니다. 단순히 Kafka 와 Elastic 을 사용한 Spring Cloud 에 관한 것이 아닙니다. 이 강의는 특히 Spring Cloud와 관련된 기술 및 클라우드 컴퓨팅 전반에 관한 훨씬 더 많은 지식을 제공합니다. 그중에는 반응형 프로그래밍, 스트리밍, Linux OS, 보안, 디자인 패턴 등과 같은 기술도 포함됩니다. 모든 정보는 간결하고 이해하기 쉬운 형태로 제공되므로, 짧은 시간에 여러분의 기술을 넓힐 수 있습니다. 학습 자료, 강사님의 Q&A 게시판 응답, 지속적인 지원 및 수강생에 대한 도움을 주셔서 매우 감사드립니다. 자신의 실력을 향상시키고 싶은 모든 사람에게 이 강의를 수강할 것을 강력 추천합니다."
이 강의의 진행 상황에 대한 자세한 내용은 소개 동영상과 맛보기 강의들을 통해 확인하실 수 있으며, 이 강의에 수강신청하기로 결정한 경우 언제든지 Q&A 및 DM을 통해 개념과 구현에 대한 세부 사항을 질문하실 수 있게 됩니다. 이 강의를 성공적으로 완강하고 가능한 한 많은 지식과 경험을 얻을 수 있도록 제가 처음부터 끝까지 안내해 드리겠습니다.
Shantanu Srivastava: "Apache Kafka 를 배우기 위해 이 강의를 수강하게 되었는데, 소개 영상을 보고 나니, 이 강의가 말 그대로 spring 개발자로서 알아야 할 모든 것을 다루고 있다는 것을 알게 되었습니다. API 게이트웨이 와 Service Discovery 부터 로그 포워딩과 복원력 등 다양한 내용을 다루고 있습니다. 정말 굉장합니다!"
기억하세요! 이 강의는 30일 전액 환불 보장 정책이 적용됩니다! 따라서 부담 없이 '이 강의 구매하기' 버튼을 눌러 저와 함께 이 학습 여정에 참여하실 수 있습니다.