DynamoDB DynamoDB는 AWS에서 제공하는 완전관리형 NoSQL 데이터베이스 서비스로서 원활한 확장성과 함께 빠르고 예측 가능한 성능을 제공한다. DynamoDB의 특징으로 완전관리형 NoSQL DB라는 점과 뛰어난 확장성이 있다. 완전 관리형: 인프라 관리, 백업과 복원 등등 이러한 여러 가지 작업들을 모두 AWS가 자동으로 처리해 주는 것을 말한다. 확장성: DynamoDB는 수 백만 개의 요청을 초당 처리하고 테라바이트 이상의 데이터를 저장할 수 있다고 한다. DynamoDB는 두 가지 종류의 기본 키(primary key)를 지원하는데 오늘은 이 두 가지 키에 대해 공부했다. Partition key partiotion key는 한가지 속성으로 구성된 기본키(primary key)를 의..
며칠 전 회사에서 단순 API 기능 개발을 하고 있던 나에게 실시간 관련 기능에 필요한 간단한 실시간 파이프 라인을 한번 구축해 보는 게 어떻겠냐고 제의를 해주셔서 아무것도 모르지만 일단은 해보겠다고 했다. (오랜만에 새로운 기술을 접한다는 사실에 설렜었다..) 그래서 약 일주일 좀 넘게 GraphQL, AppSync, Amplify, Quarkus 등등 새로운 기술을 많이 접하고 공부를 했다. 이해 안 되는 부분들(특히나 GraphQL, AppSync, Amplify 이 세 개의 전체적인 상관관계를 파악하는 게 힘들었다.)은 물어보면서 최대한 이해하려고 했다. 하지만 아직은 저것들을 누군가에게 설명할 수 있을 정도로 공부한 건 아니지만 기초적인 개념과 사용법 정도는 익힌 것 같다. 그래서 오늘은 지금까..
Amplify Data modeling Amplify는 GraphQL 스키마에서 @model 지시어로 주석이 달린 GraphQL 유형에 대한 DynamoDB 데이터베이스 테이블을 자동으로 생성한다. 그리고 @model은 ID 필드를 데이터베이스 테이블에 primaryKey로 자동으로 추가한다. 아래는 Todo에 대한 간단한 GraphQL 스키마이다. type Todo @model { content: String } 위 예제의 GraphQL 스키마는 'Todo'에 대한 데이터베이스 테이블을 자동으로 생성한다. Amplify CLI는 “amplify push"를 하면 Todo 데이터베이스 테이블을 생성하고 Todo 모델에 대한 Create, Read, Update, Delete 및 list operation..
GraphQL은 데이터를 읽어오는데 사용되는 "query", 데이터를 변경하는데 사용되는 "mutation", 실시간으로 변경사항을 감지하는 "subscription" 이렇게 세 가지 유형의 쿼리가 존재한다. 오늘은 그 중 데이터를 변경할때 사용하는 mutation에 대해 알아봤다. Mutation REST에서 데이터 수정을 위해 GET요청을 사용하지 않는것 처럼 GraphQL도 데이터 변경을 발생시키는 작업은 명시적으로 mutation을 통해 전송되어야 한다는 규칙을 정하는 것이 좋다. mutation의 스키마 정의하는것은 "query"와 다를게 없다. 아래 예제 코드를 보면 스키마 형태가 query에서 mutation으로 변경된것 뿐이다. mutation CreateReviewForEpisode($e..