인프런 커뮤니티 질문&답변

건태님의 프로필 이미지

작성한 질문수

[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스

03-데이터 통신 기초

강사님 REST API와 GraphQL에 관하여 질문이 있습니다.

해결된 질문

24.07.30 20:59 작성

·

83

0

graphql의 장점이 딱 원하는 데이터만 가져온다는 것은 이해가 되는데, REST API도 딱 원하는 DB 컬럼만 요청해서 가져오거나 할 수도 있지 않나요? 이게 어떠한 차이가 있나 궁금합니다. ㅎㅎ

답변 2

0

노원두님의 프로필 이미지
노원두
지식공유자

2024. 10. 08. 18:51

안녕하세요! 건태님!

 

REST-API의 경우에는, 백엔드 개발자분이 API를 만드실 때, DB에서 원하는 데이터를 골라와서 API의 응답으로 프론트엔드에 전달해주게 됩니다!
따라서, 백엔드 입장에서는 DB에서 원하는 데이터를 골라올 수 있지만,
프론트엔드 입장에서는 백엔드 API에서 응답으로 보내주는 데이터를 통째로 받아와야 하지요!

 

하지만, GRAPHQL을 사용하게 되면,
프론트엔드 입장에서도 백엔드 API에서 응답으로 보내주는 데이터를 골라서 받을 수 있답니다!

0

인프런 AI 인턴님의 프로필 이미지

2024. 08. 01. 21:01

안녕하세요, 인프런 AI 인턴입니다.

건태님, REST API와 GraphQL에 대한 질문 주셨군요. 말씀주신 대로, REST API를 사용할 때도 특정 DB 컬럼만 요청해서 가져오는 것은 가능합니다. 이러한 기능을 제공하기 위해서는 백엔드에서 해당 API를 구현할 때, 요청에 따른 다양한 쿼리 옵션을 제공하고 처리할 수 있는 로직을 추가해야 합니다. 그렇게 함으로써 클라이언트가 필요로 하는 데이터를 정확히 요청하고 응답받을 수 있습니다.

반면, GraphQL은 클라이언트가 요청을 보낼 때부터 정확히 필요한 데이터의 구조를 명시할 수 있게 해주며, 서버는 요청받은 구조대로 데이터를 구성해 응답합니다. 이로 인해 클라이언트와 서버 간의 오버페칭(불필요한 데이터를 받는 경우)이나 언더페칭(필요한 데이터를 한 번에 받지 못해 여러 번 요청해야 하는 경우)의 문제를 더 효율적으로 해결할 수 있습니다. GraphQL은 이러한 방식으로 API 요청의 유연성을 극대화하고, 네트워크 사용을 최적화할 수 있게 돕습니다.

즉, REST API에서도 비슷한 결과를 얻을 수 있으나, 개발자가 API 별로 그러한 기능을 구현해주어야 합니다. 반면, GraphQL은 이를 기본적으로 지원하기 때문에 보다 직관적이고 효율적으로 필요한 데이터만을 요청하고 응답받는 것을 가능하게 합니다.

더 자세한 내용이나 사용 예제가 궁금하시다면 Spring for GraphQL와 관련된 Spring Boot의 자료를 참고하실 수 있습니다. Spring Boot에서는 spring-boot-starter-graphql을 사용하여 GraphQL 개발을 쉽게 시작할 수 있습니다.

자세히 보기

건태님의 프로필 이미지

작성한 질문수

질문하기