GraphQL의 기본 타입에는 어떤 것들이 있나요?
_____A: GraphQL의 기본 타입(스칼라 타입)에는 총 5가지가 있습니다.
1. Int
- 32비트 부호 있는 정수입니다.
- 예) 42, -7 등
2. Float
- 부동소수점 숫자입니다.
- 예) 3.14, -0.01 등
3. String
- 예) "Hello, World!", "GraphQL" 등
4. Boolean
- 참(true) 또는 거짓(false)을 나타냅니다.
- 예) true, false
5. ID
- 고유 식별자를 나타내며, 문자열로 표현됩니다.
- 보통 객체를 구별하는 데 사용되며, 클라이언트와 서버 간에 식별자로 활용됩니다.
- 예) "123", "a1b2c3" 등
이 5가지 기본 스칼라 타입을 통해 GraphQL 스키마의 필드를 정의하며, 필요에 따라 리스트([Type])나 널 가능 여부(Type!)를 함께 사용하여 더 복잡한 타입을 표현할 수 있습니다.
GraphQL의 기본 타입은 데이터의 형태와 구조를 정의하는 데 중요한 역할을 하며, 클라이언트가 서버에 요청할 수 있는 데이터의 형태를 명확히 합니다.
GraphQL의 기본 타입은 다음과 같습니다: 1. 스칼라 타입 (Scalar Types) 스칼라 타입은 GraphQL에서 가장 기본적인 데이터 타입으로, 더 이상 분해할 수 없는 단일 값입니다.
GraphQL에서 제공하는 기본 스칼라 타입은 다음과 같습니다: - Int : 32비트 정수 값입니다.
예를 들어, -1, 0, 1, 42 등이 있습니다.
- Float : 부동 소수점 숫자입니다.
예를 들어,
3.14, -0.001,
2.0 등이 있습니다.
- String : UTF-8 인코딩된 문자열입니다.
예를 들어, "Hello, World!"와 같은 값입니다.
- Boolean : true 또는 false 값을 가집니다.
- ID : 고유 식별자를 나타내는 타입으로, 문자열로 표현됩니다.
주로 데이터의 고유성을 보장하기 위해 사용됩니다.
이 외에도 사용자 정의 스칼라 타입을 정의할 수 있습니다.
예를 들어, 특정 형식의 이메일 주소나 날짜를 나타내는 스칼라 타입을 만들 수 있습니다.
2. 객체 타입 (Object Types) 객체 타입은 여러 개의 필드를 가지며, 각 필드는 스칼라 타입이나 다른 객체 타입을 가질 수 있습니다.
객체 타입은 GraphQL 스키마의 핵심 요소로, 데이터의 구조를 정의합니다.
예를 들어, 다음과 같은 객체 타입을 정의할 수 있습니다: ```graphql type User { id: ID! name: String! age: Int } ``` 위의 예에서 `User` 객체 타입은 `id`, `name`, `age`라는 세 개의 필드를 가지고 있습니다.
`!`는 해당 필드가 필수임을 나타냅니다.
3. 인터페이스 타입 (Interface Types) 인터페이스 타입은 여러 객체 타입이 공통적으로 가져야 하는 필드를 정의합니다.
이를 통해 다양한 객체 타입이 동일한 인터페이스를 구현할 수 있습니다.
예를 들어: ```graphql interface Character { id: ID! name: String! } type Human implements Character { id: ID! name: String! homePlanet: String } type Droid implements Character { id: ID! name: String! primaryFunction: String } ``` 위의 예에서 `Character` 인터페이스는 `id`와 `name` 필드를 정의하고, `Human`과 `Droid` 객체 타입이 이를 구현하고 있습니다.
4. 유니온 타입 (Union Types) 유니온 타입은 여러 객체 타입 중 하나를 반환할 수 있는 타입입니다.
유니온 타입은 특정 필드가 여러 다른 타입 중 하나일 수 있음을 나타냅니다.
예를 들어: ```graphql union SearchResult = Human | Droid | Starship ``` 위의 예에서 `SearchResult` 유니온 타입은 `Human`, `Droid`, `Starship` 중 하나의 타입을 반환할 수 있습니다.
5. 열거형 타입 (Enum Types) 열거형 타입은 미리 정의된 상수 집합을 나타냅니다.
이를 통해 특정 필드가 가질 수 있는 값의 범위를 제한할 수 있습니다.
예를 들어: ```graphql enum Episode { NEWHOPE EMPIRE JEDI } ``` 위의 예에서 `Episode` 열거형 타입은 `NEWHOPE`, `EMPIRE`, `JEDI`라는 세 가지 값을 가질 수 있습니다.
6. 입력 타입 (Input Types) 입력 타입은 쿼리나 뮤테이션의 인자로 전달될 수 있는 데이터 구조를 정의합니다.
입력 타입은 객체 타입과 유사하지만, 필드에 대한 접근이 제한됩니다.
예를 들어: ```graphql input UserInput { name: String! age: Int } ``` 위의 예에서 `UserInput` 입력 타입은 `name`과 `age` 필드를 가지고 있으며, 이를 통해 클라이언트가 서버에 데이터를 전송할 수 있습니다.
결론 GraphQL의 기본 타입은 API의 데이터 구조를 정의하는 데 필수적입니다.
스칼라 타입, 객체 타입, 인터페이스 타입, 유니온 타입, 열거형 타입, 입력 타입 등 다양한 타입을 활용하여 복잡한 데이터 구조를 효과적으로 모델링할 수 있습니다.
이러한 타입 시스템은 클라이언트와 서버 간의 명확한 계약을 형성하고, 데이터의 일관성과 유효성을 보장하는 데 기여합니다.
작성자:
정우성 [비회원]
| 작성일자: 1년 전
2024-12-08 10:01:44
조회수: 191 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 191 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.