graqhql schema에서 type 옆에 @model 을 붙이게 되면 어떤 일이 발생할까?
@model directive를 붙인 type은 AppSync API 에서 해당 type 의 데이터소스로 DynamoDB 테이블을 생성해주고, 이 데이터(Table)에 쿼리하기 위한 VTL 기반의 GraphQL resolver (Request/Response Mapping Template) 까지도 자동으로 생성해준다.
즉,
- 데이터소스(DynamoDB) 를 생성하고 AppSync API 와 연계시켜준다.
- Create/Read/Update/Delete/List 오퍼레이션을 수행하기 위한 Query 및 Mutation 과, 각각이 필요로 하는 input 등의 타입을 자동으로 생성해준다.
- 생성된 Query 및 Mutation, 타입 필드 리졸버 등을 위한 Request/Response Mapping Templates 를 자동으로 생성해준다.
- 이렇게 생성된 CRUD(L) API 를 클라이언트 소스코드에서 사용하게 하기 위한 API 라이브러리를 자동으로 생성해준다. (amplify codegen)
위와 같은 효과를 발생시킨다!