[IT 도서리뷰📘] 풀스택 서버리스 / AWS Amplify
풀스택 서버리스
- 저 : 네이더 다빗
- 출판사 : 한빛미디어
- 2021년 07월 05일 출간
들어가며
FrontEnd 생태계는 변화가 너무 빠르기 때문에, 나는 되도록이면 출간된지 얼마 안 된 책을 고르려고 하곤 한다. 이번에 인터넷 서점의 신간 목록을 살피던 와중 서버리스 컴퓨팅, 그래프 QL,이 두 가지 키워드가 눈에 띄었다. 최근 아키텍트 관련을 공부하면서 PaaS나 IaaS를 좀 더 직접 이용해보거나 이용사례를 보고싶은 마음이 들고 있었고, 그래프QL 은 사용할 일이 생길 것 같아, 미리 공부해두려고 했기 때문이다. 그리고 무엇보다 밑단에서 끝단까지 전부 갖춰진 풀스택 어플리케이션을 구현해 나가는 과정을 전부 확인해볼 수 있다는 점이 매력적이었다. 그 과정에서 사용되는 AWS Amplify 또한 언젠간 사용해보자 하고 미루고 있던 어플리케이션이었던 터라, 잘됐다 생각 하고 읽게 되었다.
Key Point ✨
- 풀스택 (React + AWS Amplify)
- 실습 위주의 진행
- 매우 친절한, 하지만 압축된 진행방식
- Too much 실습위주?
풀스택 (React + AWS Amplify)
이 책의 제목이 풀스택 서버리스인만큼, Backend를 구성하는 부분은 전부 AWS Amplify가 담당한다. 나는 AWS Amplify를 처음 접해봤는데, 생각 이상으로 많은 기능들을 지원하는 것 같았다. Auth나 API, 심지어는 Storage 까지도 cli 명령어 하나로 바로바로 구축할 수 있다는게 너무 간편해서 신기했고, AWS의 난잡하고 불편한 UI 없이 명령어만으로 중요한 부분만 컨트롤할 수 있다는 점이 좋았다. 마치 Firebase를 사용하는 기분? 이 들었고, 나중에 두 가지의 장단점을 비교해보는 것도 좋을 것 같다는 생각이 들었다. 프론트엔드 부분은 다른 프레임워크를 곁들이지 않은 CRA React를 사용하고, TypeScript가 아닌 JavaScript를 이용해 무난무난한 구성으로 짜진다. React가 이 책의 핵심이 아니라서 그런듯 하다.
실습 위주의 진행
이 책의 특징은 단 10페이지도 안돼서 바로 실습 관련 내용으로 시작된다. 아니, 어쩌면 그냥 모든 내용이 실습을 진행해가는 과정이라고 봐도 과언이 아니다. 불필요한 말을 주저리주저리 둘러대는 점이 전혀 없어서 금방금방 읽기도 쉽고 진행도 빠르고 시원시원한 느낌을 주었다. 중간중간 새롭게 등장하는 서비스나 용어들은 간략히 설명한다. 사실 그런 부분부분들을 독자들이 직접 검색해보면서 찾을 수 있기 때문에 괜찮은 전략인 것 같다. 이렇게 짧고 시원하게 구성된만큼 부담없이 읽기 좋고, 빠르게 읽힌다. 분명 이 점은 하나의 이점이지만, 후술하겠지만 이는 분명히 단점으로 작용할 수 있는 부분이다.
매우 친절한, 하지만 압축된 진행방식
이 책의 실습은 매우 친절하다. npm 을 이용해서 모듈을 설치하는 부분부터, cli 내에서 여러 옵션들을 선택하는 부분까지 일일이 명시되어있다. 그렇다고 실습하는 양이 적은 것도 아니다. 전체적인 틀을 보면, 어플리케이션을 개발하는 부분, api 게이트웨이, dataStore 를 이용한 오프라인 작업 동기화, 심지어는 CI/CD 내용까지 포함하고 있다. 이렇게 구현해보는 어플리케이션까지 많은데 놀랍게도 책의 부피는 매우 얇은 편이다.. 정말 필요한 부분만 딱딱 가독성 좋게 압축을 잘 해두었다는 생각이 든다. 적당한 설명의 적당한 코드 예시였다는 생각이 든다. 다만 이 친절은 코드 예시와 실습의 관점에서만 적용되는 것이고, 진행하다가 생기는 궁금했던 점들을 해결하는 것은 모두 독자의 몫이다.
Too much 실습위주 ?
앞서서 이 책이 AWS Amplify를 바탕으로 풀스택 어플리케이션을 만들어내는 과정에 배포 과정까지 모두 담고 있다고 했다. 하지만, 그러다보니 이 애플리케이션의 배경이 되는 지식이나, 그 부분에서 고려해야될 점이나 다른 선택지들을 제시하는 부분은 거의 보이지 않는다. 그리고 이렇게 코드 위주의 실습을 담고있다보니, 그냥 공식문서를 따라가면 되지 않을까? 하는 의문이 들기도 한다. 실제로 AWS Amplify 의 실습예제도 굉장히 잘 짜여져 있으며, 뭔가 이 책의 내용과 비슷하기도 하다. (https://awskrug.github.io/amplify-photo-gallery-workshop/10_prerequisites.html)
나의 경우는 부분부분 신기했던 점들, 몰랐던 부분들을 알게 되고 알고싶었던 GraphQL의 적용사례 라던지, AWS AppSync 나 API Gateway 와 같이 유용한 플랫폼들을 알게 돼서 좋았지만, 이 부분에 관심이 없거나 이미 알고있던 사람은 크게 배울점이 있다고 느껴지지는 않는다. 그리고 사실 이 부분도 요즘은 Next JS 가 API 를 지원하기도 하고, GraphQL 도 라이브러리들이 너무 잘 갖춰져있어서 집중해서 눈여겨봐야할 부분까지는 아니라는 생각이 든다.
기타 메모
- 서버리스 컴퓨팅 = FaaS(Function) + BaaS(Backend)
- 서버리스 어플리케이션의 특성과 장점
- 운영 책임 감소 (인프라 관리의 코스트를 비즈니스 가치 제공에 투자 가능)
- 관리형 서비스의 중용 (서버 운용 불필요, 코드가 적음)
- 확장성 (공급업체에서 처리해줌)
- 비용, 개발속도, 보안, 코드량 등등