Inflearn brand logo image
Inflearn brand logo image
채널톡 아이콘

DGS: NETFLIX가 스프링 부트로 대용량 트래픽을 처리하는 방법

Netflix가 REST 대신 선택한 DGS! 실제로 Netflix가 대용량 트래픽을 처리하기 위해 사용하고 있는 프레임워크로 Spring Boot에서 GraphQL을 쉽고 강력하게 활용하는 방법을 배워봅시다! 🔥

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

이런 걸 배울 수 있어요

  • Spring Boot로 구현하는 효율적인 GraphQL서버

  • NETFLIX의 DGS 프레임워크를 활용한 서버 개발

  • DGS로 효율적인 대용량 트래픽 처리 방법

NETFLIX-DGS 프레임워크란?

1⃣ Netflix가 직접 개발하고 사용 중인 Spring Boot 기반 GraphQL 프레임워크

2⃣ 기존 REST API의 문제점을 극복하고, 마이크로서비스 환경에서 최적의 GraphQL 운영을 위해 만들어졌습니다.

3⃣ 개발자의 효율적인 생산성에 초점이 맞춰 개발된 프레임워크 입니다.

4⃣ Netflix 내부의 수백 개 서비스에서 DGS를 사용하며, 실무에서 검증된 기술입니다.

5⃣ GraphQL Federation을 지원하여 대규모 시스템에서도 확장성이 뛰어납니다.

6⃣ Netflix의 Java Platform팀이 지속적인 개발 및 최적화 중이며, 현재는 오픈소스로 공개되었습니다. 🚀

NETFLIXSpring Boot로 대용량 트래픽을 효율적으로 처리한 방법

NETFLIX는 이런 과정을 통해 DGS프레임워크를 개발하게 되었습니다.

  • 2018년 NETFLIX는 REST API 운영의 문제점을 해결하기 위해 GraphQL 활용을 연구

  • 2019년 일부 서비스에 GraphQL도입을 시작

  • 2020년 GraphQL을 더 효율적으로 개발할 수 있도록 DGS 프레임워크를 설계

  • 2021년 내부적으로만 사용하던 DGS 프레임워크를 오픈소스로 공개

  • 2022년~현재까지 NETFLIX는 내부의 수백개의 서비스를 DGS로 운영중이며 지속적으로 개선할 계획

믿고 쓰는 DGS 프레임워크 1 - 든든한 지원군

DGS의 첫번째 Author이자 개발에 핵심이 되는 인물은 Paul Bakker 라는 개발자입니다.

Paul은 Java Champion으로도 선정될 만큼 Java 생태계에서 영향력이 큰 개발자입니다.

실제로 Paul과 메일을 주고받으며 NETFLIX 내부에서 DGS의 지속적인 개발과 의지를 확인할 수 있었고, 자세한 내용은 아래 섹션2의 netflix-dgs 강의에 담아뒀습니다.

거대 리소스를 보유한 NETFLIX가 지원군이란건 의심할 여지없이 믿고 쓸 수 있다는 보증이라 저는 생각합니다 😀

Paul Bakker

DGS Github README

믿고 쓰는 DGS 프레임워크 2 - 지속적인 개선

DGS는 NETFLIX 내부에서도 현재 적극적으로 사용중이기도 하며, 많은 NETFLIX OSS(Open Source Software) 중에서도 업데이트가 가장 활발히 이루어지는 프레임워크 중 하나입니다.


실제로 DGS 깃허브 레포지토리 확인해보면 항상 1주일 내에 새로운 버전이 릴리즈되는것을 확인하실 수 있습니다.

NETFLIXSpring팀 간의 긴밀한 협력으로 10.x 버전 출시!

2024년 3월 NETFLIX는 Spring팀과 긴밀한 협력으로 DGS와 Spring for GraphQL의 통합을 발표하였습니다.
통합 계획은 2024년 말까지로 예정되었으며, 2024년 12월 21일에 10.x 버전으로 통합이 되어 릴리즈 되었습니다!

이 버전에는 기존의 레거시 모듈과 코드를 모두 제거하고, 코드베이스의 크기를 크게 줄였습니다.

이는 향후 기능 개발 속도를 높이는데 기여할것으로 기대됩니다.

그리고 성능 최적화 작업을 거쳤으며, 개발자들이 더욱 효율적인 개발을 할 수 있게 되었다고 합니다.

이 강의를 통해 NETFLIX가 채택한 기술을 직접 서비스에 도입할 수 있습니다!

강의에서는 DGS의 기본적인 사용방법을 필요한 내용만을 최대한 간결하게 담았습니다.

한 기술을 배우기에는 강의 시간이 짧다고 생각하실 수도 있지만, 영상에서 불필요한 내용과 의미없는 시간들을 모두 편집으로 잘라냈고, 딱 필요하다고 생각되는 부분만 남겼습니다.

작은 서비스를 직접 개발하는 경험을 통해 빠르게 기술을 습득할 수 있습니다!

강의에서는 가상의 영화 검색 플랫폼인 moview 서비스를 DGS를 사용해서 개발을 진행합니다.

이런 경험을 통해 빠르게 기술을 습득하고, 실무에 도입하는 감각을 익히실 수 있습니다!

가장 쉽고 편하게 이해하실 수 있도록 강의를 구성했습니다!

각 섹션에서는 DGS의 하나의 기능에 대해 이론강의를 먼저 배우고 실습으로 넘어가는 방식으로 쉽게 풀어가도록 노렸습니다.


이론 강의 중 일부분

kotlin과 java 개발자분 모두를 위한 코드 제공

강의에서 실습은 kotlin으로 진행하지만 필요한 코드는 강의 영상의 아래 수업노트를 통해 java코드로도 제공되고있습니다!

제공되는 java코드

GraphQL에 대한 사전 지식이 없다면?

제 무료 강의 중 GraphQL에 대한 이론과 실습을 다루는 강의가 있습니다.

해당 강의에서 스프링으로 간단한 실습도 진행되니, GraphQL을 처음 접하시는 분들도 해당 강의만 수강하신다면, 문제없이 이 강의도 수강하실 수 있을겁니다!


우측 이미지를 누르시면 바로 강의로 이동됩니다!

스크린샷 2025-02-23 오후 6.35.33

무료 GraphQL 강의

수강 전 참고 사항

Netflix DGS 오픈채팅방을 개설했습니다! 😊

현재 국내에 크게 활성화된 DGS의 커뮤니티가 존재하지않아 관심있는 분들 끼리 정보를 공유할 수 있는 그런 공간이 있으면 좋겠다는 생각에 만들게 되었습니다!

아직 초기 기술인 만큼 새로운 많은 변화와 새로운 소식들이 많을거라 생각합니다.

저도 아직 배우고 경험해나가는 입장에서 같은 생각을 가진 분들과 함께 문화를 만들어가고싶습니다!

관심 있으신 분들은 아래 카카오 오픈채팅방으로 부담없이 들어와주시면 감사하겠습니다!

또 강의에 관련된 질문도 이 채팅방이나 또는 1대1 채팅으로 편하게 물어봐주셔도 좋습니다!
감사합니다!


Netflix DGS 한국 1호점

https://open.kakao.com/o/go6lsDDg

실습 환경

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

  • 사용 도구: intellij IDE

  • 프레임워크: 스프링 부트 3.4.x / DGS 10.0.x

  • 사용 언어: kotlin

학습 자료

  • 강의의 대본과 맞춰 제작하다보니 비슷한 페이지가 연속되거나 하는 이유로 ppt만으로는 학습에 적합하지 않을걸로 판단되어 강의에 학습 자료를 업로드하지는 않았습니다.

  • 필요하신 분은 문의를 남겨주신다면 ppt자료 제공드리도록 하겠습니다.


선수 지식 및 유의사항

  • Spring Boot 프레임워크에 대한 기본적인 이해가 있으면 수강에 도움이 됩니다.

  • GraphQL의 기본적인 이해가 있으면 수강에 도움이 됩니다.
    -> 제 무료 강의만 수강하셔도 충분합니다!


이런 분들께
추천드려요!

학습 대상은
누구일까요?

  • Spring Boot로 GraphQL API를 개발하고 싶은 분들

  • Netflix가 대용량 트래픽을 처리하는 방식을 배우고 싶은 분들

  • GraphQL을 실무에서 제대로 활용하고 싶은 개발자

  • REST에서 GraphQL로 전환을 고민하는 기업 및 팀

선수 지식,
필요할까요?

  • GraphQL 기본 개념

  • Java 또는 Kotlin Spring Boot 기본 개념

안녕하세요
Burger입니다.

1,572

수강생

34

수강평

45

답변

5.0

강의 평점

3

강의

 

AWS Certificated Professional 및 Associate 다수 보유

현 스타트업 CTO

커리큘럼

전체

36개 ∙ (2시간 43분)

해당 강의에서 제공:

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

수강평

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