MongoDB 모델링
최근에 시험도 준비하고, 일도 바빠서 쉽게 글을 남기기 힘들었는데, 쓸 내용들은 차곡차곡 쌓아두긴 했었다. 우선 정리와 복습도 할 겸, 최근 서비스에서 사용하고 있는 MongoDB 모델링 하는 걸 공부한 내용을 정리했다. 이 내용은 공식 문서를 보고 번역하고 재배열한 내용이다.
최근에 시험도 준비하고, 일도 바빠서 쉽게 글을 남기기 힘들었는데, 쓸 내용들은 차곡차곡 쌓아두긴 했었다. 우선 정리와 복습도 할 겸, 최근 서비스에서 사용하고 있는 MongoDB 모델링 하는 걸 공부한 내용을 정리했다. 이 내용은 공식 문서를 보고 번역하고 재배열한 내용이다.
NoSQL 종류 중 하나인 DyanamoDB
는 일반적인 SQL 테이블과 다르게, query
를 할 때 조건을 설정할 수 있는 대상이 Partition Key
(이하 PK
)와 Sort Key
(이하 SK
) 그리고 추가적으로는 Global Secondary Index
(이하 GSI
)와 Local Secondary Index
(이하 LSI
)로 구분되는 Secondary Index로 한정된다. 다른 속성 필드에 대해서는 쿼리 조건을 설정할 수 없다. 만약 다른 속성에 대해 결과를 보려면 scan
을 사용해야 한다. scan
은 테이블의 모든 데이터를 조회하기 때문에 성능면에서 좋지 않은 모습을 보여준다. 이러한 특성이 있어서, DynamoDB 테이블은 일반적으로 SQL 테이블을 만들듯 만들면 안 된다. 이 글은 AWS에서 공식적으로 추천하고 있는 Single Table
구조로 설계하는 방법에 대해서 다루고 있다.
자바스크립트 대신, 타입스크립트를 사용하는 건 많은 부분에 있어서 장점이 있다. 그렇지만 필자 입장에서는 타입스크립트로 개발을 할 때 가장 공을 들이는 부분은 다름 아닌 세팅이다… (타입스크립트 세팅 너무 고민할 게 많아…) 이 글에서 보통 프로젝트를 제대로 프론트 개발자와 함께 시작하는 상황에서의 백앤드 개발자의 입장에서, 정리도 해둘 겸, 보통 고민하는 순서대로 한 번 세팅을 해보려고 한다.
완전히 모든 부분을 커버한 글이 아님을 미리 알립니다. 어느 정도는 JS, TS 기반 서버 구성을 해본 적 있는 분들이 보시기에 적합합니다.
일단 Typescript 서버사이드를 구성할 때, 아래 내용을 준비하는 편이다. 아래 내용들은 나름 독립적인 케이스가 많아서, 순서도 뭐 상관 없을 것 같고, 필요에 따라 선택해서 볼 수 있을 것 같긴 하다.
이 글은 AWS 기반 서버리스 아키텍처 책 중에 서버리스 아키텍처 패턴 부분을 간단하게 정리한 글이다.
앞으로 소개되는 패턴들은 서버리스 아키텍처에 적용 가능 한 것이라고 배타적으로 표현하지 않아도 된다. 이 패턴은 서버리스 이전에 분산 시스템에서 사용되던 패턴이다. 또한 여기서 정리한 패턴 말고도, 인증과 관련된 패턴, 데이터 관리(CQRS, 이벤트 소싱, 구체화된 뷰, 샤딩) 및 오류 처리와 관련된 패턴(재시도 패턴)을 잘 알고 있는 것이 좋다.
Update your browser to view this website correctly.&npsb;Update my browser now