Supabase ์ฌ์ฉ๋ฒ์ ๋งํ๊ธฐ์ ์์
ํ์ฌ ๊ฐ๋ฐ์ค์ธ ํ๋ก์ ํธ๋ฅผ ๊ฐ๋จํ๊ฒ ์์ฝํ๋ฉด ๋ณด์ด์คํฉ์ ๊ฑฐ๋ํ๊ณ ๊ตฌ๋งคํ ๋ณด์ด์คํฉ์ ํ๋ซํผ ๋ด๋ถ์์ ์ฌ์ฉํ ์ ์๊ฒํด์ฃผ๋ ์ดํ๋ฆฌ์ผ์ด์ ์ด๋ค.
์ด๋ค DB๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ ์ ํ์ผ๊น..?
์ฐ์ ํฌ๊ฒ 3๊ฐ์ง๋ฅผ ๊ณ ๋ฏผํด๋ณด์๋ค
1. ๋ฐ์ดํฐ ์ ํฉ์ฑ ๋ณด์ฅ & ํธ๋์ญ์ ๊ด๋ฆฌ
1. NoSQL์ RDBMS์ ๋นํด ํธ๋์ญ์
์ง์์ด ์ด๋ ต๊ณ ์ ํ์ ์
=> NoSQL์์ ์ฌ๋ฌ ๋ฌธ์์ ๋ํ ํธ๋์ญ์
์ ๋ ๋ณต์ก
2. ๊ฒฐ์ ์์คํ
์ ํน์ฑ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๊ฐ ์ ํํด์ผํจ
=> RDBMS๋ ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ์ ์๋์ผ๋ก ๊ด๋ฆฌํ ์ ์์
(์ผ๋ถ NoSQL์์๋ ์ต์ข ์ ์ผ๊ด์ฑ์ ๋ณด์ฅํ๊ธด ํ์ง๋ง ์ด๋ก ์ธํด ์ค์๊ฐ ๋ฐ์ดํฐ ์ผ๊ด์ฑ์ด ๋ณด์ฅ๋์ง ์์ ์ ์์)
3. ํ
์ด๋ธ๊ฐ ์กฐ์ธ์ด ๋นํจ์จ์ ์
=> ํ์ฌ ํ๋ก์ ํธ์์๋ ์ฌ๋ฌ ์ํฐํฐ๊ฐ์ ๊ด๊ณ๋ฅผ ๊ด๋ฆฌํด์ผํ ๊ฒ ๊ฐ๋ค๋ ์๊ฐ์ด ๋ค์์
๋ณด์ด์คํฉ ๊ฑฐ๋ ๊ธฐ๋ฅ์ ๊ด๋ จํด์๋ ๊ฒฐ์ ์์คํ ๊ณผ ์์ ๊ถ ๋ฑ๋ก์ด ํต์ฌ์ด๋ฏ๋ก ํธ๋์ญ์ (ACID)์ด ๊ฐ๋ ฅํ RDBMS๊ฐ ์ ํฉํ๋ค๊ณ ๋๋
RDBMS๋ ์ฑ๋ฅ ํฅ์์ ์ํด ๋ฌด์กฐ๊ฑด Scale-up๋ง์ ์ง์ํ๋ค๋ ๋จ์ ์ด ์์ง๋ง ํ์ฌ๋ ํ์ฅ๋ณด๋ค๋ ๋ฐ์ดํฐ ์์ ์ฑ์ ๊ณ ๋ คํ๋๊ฒ ์ฐ์ ์ ๋์ด์ผํ๋ค๊ณ ์๊ฐ
2. ์ด๋ฒคํธ ๊ธฐ๋ฐ ์๋ฆผ ์์คํ & ๋ฐ์ดํฐ ํธ๋ฆฌ๊ฑฐ
๋ฉ์ธ ๊ธฐ๋ฅ์ด๋ผ๊ณ ํ ์ ์๋ ๋ณด์ด์คํฉ ๋ณํ ์๋ฃ ํ ์ฌ์ฉ์์๊ฒ ์๋ฆผ์ ๋ณด๋ด๋ ๊ธฐ๋ฅ์ผ ํ์ํ ์ํฉ์
=> ์๋ฆผ๊ณผ ๊ด๋ จํด์ PostgreSQL๊ธฐ๋ฐ์ Supabase๋ฅผ ๋ฐ๊ฒฌํจ
Supbase๋ ๋ฐ์ดํฐ ํธ๋ฆฌ๊ฑฐ์ Webhook์ ๊ธฐ๋ณธ ์ ๊ณตํ๊ณ , ๋ณด์ด์คํฉ ๋ณํ ์๋ฃ์ ์๋์ผ๋ก ์๋ฆผ์ ๋ณด๋ผ ์ ์์
(๋ฆฌ์ผํ์ ๊ฐ๋ฅ)
3. Serverless ํ๊ฒฝ๊ณผ์ ์กฐํฉ
๋ณด์ด์คํฉ ๋ณํ ๋ชจ๋ธ์ด GCP Cloud Run(์๋ฒ๋ฆฌ์ค)์์ ๋์ํด์ผ ํ๋ฏ๋ก, DB๋ ์ด๋ฐ ์๋ฒ๋ฆฌ์ค ์ํคํ ์ฒ์ ์ ๋ง์์ผํ๋ค๊ณ ์๊ฐํ์
=> Supabase์ ๊ฒฝ์ฐ ์๋ฒ๋ฆฌ์ค DB๋ก์ ์์ ๊ด๋ฆฌํ ์๋ ๋ฐฑ์
, ํ์ฅ์ด ๊ฐ๋ฅํ๊ณ GCP Cloud Run ๋ฑ๊ณผ ์ฝ๊ฒ ์ฐ๋์ด ๊ฐ๋ฅํจ
(์ด์ ๋ถ๋ด์ด ์์)
Supabase๋ ์คํ์์ค์ Backend-as-a-Service(BaaS) ๋ชจ๋ธ๋ก ์ค๊ณ๋์ด ์์ผ๋ฉฐ ๋ชจ๋ ๊ธฐ๋ฅ์ API๋ฅผ ํตํด ์ ๊ณตํ๋ฏ๋ก Serverless ํจ์์์ HTTP ์์ฒญ์ ํตํด Supabase์ ์ํธ์์ฉํ ์ ์์
=> ๋น์ทํ๊ฒ firebase๊ฐ ์์ง๋ง ์ด๋ NoSQL๋ง ์ง์ํ๋ฏ๋ก ๋ฐฐ์ ํ์์
๊ฒฐ๋ก ์
์ถํ ๋ณ๊ฒฝ๋ ๊ฐ๋ฅ์ฑ์ด ์์ง๋ง ์ผ๋จ
- RDBMS๊ฐ ์ ํฉ
- DB์ธํ๋ผ ์ ๊ฒฝ ์ธ ํ์ ์์
- ์ค์๊ฐ ๊ธฐ๋ฅ์ ๋ด์ฅํ๊ณ ์์ด ๋ณ๊ฒฝ ์ฌํญ์ ๋ฆฌ์ผํ์์ผ๋ก ํด๋ผ์ด์ธํธ์ ํธ์ํ ์ ์์
- ํน์ ์ด๋ฒคํธ ๋ฐ์์ ํธ๋ฆฌ๊ฑฐ์ Webhook ๊ธฐ๋ฅ ์ง์
- OAuth, JWT ๊ธฐ๋ฐ ์ธ์ฆ์ ๋ด์ฅํ๊ณ ์์ด ์ฌ์ฉ์ ์ธ์ฆ ๋ฐ ์ ๊ทผ ์ ์ด๋ฅผ ์ฝ๊ฒ ์ค์ ํ ์ ์์
- API๋ฅผ ์๋์ผ๋ก ์์ฑํ ํ์์์ด Cloud Run๊ณผ ๊ฐ์ ์๋ฒ๋ฆฌ์ค ํจ์์์ API์์ฒญ์ผ๋ก ํต์ ๊ฐ๋ฅ
(RESTful API ์๋ ์์ฑํด์ค)
๋ฑ์ ์ด์ ๋ก BaaS์ธ Supabase(PostgreSQL ๊ธฐ๋ฐ)๋ฅผ ์ฌ์ฉํด๋ณด๊ธฐ๋ก ๊ฒฐ์ ํจ!
Supabase๋?
BaaS(Backend as a Service)๋ ๋ฐฑ์๋ ์ธํ๋ผ๋ฅผ ์ง์ ๊ตฌ์ถํ์ง ์๊ณ ๋ ๋ค์ํ ๊ธฐ๋ฅ์ ์ฝ๊ฒ ๊ตฌํํ ์ ์๊ฒ ํด์ค
(ex. Firebase, Supabase)
Supabase๋ PostgreSQL์ ๊ธฐ๋ฐ์ผ๋ก ํ ์คํ ์์ค BaaS ํ๋ซํผ์
PostgreSQL์ ACID ํธ๋์ญ์ ์์ง์ํ๊ณ , ๋ค์ํ ๋ฐ์ดํฐ ํ์ ๊ณผ ํ์ฅ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋๋ฐ Supabase๋ ์ด๋ฌํ PostgreSQL์ ์ฅ์ ์ ํ์ฉํ์ฌ ์ค์๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค, ์ธ์ฆ, ์คํ ๋ฆฌ์ง, ์๋ฒ๋ฆฌ์ค ํจ์ ๋ฑ์ ๊ธฐ๋ฅ์ ์ ๊ณตํด์ค
Supabase์ ์ฃผ์ ๊ธฐ๋ฅ์ผ๋ก๋
- ์ค์๊ฐ ๋ฐ์ดํฐ ๋๊ธฐํ ์ง์
=> PostgreSQL์ Logical Replication ๊ธฐ๋ฅ์ ํ์ฉ - ์ธ์ฆ ๋ฐ ๊ถํ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ ์ ๊ณต
=> OAuth, JWT ๋ฑ์ ํ์ค ์ธ์ฆ ๋ฐฉ์์ ์ง์ํ์ฌ ๋ณด์์ฑ์ ๋์
(๋ก๊ทธ์ธ, ํ์๊ฐ์ ๋ฑ์ ๊ธฐ๋ฅ์ ์ฝ๊ฒ ๊ตฌํํ ์ ์์) - ์คํ ๋ฆฌ์ง ๊ธฐ๋ฅ ์ ๊ณต
=> S3ํธํ API๋ฅผ ์ ๊ณตํ์ฌ ๊ธฐ์กด S3 ๋ฒํท๊ณผ์ ํธํ์ฑ์ ์ ์งํจ - ์๋ฒ๋ฆฌ์ค ํจ์ ๊ธฐ๋ฅ ์ ๊ณต
=> ๋ฐฑ์๋ ๋ก์ง์ ์๋ฒ๋ฆฌ์ค ํจ์๋ก ๊ตฌํํ์ฌ ์๋ฒ ๊ด๋ฆฌ์ ๋ถ๋ด์ ์ค์ผ ์ ์์
'๐ ํ๊ณ ๋ก > ๊ฐ๋ฐ์ผ์ง' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ธํ๋ผ๋ฅผ ์ด๋ค ํด๋ผ์ฐ๋ ๋ฒค๋๋ก ๊ตฌ์ถํด์ผํ ๊น? (GCP์ AWS) (0) | 2025.02.19 |
---|---|
Scrum ๋ฐฉ๋ฒ๋ก (์ ์์ผ) ๋์ ๊ธฐ (2) | 2025.02.16 |