개발자

글로벌 칼럼 | 경험을 통해 배운 그래프QL 도입 성공 전략

Will Guedes | InfoWorld 2023.08.31
필자가 몸담은 기업의 소프트웨어 기반 비즈니스가 그래프QL(GraphQL) API 생태계로 깊이 들어가는 과정에서 필자는 몇 가지 가치 있는 베스트 프랙티스를 도출했다. 오픈소스 쿼리 언어인 그래프QL은 API의 미래라고 불리지만, 제대로 된 대규모 효과를 얻기 위해서는 약간의 전략이 필요하다.
 
ⓒ Getty Images Bank

오래된 REST API 기술과 나란히 놓고 보면 그래프QL은 애플리케이션이 하나의 API 요청을 통해 필요한 모든 데이터를 수집하고 서버 연결에 의존하지 않고 이 데이터를 직접 제어할 수 있도록 하는 혁신적인 이점을 제공한다. 이는 개발팀이 더 안정적인 애플리케이션을 더 빠르고 쉽게 제공하도록 만드는 중요한 차이점이다. 그래프QL을 도입하는 기업은 애플리케이션과 개발자 경험, 두 가지의 품질을 모두 대폭 개선할 수 있다.

그러나 그래프QL 도입에는 목표 달성을 방해할 수 있는 몇 가지 함정이 있다. 그래프QL의 확장성, 가시성, 보안은 저절로 주어지지 않으므로 베스트 프랙티스에 부합하는 신중한 전략이 필요하다. 필자가 얻은 교훈은 다음과 같다. 이런 전략은 그래프QL API 현대화 여정을 원활하게 진행하는 데 도움이 될 것이다.


시작부터 그래프QL 확장성을 지원한다

그래프QL은 소수의 개발자가 신속하게 서버 하나를 가동하는 용도로 사용할 때는 충분히 간단하지만, 기업이 더 큰 혜택을 얻기 위해 필요한 안정적이고 확장 가능한 구현을 구축하려면 더 많은 투자가 필요하다. 때문에 경영진이 시작부터 그래프QL 구현을 전적으로 지지하고 약속하고 지원하는 것이 중요하다.

그래프QL을 처음부터 제대로 도입하면 모든 것이 쉬워진다. 많은 기업이 저지르는 전략적 실수는 그래프QL이 조직 내에서 무분별하게 확산하도록 방치하고 그 결과 지원이 거의 이뤄지지 않고 보안도 취약한 상태가 되는 것이다. 일부 이해관계자는 그래프QL 배포가 아직 확장되지 않았으니 엔터프라이즈급 지원이 필요하지 않다고 생각할 수밖에 없다. 그러나 운영 및 보안 관점에서 이 접근 방식은 그래프QL을 소수의 개발자가 좌우하는, 성능 문제와 원치 않는 침입에 취약한 기술적 전초기지로 남겨두는 것을 의미한다.

그래프QL 사용이 이들 전략 담당자가 생각하는 임계값을 넘어서고 브라운필드 그래프QL 배포를 베스트 프랙티스에 맞출 때가 되면, 팀은 이 같은 잘못된 기본 의사 결정을 되돌리는 것이 매우 어렵다는 것을 알게 된다. 미래를 생각하지 않는 개발자간 편의를 위해 그래프QL 서버와 리졸버에 액세스 제어를 하드코딩해서 집어넣는 경우가 비일비재하다. 이 경우 다시 돌아가서 힘들게 해당 코드를 제거할 때까지 성능과 보안이 저해된다.

그보다 훨씬 나은 전략은 처음부터 그래프QL에 중점을 두고 제대로 구현하는 것이다. 베스트 프랙티스에 기반한 그린필드 그래프QL 환경을 도입하는 것은 미래의 기업에 주는 선물이다. 현재와 미래에 모두 운영과 보안이 더 쉬워지며, 노력에 대해 즉각적인 보상이 제공되고, 확장과 로드맵 목표 달성이 더 쉽고 빨라진다.


심층 분석으로 그래프QL을 지원한다

그래프QL과 전통적인 모니터링을 결합해 사용하는 것은 실수다. 표준적인 접근 방식에서는 귀중한 쿼리 인사이트와 비즈니스 인텔리전스를 놓친다. 서버 상태와 쿼리 수준에서 발생하는 문제에 대한 심층적인 분석 및 그에 상응하는 심층적인 인사이트를 수집하기 위해서는 그래프QL의 동작에 맞게 만들어진 툴이 필요하다.

그래프QL을 도입했지만 아직 효과적인 가시성 툴을 갖추지 못했다면 연합 그래프에 의존하도록 구현이 확장되기 전에 서둘러 가시성 툴을 확보해야 한다. 연합 그래프에서 API는 여러 개의 하위 그래프를 결합하고 (따라서 알아보기 어려운) 하나의 데이터 그래프를 노출한다.

전통적인 툴만 갖춘 플랫폼팀은 어느 하위 그래프가 어느 트래픽과 연관되는지 파악하는 데 필요한 가시성을 확보하지 못한다. 성능 문제와 리소스 낭비는 이 연합 아키텍처 뒤에 숨은, 해결하기가 매우 어려운 과제가 된다. 이 같은 이유로 배포 작업의 일부로, 가급적이면 처음부터 그래프QL 리소스, 데이터 및 워크로드에 대한 완전한 가시성을 확보하는 것이 중요하다.


그래프QL에 적합한 보안 전략을 수립한다

그래프QL에는 고유한 보안 특성이 있으므로 그래프QL 취약점을 악용하도록 고안된 위협을 무력화하는 보안 접근 방식이 필요하다. 전통적인 API와 웹 애플리케이션 게이트웨이에 의존하는 것으로는 효과적으로 API 코드를 보호하고 위협 활동을 나타낼 수 있는 트래픽 이상 징후를 식별하거나 안전하고 효율적인 액세스 제어를 구축할 수 없다. 그래프QL을 보호하기 위해서는 그래프QL 트래픽을 찾고 실시간 보안 대응을 가능하게 해주는 심층적 가시성을 제공하는 현대적인 방법이 필요하다.

최근 필자의 회사에서 경험한 보안 사고를 예로 들어 보자. 최근 한 주말 동안 그래프QL 계층을 통해 비정상적으로 많은 양의 요청이 수신되고 있다는 경보를 받았다. 다행히 이 사고가 일어나기 전에 프로덕션 그래프QL 서버를 보호하기 위해 이니고(Inigo) 그래프QL 관리 플랫폼을 구축해 둔 상태였다. APM(Application Performance Monitoring) 지표를 사용해서 시간 범위를 파악하고 문제의 부하로 연결되는 서비스를 확인했다. 이니고 보안 및 분석 툴을 통해 트래픽을 유발하는 사용자와 작업 공간을 찾을 수 있었다.

이 “위협”은 정상적인 사용자로 확인됐고 모두 큰 안도의 한숨을 내쉬었다. 또한 이 사건은 앱에서 최적화가 필요한 부분을 드러내는 데도 유용한 역할을 했다. 그래프QL용 보안 전략이 없었다면 이 문제로 영향을 받는 사용자가 누구인지, 또는 사안을 어떻게 해결해야 하는지를 명확히 파악하기 위한 가시성이 없었을 것이다.


모두가 한 방향을 보도록 한다

그래프QL을 도입하는 기업에서는 개발자들이 그래프QL의 이점을 추구하는 데 앞장서는 동안 일부 이해관계자가 적절한 엔터프라이즈급 지원을 도입하는 데 제동을 거는 경우가 많다. 그래프QL 지지자들은 이런 경향을 극복하고 더 넓은 범위의 팀을 구성해 앞으로 이끌어야 한다.

적절한 전략과 베스트 프랙티스로 새롭게 배포된 그래프QL을 지원하면 운영 효율성을 높이고 선도적인 개발자 경험을 제공하는 데 있어 막대한 잠재력을 끌어낼 수 있다. API 현대화가 성공하기 위한 비결은 그래프QL 배포와 함께 맞춤화된 관리와 분석, 보안을 채택하는 데 있다.

*Will Guedes는 비즈니스 관리 소프트웨어 제공업체 Yottled의 공동 창립자 겸 CTO다.
editor@itworld.co.kr
Sponsored

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록발행일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.