【AI 자막】 이벤트 기반 마이크로서비스 아키텍쳐: Spring Boot, Kafka, Elastic
What you'll learn
- Spring boot 및 Spring 클라우드 스택으로 마이크로서비스 아키텍처 마스터하기
- Apache Kafka 로 이벤트 기반 마이크로서비스 개발하기
- Docker 와 Docker 컴포즈로 마이크로서비스의 컨테이너화 이해하기
- Kafka 브로커, 토픽, 파티션, 생산자, 소비자, 관리자 클라이언트, avro 메시징, 주키퍼 및 스키마 레지스트리의 기초
- Elasticsearch, 인덱스 API 및 쿼리 API 의 기초
- Spring Kafka 로 Kafka 기반 메시징 애플리케이션 구현하기
- Spring Data Elasticsearch 로 Elasticsearch 색인 및 쿼리 이해
- Kafka 와 Elasticsearch 로 CQRS 패턴 구현하기
- Spring Cloud Config 로 외부화된 구성 패턴 구현하기
- Rest API 개발
- Rest API 의 버전 관리를 위한 API 버전 관리 구현하기
- PostgreSQL 로 Spring Data JPA 구현하기
- Netflix Eureka 와 Spring cloud 로 서비스 등록 및 검색 이해하기
- Spring Cloud 로드 밸런서 로 클라이언트 측 로드 밸런싱 구현하기
- Spring Cloud Gateway 를 사용하여 API 게이트웨이 패턴 이해하기
- Spring Cloud Gateway 와 Resilience4j 로 서킷 브레이커 패턴 구현하기
- Spring Cloud Gateway 와 Redis 로 속도 제한 구현하기
- Spring Security Oauth 2.0 을 사용한 인증 및 권한 부여 이해 및 JWT 를 사용한 Keycloak 및 OpenID 연결 프로토콜 이해
- Spring Boot Actuator, Micrometer, Prometheus , Grafana 로 마이크로서비스 모니터링 구현하기
- ELK 스택을 사용한 로그 집계 패턴 및 시각화 이해 - Elasticsearch, Logstash 및 Kibana
- Spring Hateoas 를 사용하여 Rest API 에서 Hateoas 사용 이해하기
- Swagger v3 으로 Restful API 문서화 를 위한 Open API v3 구현하기
- 기초적인 프론트엔드에 Thymeleaf 및 Bootstrap 사용
- Reactive Spring, WebFlux, WebClient 및 Reactive Thymeleaf 를 사용하여 반응형으로 Elasticsearch 를 쿼리하여 반응형 개발 및 비동기 흐름 이해하기
- Slf4J MDC, Spring Cloud Sleuth 및 Zipkin 으로 분산 추적 학습하기
- 서비스 패턴별 데이터베이스 이해하기
- 상태 저장소와 함께 Kafka 스트림 사용 이해하기
- Twitter4J 를 사용하여 트위터로부터 트윗 스트리밍하는 법 알아보기
Requirements
- Java에 대한 지식
- Spring 프레임워크에 대한 기본 지식
- 백엔드 개발 경험
Description
[꼭 읽어주세요] 한글 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일 전액 환불 보장 정책이 적용됩니다! 따라서 부담 없이 '이 강의 구매하기' 버튼을 눌러 저와 함께 이 학습 여정에 참여하실 수 있습니다.
Who this course is for:
- Spring boot 및 Spring cloud로 패턴을 적용하여 마이크로서비스 아키텍처를 마스터하고 싶은 모든 분
- Kafka 로 이벤트 기반 마이크로서비스를 배워보고 싶은 모든 분
- 직접 실습하는 방식으로 배우기를 좋아하는 모든 분
Instructors
Ali Gelenler, the founder of EA Algorithm, has been in the IT industry for 20 years, with hands-on experience in Software Engineer, Software Architect and Tech Lead positions. He holds a Master's degree in Computer Engineering and is highly experienced in Backend technologies in distributed environments, Performance optimizations, Java, Spring, Spring boot, Microservices, Architectural patterns, Web security, Database technologies, Cloud-based solutions, Kafka and Elasticsearch.
He is currently working actively as a Senior Engineer and Technical Leader and has experience in the financial technology sector, content management sector, defense industry and government projects.
Ali also has a passion for teaching and mentoring and worked as an instructor in individual and group classes in various IT fields.
EA Algorithm is an IT training and consulting company specialized in teaching on distributed complex systems with a practical and easy-to-understand approach.
We specialized with backend technologies on distributed environments and have an expertise on performance optimizations, Java, Spring, Spring boot, Microservices, Architectural patterns, Web security, Database technologies, Cloud based solutions, Kafka and Elasticsearch.