GraphQL 살펴보기

2025. 3. 18. 10:47·Language/SQL

개요

  • GraphQL이란 Facebook이 개발한 API 쿼리 언어(Query Language)
  • REST API와 달리, 클라이언트가 원하는 데이터만 선택해서 가져올 수 있음
  • REST API vs GraphQL 차이점비교 항목REST APIGraphQL
    데이터 요청 방식 여러 개의 엔드포인트를 호출 단일 엔드포인트(/graphql)에서 모든 요청을 처리
    Over-fetching 필요 없는 데이터까지 반환됨 원하는 데이터만 선택 가능
    Under-fetching 추가 요청이 필요할 수 있음 한 번의 요청으로 필요한 모든 데이터 조회 가능
    성능 여러 요청을 보내야 할 수도 있음 최적화된 요청 가능
    문서화 별도 API 문서 필요 자체 문서화 (GraphiQL 등 지원)

GraphQL 의존성 추가

dependencies {
	...
    implementation 'org.springframework.boot:spring-boot-starter-graphql'
}

application.yml 파일 추가

spring:
  graphql:
    graphiql:
      enabled: true   # '/graphiql' 경로로 접근하면 웹 브라우저에서 GraphQL API 테스트 가능
    schema:
      printer:
        enabled: true  # 수행한 쿼리를 콘솔에 출력

 

GraphQL 스키마 정의

  • GraphQL은 스키마 기반으로 동작하므로, schema.graphqls 파일을 생성하여 API 구조를 정의
  • src/main/resources/graphql/schema.graphqls

 

GraphQL Resolver 구현 (Controller 역할)

  • GraphQL에서는 데이터 조회(Query), 데이터 변경(Mutation)을 담당하는 리졸버(Resolver)가 필요
  • 역할설명어노테이션
    데이터 조회 클라이언트의 Query 요청을 처리하여 데이터를 반환 @QueryMapping
    데이터 생성/수정 Mutation 요청을 처리하여 데이터를 추가/수정 @MutationMapping

 

GraphQL 테스트

  • http://localhost:8080/graphiql 접속 후 query 테스트 진행
  • Postman을 활용해서 API 호출
저작자표시 비영리 변경금지 (새창열림)

'Language > SQL' 카테고리의 다른 글

코딩테스트에서 자주 등장하는 확장 함수  (0) 2025.04.25
'Language/SQL' 카테고리의 다른 글
  • 코딩테스트에서 자주 등장하는 확장 함수
안녕 하리
안녕 하리
  • 안녕 하리
    보초 개발자
    안녕 하리
  • 전체
    오늘
    어제
    • 분류 전체보기 (13)
      • 트러블슈팅 (4)
      • Honey Tip! (5)
      • Language (3)
        • Java (0)
        • Kotlin (1)
        • SQL (2)
      • Cloud (0)
      • ETC (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
안녕 하리
GraphQL 살펴보기
상단으로

티스토리툴바