NEW
개발 · 프로그래밍

/

백엔드

MSA 아키텍처에 사용되는 Gateway 패턴 구현하기

해당 강의에서는 yaml을 활용하여 커스텀한 Gateway API를 구성하는 과정을 다루고 있습니다.

7명 이 수강하고 있어요.

Thumbnail

초급자를 위해 준비한
[백엔드, gateway] 강의입니다.

이런 걸
배워요!

  • yaml을 통한 환경주입

  • Kafka를 활용한 Trace

  • Async 처리에 대한 Lock 제어

  • API Gateway를 활용한 최적화 서버 관리

Microservice Architecture에서의 Gateway Pattern은 무엇일까요? 🫨

MSA 환경에서 사용하는 기술들은 무엇이 있을까요?? 대표적으로 Gateway API를 활용하는 Gateway Pattern이 있습니다.

이러한 기술을 구현하기 위해서 여러분들은 apache-apisix, nginx를 주로 사용을 하시며 구현을 하시게 될 겁니다. 이런 서비스를 활용하며 하나의 고성능 웹서버를 구현하고 고성능의 웹서버에서 여러개의 서버에 라우팅하고 여러개의 트래픽을 처리하며 DDOS와 같은 공격에 대해서도 내부 로직을 담당하는 서버를 보호 할 수 있습니다.

이 강의에서는 무엇을 배울 수 있을까요? 🫨

대표적으로 말씀드리고 싶은것은 Go를 사용하여 직접 고성능의 웹서버를 구현 하게 됩니다.

nginx에서 환경 설정 파일을 따로 관리를 하여 고성능의 웹서버를 구현하는 것처럼, 이 강의에서는 yaml을 활용하고 규격을 정의하여 외부 서버에 대한 API Call을 처리 하는 방법에 대해서 학습 하실 수 있습니다.

또한 추가로 Api Call에 대해서 Latency loggingKafka의 producer를 활용하여 API를 통한 비용 서비스에 대해서도 함께 알려드리게 됩니다.

Gateway Pattern을 자주 사용이 되나요? 🫨

이러한 패턴은 상황에 따라서 자주 적용이 되는 Pattern이며 특정 기능을 공통화하는 서버를 활용 할 떄에도 이러한 패턴을 활용합니다.

이런 내용을 배워요

1⃣ Kafka Producer 객체 및 Message 전송

Kafka의 Procuer을 활용하여 API에 대해서 정보를 Trace 합니다.

이를 통해서 Kafka의 Message 처리 방법과 API 과금모델에 대한 아키텍처를 학습 하실 수 있습니다.

2⃣ restry를 활용한 http client 커스터마이징

restry라는 openSource를 활용하고, 여러분들이 알고 계시는 builder pattern을 활용하여 rest API에 대한 Call 및 Request를 구현합니다.

3⃣ 직렬화 최적화를 위한 openSource 커스터마이징

해당 moudle은 다른 서버에 대한 call을 범용적으로 처리하는 프로젝트 입니다. 해당 과정을 지원하기 위해서 직렬화 하는데에 있어서 최적화를 커스터마이징 해서 작업을 진행하고 있습니다.

4⃣ Docker를 활용한 Kafka 및 ui 활용

Kakao, Naver에서 API 과금 모델에 대해서 어떻게 구현할까요??

이 강의에서는 kafka를 활용하여 Message를 전송하는 과정을 직접 구현하며, ui를 통해 여러분들이 좀 더 직관적으로 구현하는 방법을 학습 하실 수 있습니다.

이 강의는 두가지 서버를 제공합니다. 🥳

해당 강의는 yaml파일을 통해서 module을 구동하고, 해당 module에서 외부 서버를 관리함으로써 gateway pattern이 무엇인지에 대한 견해를 제공하고 있습니다.

그러기 떄문에 최적의 성능을 위한 golang 서버와 외부 서버의 역할을 담당하는 node 서버를 제공하고 잇씁니다.


이 두가지 서버를 직접 사용하고 추가로 구현을 하면서 여러분들의 개발이 더 재미있고 흥미로우면 좋겠습니다.

이 강의는 여러분들과 함께합니다. 🤨

이 강의는 특이하게도 강사가 미리 완성된 코드를 따라 작성하는 강의가 아닙니다.


여러분들과 함께 처음부터 소스코드를 하나하나 작성하고 이후 실제로 수정없이 테스트를 진행합니다.

이를 통해서 여러분들에게 좀 더 실제 실무에서 개발하는 느낌을 제공하고 싶고, 실제로 이 과정에서 많은 시간이 소요가 되면서 여러분들이 혼자서 했을 떄 고민했을만한 부분을 제가 직접 마주하면서 해결하고 어떻게 해야해야 하는지에 대한 방향성과 해결 방법을 제공하고 있습니다.


꾸밈없는 강의를 위해서 이러한 방식을 선택했으며, 이러한 과정이 저에게는 완성도 있는 강의가 아니겠지만 여러분들에게는 더 많은 도움이 될 수 있다고 생각합니다.

수강 전 참고 사항

실습 환경

  • 해당 강의는 macos m1에서 개발이 진행이 되었습니다.

  • Kafka에 대한 부분은 Docker를 통해서 구현 합니다.

  • IntelliJ IDE를 활용하여 강의가 촬영되었습니다.


이런 분들께
추천드려요!

학습 대상은
누구일까요?

  • 마이크로 서비스를 학습하고 계시는 분

  • Gateway Pattern이 궁금하신 분

  • API 과금 모델이 궁금하신 분

  • kafka를 어떻게 활용하는지 궁금하신 분

  • Docker를 활용한 이미지 활용이 궁금하신 분

선수 지식,
필요할까요?

  • Go [ 개념만 습득하시고 다른 언어를 사용하셔도 무방합니다. ]

  • javascript [ 외부 서버를 담당합니다. ]

안녕하세요
July입니다.

자기 소개

비전공자 출신으로 대학교 4학년에 갑자기 개발에 흥미가 생겨 혼자서 삽질을 진행하며 개발을 진행했던 서버 개발자...

Mongo Korea, Oracle등등 다양한 기업에서 세션을 진행한 경험이 있으며 이를 토대로

대용량 데이터와 트래픽을 직접 튜닝한 이력과 경험을 기반으로 강의를 촬영하고 이를 통해 수강생 분들이 좀 더 개발에 재미를 느끼게 하고싶은 지식공유자.

 

경력

[前] 샌드박스 블록체인 개발자

[前] 넥슨 자회사 백엔드 개발자

[前] 판교 대기업 플랫폼 서버 개발자

[] 판교 중견기업 모회사 서버 개발자

- 개인적인 사정 및 회사 사정으로 경력 사항의 상세한 부분은 변경 및 수정되었습니다.

커리큘럼

전체

21개 ∙ (2시간 57분)

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

수강평

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