話題の記事

AWS Amplify 노하우 시리즈 포스팅을 공개합니다! #aws #amplify

AWS Amplify 가 공개된지도 약 1년반이 넘었습니다. 처음에 릴리즈 되었을때는 생각보다 기능 면에서도 도큐멘테이션 면에서도 여러가지로 부실했던 점이 많아서 이게 과연 잘 될까 반신반의했었습니다만, 이제는 초기 스타트업의 MVP 제품은 AWS Amplify 를 사용해서도 충분히 개발할 수 있을 것 같고, Amplify 가 서포트해주는 기능과 잘 맞아떨어진다면 MVP 이후로도 계속해서 사용해나갈 수 있을것 같은 생각이 들어서 제가 지금까지 이것저것 갖고 놀면서 알게된 AWS Amplify 의 노하우를 공유하는 포스팅 시리즈를 작성해보았습니다.
2020.07.27

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

안녕하세요!ㅎㅎ Classmethod 컨설팅부 소속 김태우입니다.

AWS Amplify 가 공개된지도 약 1년반이 넘었습니다. 처음에 릴리즈 되었을때는 생각보다 기능 면에서도 도큐멘테이션 면에서도 여러가지로 부실했던 점이 많아서 이게 과연 잘 될까 반신반의했었습니다만, 이제는 초기 스타트업의 MVP 제품은 AWS Amplify 를 사용해서도 충분히 개발할 수 있을 것 같고, Amplify 가 서포트해주는 기능과 잘 맞아떨어진다면 MVP 이후로도 계속해서 사용해나갈 수 있을것 같은 생각이 들어서 제가 지금까지 이것저것 갖고 놀면서 알게된 AWS Amplify 의 노하우를 공유하는 포스팅 시리즈를 작성해보았습니다.

AWS Japan 에서는 이번주 금요일(7/31)에 Amplify Meetup 이 열리기도 해서 저도 LT발표 참가자로 참여하는데, AWS Korea 에서도 추후에 AWS Amplify 와 관련한 재밌는 이벤트들이 많이많이 열렸으면 하는 개인적인 바람도 있습니다!ㅎㅎ

본 포스팅 시리즈는 주로 스타트업 개발자들을 대상으로 하고 있으며, AWS Amplify 튜토리얼을 한번이라도 진행해보신 분들을 대상으로 하고 있습니다. 따라서 본 포스팅 시리즈를 읽으시기 전에 아직 AWS Amplify 를 단한번도 만져보지 않으신 분들은 아래의 공식문서의 튜토리얼 시리즈와 AWS Amplify Workshop 을 꼭 한번 진행해보신 다음에 아래 포스팅 시리즈를 읽어주시는 것을 추천합니다! (그렇다고 제 포스팅의 난이도가 높다거나 하진 않습니다ㅎㅎ)

스타트업에서 AWS Amplify 를 활용한 MVP 를 개발할 때에 가장 혜택을 많이 얻을 수 있는 부분이 어디일까를 생각해보면 고민할 필요도 없이 바로 Amplify API 라고 생각합니다. 스키마만 작성해두면 백엔드 API 는 물론, 이종의 데이터소스 (DynamoDB 와 Elasticsearch) 간의 데이터 싱크까지 맞춰주는 등의 인프라 배포 자동화, 그리고 프론트엔드에서 사용될 타입과 API 코드까지 전부 자동으로 생성해주는 기능은 실로 엄청나다고 생각합니다.

하지만, AWS Amplify 의 이러한 장점들에 매료되어 열심히 AWS Amplify 를 사용하여 프로덕트를 개발하다보면 부딪히는 문제들도 많습니다. 이러한 문제들 중에서는 현시점에서 해결이 불가능한 것들도 있긴 하지만, 제 경험상 대부분의 경우에는 workaround 가 존재하고, 또 프로젝트를 시작하기 전에 미리 AWS Amplify 를 어떻게 활용할 것인가를 좀 더 계획적으로 설계하고 Amplify 를 전략적으로 사용하는 것으로 빠르고 효과적으로 프로덕트를 개발하고 출시까지 할 수 있지 않을까 생각합니다.

그래서, 본 포스팅 시리즈는 주로 Amplify 의 수많은 기능들 중에서 API 에 초점을 맞춘 노하우를 공유하는 시리즈가 되겠습니다! :)

포스팅 시리즈

첫번째 포스팅

Amplify 프로젝트를 초기화 할 때 백엔드 프로젝트와 프론트 프로젝트를 나눠서 설계함으로써 어떤 이점이 있는지를 알아봅니다.

두번째 포스팅

@searchable 을 통해 Search API 를 사용하는 경우, 현재로서는 enum 타입이 검색필드에 활용될 수 없다는 점을 공유하고, 회피책을 공유합니다.

세번째 포스팅

@model 디렉티브의 동작방식에 대해 자세히 알아보고 @model 디렉티브를 언제 붙이고 언제 붙이지 말아야할지에 대한 선택을 어떻게 해야할지를 공유합니다.

네번째 포스팅

amplify codegen 시 depth 설정에 대해 반드시 알아둬야하는 점을 공유합니다.

다섯번째 포스팅

List API 와 Search API 의 데이터소스로 인한 제약사항들을 알아봅니다.

여섯번째 포스팅

Amplify DataStore 에 대해 간략히 소개하고, Amplify DataStore 의 현시점에서의 제약사항들에 대해 알아봅니다.

일곱번째 포스팅

Custom Resolver 를 작성하는 방법에 대해 알아봅니다.

마치며

사실 예전부터 써야지써야지 하고 벼르고 벼르다가 마침 Amplify Meetup 발표자료를 준비하면서 그냥 하는김에 전부 쓰자는 마인드로 작성해보았습니다. 원래 계획은 총 10편의 포스팅을 작성하는 것이었는데, 요즘 업무부하가 좀 많이 걸려있어서 7편으로 줄이게 되었습니다. 이후에 또 다시 기회가 된다면 Amplify 관련한 글들을 또 적어보려고 합니다! AWS Amplify 를 사용하려는 분들, 이미 사용하고 계시는 분들에게 조금이라도 도움이 되셨다면 기쁠 것 같습니다! :)

이상, 컨설팅부의 김태우였습니다! :D