SQL(13)
-
[ TIL ] [ ์ ๊ท๊ณผ์ : ์ฃผํน๊ธฐํ๋ก์ ํธ์ฃผ์ฐจ ] PRISMA schema 1:1๊ด๊ณ / 1:N๊ด๊ณ
์ฃผํน๊ธฐ์์ ๋ฐฐ์ด API์์ฑ, ๊ทธ๋ฆฌ๊ณ ERD๋ฅผ ์ ์ํ๋ค. ๊ต์ก๋ฐ์ ๋๋ณด๋ค ํ๋ก์ ํธ์ ์ค์ฝํ๊ฐ ์กฐ๊ธ ์ปค์ก๋ค๊ณ ๊ทธ๋งํผ ์์ฑ์๋ ์ด๋ ค์์ ๋๊ผ๋ค. ERD๋ ์ปฌ๋ผ์ด ๋ช ๊ฐ ๋ ์๊ธฐ๋, ์ ๋ฆฌ๊ฐ ๋์ง ์๊ณ ์ฐ๊ฒฐ์ด ์ด๋๋ก ๋์ด์ผ ํ ์ง ๋ณต์กํด์ง๊ธฐ ์์ํ๋ค. ๊ทธ๋ฌ๋ค ๋ณด๋, API์์ฑ๊ณผ, schema๋ฅผ ์์ฑํ๋๋ฐ๋ ๊ณ์ ๋น ๊ณณ์ด ๋ฐ๊ฒฌ๋์๋ค. ํ์ ์ ๊ฐ๋ฉด ์ด๊ฒ๋ณด๋ค ๋ช ๋ฐฐ๋ ๋ ํฐ ํ๋ก์ ํธ๋ฅผ ํ๊ฒ ๋ ๊ฑด๋ฐ, ๊พธ์คํ ๊ณต๋ถํด์ผ๊ฒ ๋ค! ERD๋ง๋ค๊ธฐ : https://drawsql.app/teams/no-55/diagrams/prisma-community-hub Prisma-Community-Hub | DrawSQL Database schema diagram for Prisma-Community-Hub. drawsql.app [ ๋ผ์ด๋ธ..
2023.09.16 -
[ TIL ] [ ์ ๊ท๊ณผ์ : ์ฃผํน๊ธฐ์ฃผ์ฐจ ] JWTํ ํฐ (.env๋ก SECRET_KEY์ฒ๋ฆฌ๊น์ง!)
๊ฒ์๊ธ์ ๋ง๋๋ LEVEL3์ ํ๊ณผ์ ์์ ํ์๊ฐ์ ๊ณผ ๋ก๊ทธ์ธ์ด ์ฑ๊ณตํ์์ ๋, JWT ํ ํฐ์ ๋ฐ๊ธํ๋๋ก ํ๋ค. ๋๋, JWTํ ํฐ์ ๋จ์ํ๊ฒ ์ฐ๊ธฐ๋ง ํ๊ณ JWT๋ฅผ secret_key๋ก ์ฒ๋ฆฌํ์ง ์์๋ค. ์์ ํ๊ธฐ ์ํด ์ฌ์ฉํ๋ JWT์ ๋ชฉ์ ์ ์์ค ํ๊ฒ์ด๋ค. ์์ฐํ ๋งํ์๋ฉด secret_key ํ์ฉํด์ผ์ง ๋ผ๋ ์ฃผ์๋ง ๋ฌ์๋๊ณ ์ ์ . envํด๋์๋ ์๋ฌด๊ฒ๋ ์ฐ์ง ์์๋ค. ๊ทธ๋ ๋ค. ๋๋ ์ฌ์ฉ๋ฐฉ๋ฒ์ ๋ชฐ๋๋ค(?) ์ฝ๋๋ฆฌ๋ทฐ ์๊ฐ์ ์ด ๋ถ๋ถ์ ๋ํ ํผ๋๋ฐฑ์ด ์์๊ณ , ๋ช ์๋ง ํ๋ฉด ์ด์ฐ ๋ ์ค ์์๋๋ฐ. env ํด๋ ์์ ๋ค์ด๊ฐ ๋ณด๋ ์ ๋ง ๋ฐ๋ก ํ๊ธฐ๋ ๋ถ๋ถ์ด ์์๋ค. ๊ฐ์ฌํ๊ฒ๋ ํผ๋๋ฐฑ๊ณผ ์ฌ์ฉ๋ฒ์ ํจ๊ป ์๋ ค์ฃผ์ จ๊ณ Til๋ก ์ถ๊ฐ ์ ๋ฆฌํ๋ฉด์ ์ดํด๋ณด๋,. envํ๊ฒฝ๋ณ์๋ก host.pass, user ๋ฑ์ secret์ผ๋ก ์ฒ๋ฆฌํ๊ณ ..
2023.09.11 -
[ Node.js ์๋ จ์ฃผ์ฐจ1 (1-0)] JWT(Json Web Token)
JWT(Json Web Token) JWT(Json Web Token)์ ์น ํ์ค์ผ๋ก์จ, ์๋ฒ์ ํด๋ผ์ด์ธํธ ์ฌ์ด์์ ์ ๋ณด๋ฅผ ์์ ํ๊ฒ ์ ์กํ๊ธฐ ์ํด ๋์์ ์ฃผ๋ ์น ํ ํฐ(Web Token)์ด๋ค. JSON ํํ์ ๋ฐ์ดํฐ๋ฅผ ์์ ํ๊ฒ ์ ์กํ๊ณ ๊ฒ์ฆํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณต. ์ธํฐ๋ท ํ์ค์ผ๋ก์ ์๋ฆฌ ์ก์ ๊ท๊ฒฉ์ด๋ค. ๋ค์ํ ์ํธํ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ ์ ์์ด, ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ๋ค. header/ payload/ signature์ ํ์์ผ๋ก 3๊ฐ์ง์ ๋ฐ์ดํฐ๋ฅผ ํฌํจํ๋ค. (๊ฐ๋ฏธ์ฒ๋ผ ๋จธ๋ฆฌ, ๊ฐ์ด, ๋ฐฐ) ์ถ๊ฐ๋ก ํน์ง์ ๋ ์์๋ณด์๋ฉด, 1) JWT๋ ๋น๋ฐ ํค๋ฅผ ๋ชจ๋ฅด๋๋ผ๋ ๋ณตํธํ(Decode)๊ฐ ๊ฐ๋ฅํ๋ค. JWT๋ฅผ ๊ฐ์ง ์ฌ๋์ด๋ผ๋ฉด ๋๊ตฌ๋ ํด๋น ํ ํฐ์ ์ด๋ค ๋ฐ์ดํฐ๊ฐ ๋ด๊ฒจ์๋์ง ํ์ธํ ์ ์๋ค. ๋ณ์กฐ๋ง ๋ถ๊ฐ๋ฅ ํ ๋ฟ, ๋๊ตฌ๋ ๋ณตํธํํ..
2023.09.11 -
[ WIL ] ( Week 5 ์ฃผ์ฐจ) ORM, noSQL vs SQL
ORM 2023.09.10 - [3. Node.js] - [ Node.js ์๋ จ์ฃผ์ฐจ1 (1-0)] ORM๊ณผ Prisma [ Node.js ์๋ จ์ฃผ์ฐจ1 (1-0)] ORM๊ณผ Prisma ORM์ด๋? ๊ฐ์ฒด ๊ด๊ณ ๋งคํ(Object-relational mapping; ORM)์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ๊ฐ์ ํธํ๋์ง ์๋ ๋ฐ์ดํฐ๋ฅผ ๋ณํํ๋ ํ๋ก๊ทธ๋๋ฐ ๊ธฐ๋ฒ์ด๋ค. ๊ฐ์ฒด ์งํฅ ์ธ์ด์์ ์ฌ์ฉํ ์ ์๋ sa-growth-diary.tistory.com noSQL vs SQL 2023.09.11 - [3. Node.js] - [ Node.js ์๋ จ์ฃผ์ฐจ1 (1-0)] noSQL vs SQL [ Node.js ์๋ จ์ฃผ์ฐจ1 (1-0)] noSQL vs SQL SQL "Structured Query Language..
2023.09.11 -
[ Node.js ์๋ จ์ฃผ์ฐจ1 (1-0)] noSQL vs SQL
SQL "Structured Query Language" SQL์ 1970๋ ๋๋ถํฐ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ (RDBMS)์์ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐ ๋๋ฆฌ ์ฌ์ฉ๋์ด ์จ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด. ์คํ ๋ฆฌ์ง ๋น์ฉ์ด ๋น์๋ ์ด๊ธฐ์๋ SQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๋ฐ์ดํฐ ์ค๋ณต์ ์ค์ด๋ ๋ฐ ์ค์ ์ ๋์๋ค. ์ค๋๋ ์๋ SQL์ ๋ค์ํ ๋ฐฉ์์ผ๋ก ์ฐ๊ฒฐ๋ ํ๊ณผ ํ ์ด๋ธ์ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฟผ๋ฆฌํ๋๋ฐ ์ฌ์ฉ๋๋ค. ํ๋์ ํ ์ด๋ธ ๋ ์ฝ๋๋ ๋ค๋ฅธ ๋ ์ฝ๋ ๋๋ ๋ค๋ฅธ ๋ง์ ๋ ์ฝ๋์ ์ฐ๊ฒฐ๋ ์ ์๊ณ ํ ์ด๋ธ๊ณผ ๋ค๋ฅธ ๋ง์ ๋ ์ฝ๋๋ค ๊ฐ์ ๋ง์ ๊ด๊ณ๋ฅผ ํ์ฑํ ์ ์๋ค. ๋น ๋ฅธ ๋ฐ์ดํฐ ์ ์ฅ ๋ฐ ๋ณต๊ตฌ๋ฅผ ์ ๊ณตํ๋ ์ด๋ฌํ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋๋์ ๋ฐ์ดํฐ์ ๋ณต์กํ SQL ์ฟผ๋ฆฌ๋ก ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ๋ค. NoSQL NoSQL ์ ๋น๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค. ..
2023.09.11 -
[ Node.js ์๋ จ์ฃผ์ฐจ1 (1-0)] ORM๊ณผ Prisma
โธ ORM์ด๋? ๊ฐ์ฒด ๊ด๊ณ ๋งคํ(Object-relational mapping; ORM)์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ๊ฐ์ ํธํ๋์ง ์๋ ๋ฐ์ดํฐ๋ฅผ ๋ณํํ๋ ํ๋ก๊ทธ๋๋ฐ ๊ธฐ๋ฒ์ด๋ค. ๊ฐ์ฒด ์งํฅ ์ธ์ด์์ ์ฌ์ฉํ ์ ์๋ "๊ฐ์" ๊ฐ์ฒด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ตฌ์ถํ๋ ๋ฐฉ๋ฒ์ด๋ค. ๊ฐ์ฒด ๊ด๊ณ ๋งคํ์ ๊ฐ๋ฅํ๊ฒ ํ๋ ์์ฉ ๋๋ ๋ฌด๋ฃ ์ํํธ์จ์ด ํจํค์ง๋ค์ด ์๊ณ , ๊ฒฝ์ฐ์ ๋ฐ๋ผ์๋ ๋ ์์ ์ผ๋ก ๊ฐ๋ฐํ๊ธฐ๋ ํ๋ค. ์ฐธ์กฐURL : ๊ฐ์ฒด ๊ด๊ณ ๋งคํ - ์ํค๋ฐฑ๊ณผ, ์ฐ๋ฆฌ ๋ชจ๋์ ๋ฐฑ๊ณผ์ฌ์ (wikipedia.org) ๊ฐ์ฒด ๊ด๊ณ ๋งคํ - ์ํค๋ฐฑ๊ณผ, ์ฐ๋ฆฌ ๋ชจ๋์ ๋ฐฑ๊ณผ์ฌ์ ์ํค๋ฐฑ๊ณผ, ์ฐ๋ฆฌ ๋ชจ๋์ ๋ฐฑ๊ณผ์ฌ์ . ๊ฐ์ฒด ๊ด๊ณ ๋งคํ(Object-relational mapping; ORM)์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ๊ฐ์ ํธํ๋์ง ์๋..
2023.09.10