Go Package Architecture - 이론편

Go Package Architecture - 이론편

Go에서 다른 언어와 다르게 Directory(디렉토리)는 굉장히 중요하다. 많은 다른 언어들은 실제 디렉토리의 역할 이상을 하지는 않지만, Go는 Package(패키지)와 밀접한 관계가 있으며 프로그램이 어떻게 작성될지 결정하는 한 부분이다. 그 때문에 Go에서 디렉토리 구조를 어떻게 할지는 패키지를 어떻게 구성할 것인지와 꽤 유관하다. 이번 글에서는 Go를 사용하면서 어떤 형태의 디렉토리와 패키지 구조를 구성하는 것이 좋을지 혼자만의 고민을 정리했다.

자세히 보기
MongoDB 모델링

MongoDB 모델링

최근에 시험도 준비하고, 일도 바빠서 쉽게 글을 남기기 힘들었는데, 쓸 내용들은 차곡차곡 쌓아두긴 했었다. 우선 정리와 복습도 할 겸, 최근 서비스에서 사용하고 있는 MongoDB 모델링 하는 걸 공부한 내용을 정리했다. 이 내용은 공식 문서를 보고 번역하고 재배열한 내용이다.

자세히 보기
DynamoDB 설계 방법: Single Table Design

DynamoDB 설계 방법: Single Table Design

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 구조로 설계하는 방법에 대해서 다루고 있다.

자세히 보기
Monolithic 서버사이드 타입스크립트 세팅 01

Monolithic 서버사이드 타입스크립트 세팅 01

자바스크립트 대신, 타입스크립트를 사용하는 건 많은 부분에 있어서 장점이 있다. 그렇지만 필자 입장에서는 타입스크립트로 개발을 할 때 가장 공을 들이는 부분은 다름 아닌 세팅이다… (타입스크립트 세팅 너무 고민할 게 많아…) 이 글에서 보통 프로젝트를 제대로 프론트 개발자와 함께 시작하는 상황에서의 백앤드 개발자의 입장에서, 정리도 해둘 겸, 보통 고민하는 순서대로 한 번 세팅을 해보려고 한다.

완전히 모든 부분을 커버한 글이 아님을 미리 알립니다. 어느 정도는 JS, TS 기반 서버 구성을 해본 적 있는 분들이 보시기에 적합합니다.

일단 Typescript 서버사이드를 구성할 때, 아래 내용을 준비하는 편이다. 아래 내용들은 나름 독립적인 케이스가 많아서, 순서도 뭐 상관 없을 것 같고, 필요에 따라 선택해서 볼 수 있을 것 같긴 하다.

자세히 보기
서버리스 아키텍처 패턴

서버리스 아키텍처 패턴

이 글은 AWS 기반 서버리스 아키텍처 책 중에 서버리스 아키텍처 패턴 부분을 간단하게 정리한 글이다.

앞으로 소개되는 패턴들은 서버리스 아키텍처에 적용 가능 한 것이라고 배타적으로 표현하지 않아도 된다. 이 패턴은 서버리스 이전에 분산 시스템에서 사용되던 패턴이다. 또한 여기서 정리한 패턴 말고도, 인증과 관련된 패턴, 데이터 관리(CQRS, 이벤트 소싱, 구체화된 뷰, 샤딩) 및 오류 처리와 관련된 패턴(재시도 패턴)을 잘 알고 있는 것이 좋다.

자세히 보기
Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×