# 그냥 Postgres를 모든 곳에 사용하세요

> Clean Markdown view of GeekNews topic #8018. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=8018](https://news.hada.io/topic?id=8018)
- GeekNews Markdown: [https://news.hada.io/topic/8018.md](https://news.hada.io/topic/8018.md)
- Type: news
- Author: [xguru](https://news.hada.io/@xguru)
- Published: 2022-12-13T11:03:02+09:00
- Updated: 2022-12-13T11:03:02+09:00
- Original source: [amazingcto.com](https://www.amazingcto.com/postgres-for-everything/)
- Points: 50
- Comments: 13

## Topic Body

- Postgres는 (수백만명의 사용자까지) 수많은 백엔드 기술을 대체 가능   
→ Kafka, RabbitMQ, Mongo, Redis,..  
- 캐시에 Redis 대신 UNLOGGED 테이블에 TEXT 를 JSON 형으로 사용  
  - 스토어드 프로시저로 데이터에 대한 만료기간을 설정   
- 메시지큐(Kafka) : SKIP LOCKED  
- 데이터 웨어하우스는 Postgres+TimescaleDB  
- Mongo 대신 JSONB를 저장하고 검색 및 인덱싱   
- pg_cron 으로 메일 전송 같은 CRON 데몬으로 사용   
- Geospacial 쿼리에 사용   
- Elastic 대신 Fulltext 검색에 사용   
- DB내에서 JSON을 생성해서 서버사이드 코드 없이 API에 바로 전달하기   
- GraphQL 어댑터로 GraphQL도 지원

## Comments



### Comment 13789

- Author: bbulbum
- Created: 2022-12-15T13:44:48+09:00
- Points: 1

음.. 각 앱에서 지원하는 더 많은 기능이 필요하지 않다면 기본적인 컨셉은 postgres 로 충분하다 정도인 듯 하네요.  
각 앱들은 위에서 대체하고있는 플로우 보다 더 많은 기능을 사용할 수 있으니까요.

### Comment 13772

- Author: colossus
- Created: 2022-12-14T14:22:56+09:00
- Points: 1

인터페이스만 잘 잡고 쓰면 터무니없는 이야기는 아니라고 봅니다. 다만 캐시/메시지큐 정도는 레디스한테 맡겨도 괜찮다고 봐요

### Comment 13768

- Author: gninggoon
- Created: 2022-12-14T10:01:37+09:00
- Points: 1

저도 최근 위 글과 같은 비슷한 생각을 하고 있습니다. 물론 대규모 서비스에는 최대한 분산해서 리스크를 분산하는게 좋겠지만, 종종 소규모 외주할 때 별도 nosql 안쓰고 postgres jsonb 타입 활용하면 훨씬 활용도가 좋았습니다. RDB + NoSQL 을 복합적으로 쓰는 듯한 사용성과 소형프로젝트 내에선 충분한 성능이였습니다.

### Comment 13766

- Author: a9t84j1k5j2j1
- Created: 2022-12-13T18:32:40+09:00
- Points: 1

하나로 모든걸 다 하는만큼 모든 리스크 포인트가 한곳에..!

### Comment 13765

- Author: ehlegeth
- Created: 2022-12-13T17:59:48+09:00
- Points: 2

몇몇은 대체할 제품이 없던 시절에 실제로 RDB로 하던 일이지만, Redis, Kafka, Cron 같은 것들은 주요한 이점을 대체하지 못하는 것처럼 보이네요. 재미로 보고 넘어가는 정도의 아이디어인 것 같습니다.

### Comment 13760

- Author: ifmkl
- Created: 2022-12-13T13:45:38+09:00
- Points: 1

뭔가 하나로 다하는걸 좋아하시는 분들에겐 딱 좋겠네요

### Comment 13758

- Author: s0400615
- Created: 2022-12-13T12:56:26+09:00
- Points: 2

저는 Geospacial때문에 postgres를 썼었는데요.  
다른 DB대비 10~100배정도 빨랐습니다.. geo쪽은 압도적이더라고요.  
  
단 다들 아시는것처럼 데이터가 많아져서 vacuum 잘못 돌아가면 지옥을 경험을 합니다..

### Comment 13757

- Author: kbumsik
- Created: 2022-12-13T12:53:25+09:00
- Points: 1

오 여러트릭들이 있네요  
  
다만 첫번째 UNLOGGED 와 스토어드 프로시저 조합은 차라리 레디스 쓰는게 훨씬 깔끔할 것 같긴 합니다 ㅎㅎ

### Comment 13754

- Author: youknowone
- Created: 2022-12-13T12:09:52+09:00
- Points: 2

몇년 전이지만 JSONB 쓰다가 부하가 심해지면 kv 패턴에 맞는거 골라서 redis로 빼는 식으로 작업한 적이 있었는데, 쾌적한 경험이었습니다.

### Comment 13753

- Author: sangheon
- Created: 2022-12-13T11:56:46+09:00
- Points: 1

흥미로운 의견이네요.

### Comment 13747

- Author: xguru
- Created: 2022-12-13T11:04:01+09:00
- Points: 3

어그로성 제목이지만, 나름 생각해 볼만한 주제라 그대로 옮겨 봤습니다.  
초기 MVP를 하는데 너무 많은 컴포넌트들을 도입하는 것도 문제긴 하니까요.

### Comment 13748

- Author: jujumilk3
- Created: 2022-12-13T11:10:03+09:00
- Points: 2
- Parent comment: 13747
- Depth: 1

좋은컨셉같아보입니다

### Comment 13829

- Author: devo209
- Created: 2022-12-20T12:54:23+09:00
- Points: 1
- Parent comment: 13748
- Depth: 2

감사합니다.
