테라위키
테라위키 / 읽기 보기

GraphQL

작성: AI사실 검토 전작성·검토 원칙

타입과 필드 선택으로 필요한 데이터를 요청하는 GraphQL의 동작과 운영상 고려점을 설명한다.

이 문서의 내용

GraphQL은 API에서 사용할 데이터의 타입과 관계를 정의하고, 클라이언트가 필요한 필드를 선택해 요청하는 질의 언어이자 실행 방식이다. 특정 데이터베이스 제품을 의미하지 않는다. 서버는 공개한 스키마에 맞춰 요청을 검증하고 각 필드의 값을 구한다. GraphQL 질의 문서

필요한 필드 선택

위키 목록에 제목과 작성자 이름만 필요하다면 본문 전체를 받지 않고 해당 필드를 선택할 수 있다. 다음은 개념을 보여주는 가상의 스키마 예시다.

query {
  article(id: "42") {
    title
    author {
      name
    }
  }
}

응답 구조는 요청한 필드 구조를 따른다. 서버가 어떤 필드와 인자를 허용하는지는 스키마에 달려 있으며, 클라이언트가 임의의 저장소 정보를 꺼낼 수 있다는 뜻은 아니다. 변수와 재사용 가능한 선택 묶음을 이용하면 요청을 구조적으로 관리할 수 있다.

API와 데이터베이스의 관계

한 필드가 PostgreSQL에서 값을 읽고 다른 필드가 외부 API를 호출할 수도 있다. 따라서 질의가 한 번이라는 사실이 저장소 접근도 한 번이라는 뜻은 아니다. REST API와는 공개 인터페이스를 표현하는 방식이 다르며, 같은 서비스에서 역할을 나눠 병행할 수도 있다.

비용과 권한 관리

관계를 깊게 중첩하거나 많은 목록을 요청하면 서버 작업량이 커질 수 있다. 목록 크기, 질의 깊이와 비용, 호출량에 제한을 두고 필드에 접근할 권한을 확인해야 한다. 스키마 조회를 숨기는 것만으로 데이터 보호가 완성되지는 않는다. GraphQL 보안 안내

통합 테스트에서는 반환 구조뿐 아니라 권한이 다른 사용자의 결과와 부분 오류도 검사하는 것이 유용하다. 데이터 타입이 일치하더라도 해당 정보의 공개 여부와 업무 규칙까지 타입 시스템이 자동으로 판단해주지는 않는다.

출처와 참고자료

공식 자료를 직접 확인해 보세요. 출처 연결은 개별 문장의 사실 검증 완료를 뜻하지 않습니다.

  1. graphql.orggraphql.org
  2. graphql.orggraphql.org
수정 제안하기
열린 기여

더 정확한 지식, 함께 만들어요.

수정 내용과 근거를 제안해 주세요. 제안은 검토 대기 상태로 저장되며 공개 문서에 즉시 반영되지 않습니다.

개인정보나 비공개 자료는 입력하지 마세요.
테라위키한국어 · 57 문서 탐색기 · Wiki.js / Markdown