코스 개요

1일차: Go에서 이벤트 기반 아키텍처의 기초

  • EDA 소개
    • 이벤트 기반 아키텍처란?
    • 모놀리식, 마이크로서비스, 이벤트 기반 시스템 비교
    • Go의 동시성 모델과 가벼운 goroutines가 EDA에 이상적인 이유
  • 핵심 개념 및 장점
    • 기업 시스템에서 결합 해제, 확장성, 탄력성
    • 이벤트, 생성자, 소비자, 이벤트 브로커 정의
    • Go가 고성능 이벤트 시스템을 구동하는 실제 사례 및 케이스 스터디
  • CAP 정리와 EDA에서의 장단점
    • 일관성, 가용성, 분할 용인도 개요
    • EDA가 이들 속성에 미치는 영향
    • Go 기반 시스템에서 일관성과 가용성을 균형 있게 유지하는 전략

2일차: Go에서의 이벤트, 메시지 및 통신 패턴

  • 이벤트 유형 이해
    • 도메인 이벤트 vs. 통합 이벤트
    • Go 애플리케이션에서 동기 vs. 비동기 이벤트
  • 실제 적용 사례의 메시징 패턴
    • Go에서의 발행-구독(Pub/Sub) 모델
    • JSON, Protocol Buffers, Avro를 사용하여 이벤트 페이로드 설계 및 구조화하기
  • Go에서의 이벤트 처리 구현
    • 메시징을 위한 인기 Go 라이브러리 및 프레임워크 개요
    • 코드 예제: 고유한 Go 패턴을 사용하여 이벤트를 디스패치하고 처리하기
    • 실습 세션: 간단한 이벤트 기반 서비스 구축

3일차: Go에서의 메시징 시스템 및 이벤트 브로커

  • 이벤트 브로커 선택 및 통합
    • 인기 있는 브로커 개요: Apache Kafka, RabbitMQ, NATS
    • Go 기반 시스템에서의 사용 사례 및 최선의 방법 비교
  • 메시징 인프라 설정
    • Kafka, RabbitMQ, NATS를 위한 Docker Compose 설정
    • 토픽, 교환기, 큐, 채널 구성
    • Go 클라이언트 라이브러리 개요
  • 실습 워크샵
    • 이벤트를 생성하고 소비하는 Go 마이크로서비스 샘플 구축
    • 서비스와 선택된 이벤트 브로커 통합
    • 이벤트 흐름 디버깅 및 테스트

4일차: Go EDA에서의 배포, 모니터링, 고급 주제

  • Kubernetes에서 Go 이벤트 기반 애플리케이션 배포
    • 생산을 위한 Go 애플리케이션 컨테이너화
    • Kubernetes 클러스터에서 Kafka(또는 다른 브로커) 배포
    • 사건 소비자의 확장을 위해 KEDA(Kubernetes Event-Driven Autoscaling) 소개
  • 오류 처리 및 모니터링
    • 전략을 사용한 이벤트 실패 처리
    • Go 서비스에서 관찰 가능성 구현
  • 고급 주제 및 Q&A
    • Go를 사용한 서버리스 이벤트 기반 아키텍처 탐색
    • 이벤트 코레오그래피 vs. 오케스트레이션: 사용 사례 및 설계 고려 사항
    • 일반적인 함정, 배운 교훈, 최선의 방법
    • 개방형 Q&A 세션 및 상호 작용 문제 해결

요건

  • Go(Golang)의 숙련도, 특히 goroutines와 channels의 사용
  • monoliths 및 microservices와 같은 소프트웨어 아키텍처 모델에 대한 기본 이해
  • Docker와 Docker Compose에 대한 익숙함
  • REST APIs 및 네트워킹 개념에 대한 기본 지식
  • 명령줄 도구와 Git에 대한 경험
  • 옵션: Kubernetes 및 Kafka, RabbitMQ, NATS 등의 메시징 시스템에 대한 사전 노출 (도움이 됨)

대상자

  • 확장 가능한 이벤트 기반 애플리케이션을 구축하는 Go 개발자
  • monolithic 또는 REST-based 아키텍처에서 비동기 시스템으로 전환 중인 소프트웨어 엔지니어
  • 컨테이너화 또는 분산 마이크로서비스를 다루는 DevOps 및 클라우드 엔지니어
  • Go를 사용하여 EDA 패턴을 탐색하는 기술 아키텍트와 시스템 설계자
 28 시간

참가자 수


참가자당 가격

회원 평가 (7)

예정된 코스

관련 카테고리