HelloMinchan
처음처럼
HelloMinchan
LinkedIn
전체 방문자
오늘
어제
  • 분류 전체보기 (306)
    • Backend (4)
      • NestJS (1)
      • Express (1)
      • Spring (2)
    • Infrastructure (1)
      • AWS (1)
    • Frontend (1)
      • Next.js (1)
    • Language & Runtime (4)
      • Java (2)
      • Node.js (2)
    • Computer Science (8)
      • Computer Networks (3)
      • Operating Systems (4)
      • OOP (1)
    • 독서 (4)
      • 데이터 중심 애플리케이션 설계 (3)
      • 객체지향의 사실과 오해 (1)
    • 회고 (4)
      • Project (2)
      • Career (2)
    • Deprecated (280)

채널

  • GitHub
  • LinkedIn

최근 글

태그

  • 프로그래머스Python
  • front-end
  • Database
  • 백준Python
  • 코딩
  • 백준C++
  • 프로그래머스C++
  • programmers
  • 백엔드
  • 프로그래밍
  • 개발자
  • back-end
  • Algospot
  • 백준
  • 알고스팟
  • 알고스팟Python
  • 데이터베이스
  • 백준Go
  • 프로그래머스
  • Baekjoon Online Judge

최근 댓글

인기 글

hELLO
HelloMinchan
Deprecated

[Apollo] Apollo란 무엇인가?

[Apollo] Apollo란 무엇인가?
Deprecated

[Apollo] Apollo란 무엇인가?

2020. 4. 24. 22:22

© 2020 Meteor Development Group Inc.

[Apollo] Apollo란 무엇인가?

(글쓴날 : 2020.04.24)

 


* 이 글은 Apollo에 대한 단순 소개 글입니다.


 

 

Apollo란?


1) Apollo 소개

Apollo란 GraphQL의 클라이언트 라이브러리 중 하나로 GraphQL을 사용한다면 거의 필수적으로 사용하는 상태 관리 플랫폼입니다.

다른 선택지로 GraphQL을 개발한 Facebook에서 직접 만든 Relay가 있지만, 학습 비용이 높고 React 계열만 지원한다는 단점이 있으며, 그에 반해 Apollo는 유연하고 러닝 커브가 높지 않을뿐더러 Front-End 프레임워크 삼대장?인 React, Agular, Vue를 동시 지원한다는 점에서 인기가 높은 것 같습니다.

 

* GraphQL에 관해 궁금하시다면 ☞ [GraphQL] GraphQL이란 무엇인가?

 

특히, 뷰에서 React를 쓸 경우 조합이 금상첨화가 되는데, 그 악명 높은 Redux를 Apollo로 대체가 가능해집니다.

(GraphQL과 Apollo를 쓰면, REST API와 Redux를 없애버릴 수 있습니다...)

 

또한, Apollo 자체는 플랫폼에 종속적이지 않으므로 앞으로 GraphQL과 함께 웹 및 모바일 시장을 장악하겠다는 당찬 야망을 가지고 있습니다.

 

* All your data, managed in one place

출처 : Apollo 공식 홈페이지

 

* Apollo를 사용 중인 기업 (신생 기술인 만큼 기존 서비스들의 플랫폼 이전을 장려하는 상황인 것 같습니다.)

출처 : Apollo 공식 홈페이지


2) Apollo 특징

제가 직접 사용해보며 공감한 Apollo의 특징은 다음과 같습니다.

 

(1) Query 및 Mutation 직접 전송

단순해 보이지만, 이는 클라이언트를 이용하는 주요 이유 중 하나이자, 엄청난 파급효과를 일으킵니다.

Query 및 Mutation을 Apollo에서 전송함으로써 얻는 이점은 바로, API 서버에서 데이터를 가져오기 위해 번거로운 네트워크단의 HTTP 요청을 신경 쓸 필요가 없어진다는 것입니다.

좀 더 직설적으로 말하면, fetch 혹은 axios를 사용할 필요가 없다는 뜻입니다! (FormData() Good BYE!! 와우~.~)

 

(2) 전송받은 데이터 캐싱

Apollo는 Query를 통해 전송받은 데이터를 자동으로 캐싱 합니다.

그에 따라, 클라이언트의 반복 요청을 줄여 서버 부하를 줄일 수 있을 뿐만 아니라, 서비스를 이용하는 사람들에게 더 나은 사용자 경험을 제공할 수 있습니다.

또한, 크롬 브라우저에서 Apollo Client Developer Tools 익스텐션을 설치하면, 개발 환경에서 캐시 상태와 정보를 즉시 확인이 가능하므로 무척 편리합니다.

 

* Apollo Client Developer Tools

Apollo Client Developer Tools

 

(3) Local state 관리

Apollo를 사용하면, GraphQL 서버에 Query, Mutation, Resolver를 작성하듯이, 동일하게 클라이언트에서도 클라이언트 만의 Local state를 만들어 Query, Mutation, Resolver의 사용이 가능합니다.

이는 서버에서 받아온 데이터와 클라이언트에서 관리하는 데이터를 병합할 수 있음을 의미하며, 이를 이용해 효율적인 프로그래밍과 데이터 관리가 가능해집니다.

단, GraphQL 서버에 지정되어 있는 type 중에서 필드를 생성해야만 하며, 클라이언트에서 생성한 Local state는 서버에 전송되지 않아야 하므로 @client 키워드를 사용해 제어해야 합니다.


 

 


 

 

여기까지, GraphQL의 짝꿍 Apollo에 대하여 알아보았습니다.

저도 어서 빨리 Apollo를 숙달하여 GraphQL을 보다 능숙하게 다룰 수 있도록 해야겠습니다.

Apollo의 경우 공식 문서가 매우 잘 되어 있으므로 공부해보고 싶으시다면...

 

* Apollo 공식 홈페이지 : Apollo 공식 홈페이지

 

Apollo GraphQL

Apollo Data Graph Platform— unify APIs, microservices, and databases into a data graph that you can query with GraphQL

www.apollographql.com

위의 Apollo 공식 홈페이지를 참조하시면 되겠습니다.

감사합니다!

저작자표시 비영리 변경금지 (새창열림)

'Deprecated' 카테고리의 다른 글

[Baekjoon Online Judge] 백준 1927번 최소 힙(C++, Python)  (0) 2020.04.25
[Baekjoon Online Judge] 백준 11279번 최대 힙(C++, Python)  (0) 2020.04.25
[Baekjoon Online Judge] 백준 2631번 줄세우기(C++, Python)  (0) 2020.04.24
[Baekjoon Online Judge] 백준 1915번 가장 큰 정사각형(C++, Python)  (0) 2020.04.24
[Baekjoon Online Judge] 백준 1937번 욕심쟁이 판다(C++, Python)  (0) 2020.04.23
  • [Apollo] Apollo란 무엇인가?
  • Apollo란?
'Deprecated' 카테고리의 다른 글
  • [Baekjoon Online Judge] 백준 1927번 최소 힙(C++, Python)
  • [Baekjoon Online Judge] 백준 11279번 최대 힙(C++, Python)
  • [Baekjoon Online Judge] 백준 2631번 줄세우기(C++, Python)
  • [Baekjoon Online Judge] 백준 1915번 가장 큰 정사각형(C++, Python)
HelloMinchan
HelloMinchan
Though you should not fear failure, You should do your very best to avoid it.

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.