Fedify์™€ NestJS๋กœ ๊ฐœ์ธ ์‚ฌ์ดํŠธ๋ฅผ ์—ฐํ•ฉ์šฐ์ฃผ์— ์—ฐ๊ฒฐํ•˜๊ธฐ
ยท
Project/crohasang_page
0. ์˜คํ”ˆ์†Œ์Šค ๊ธฐ์—ฌํ–ˆ๋˜ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•ด๋ณด์ž์˜คํ”ˆ์†Œ์Šค ์ปจํŠธ๋ฆฌ๋ทฐ์…˜ ์•„์นด๋ฐ๋ฏธ์˜ Fedify ํŒ€์— ์ฐธ์—ฌํ•ด ์˜คํ”ˆ์†Œ์Šค ๊ธฐ์—ฌ๋ฅผ ์ง„ํ–‰ํ–ˆ์—ˆ๋‹ค. ์ปจํŠธ๋ฆฌ๋ทฐ์…˜ ์•„์นด๋ฐ๋ฏธ๋ฅผ ์ˆ˜๋ฃŒํ•œ ํ›„, ๋‚ด๊ฐ€ ๊ธฐ์—ฌํ•œ Fedify ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ œ๋Œ€๋กœ ์‚ฌ์šฉํ•ด๋ณธ์ ์ด ์—†๋Š” ๊ฑฐ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์„ ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ์ด ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์–ด๋–ป๊ฒŒ ํ™œ์šฉํ•ด๋ณผ๊นŒ ์ƒ๊ฐํ•ด๋ณด๋‹ค๊ฐ€, ๋‚ด ๊ฐœ์ธ ์‚ฌ์ดํŠธ์— Fedify๋ฅผ ๋„์ž…ํ•ด์„œ ์—ฐํ•ฉ์šฐ์ฃผ ๊ณ„์ •์„ ์ƒ์„ฑํ•˜๊ณ  ๋‹ค๋ฅธ ์—ฐํ•ฉ์šฐ์ฃผ SNS์™€ ์†Œํ†ต์„ ํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค.1. ActivityPub, ์—ฐํ•ฉ์šฐ์ฃผ(Fediverse)์™€ FedifyActivityPub์€ World Wide Web Consortium(W3C)์—์„œ ํ‘œ์ค€ํ™”ํ•œ ๊ฐœ๋ฐฉํ˜• ๋ถ„์‚ฐ ์†Œ์…œ ๋„คํŠธ์›Œํฌ ํ”„๋กœํ† ์ฝœ์ด๋‹ค.(์ž์„ธํ•œ ์„ค๋ช…: https://hackernoon.com/lang/ko/์•กํ‹ฐ๋น„ํ‹ฐํŽ์—-๋Œ€ํ•œ..
NestJS ๋ฐฑ์—”๋“œ์™€ EC2 ์ธ์Šคํ„ด์Šค๋กœ ๊ฐœ์ธ ์‚ฌ์ดํŠธ์— RDS ์—ฐ๊ฒฐํ•˜๊ธฐ
ยท
Project/crohasang_page
์ง€๋‚œ ์ฃผ, ๋‚˜๋Š” ๊ฐœ์ธ ์‚ฌ์ดํŠธ์— ๊ฒŒ์‹œ๊ธ€์„ ์˜ฌ๋ฆฌ๊ธฐ ์œ„ํ•ด MySQL RDS๋ฅผ ์ƒ์„ฑํ•˜๊ณ  Next.js์—์„œ ๋ผ์šฐํŒ…์„ ์„ค์ •ํ–ˆ์—ˆ๋‹ค. ํ•˜์ง€๋งŒ Vercel์€ ๊ณ ์ • IP๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š์•„ RDS์˜ ์ธ๋ฐ”์šด๋“œ ๊ทœ์น™์„ ์„ค์ •ํ•  ์ˆ˜ ์—†๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๊ณ , ๊ฒฐ๊ตญ ํ˜„์žฌ ๊ตฌ์กฐ๋กœ๋Š” RDS์— ์ ‘๊ทผํ•˜์ง€ ๋ชปํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค. (์ด์ „ ์ž‘์„ฑ ๊ธ€: https://quickchabun.tistory.com/191 ) ์–ด๋–ป๊ฒŒ ํ•˜๋ฉด Vercel๋กœ ๋ฐฐํฌํ•˜๋ฉด์„œ RDS์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์„๊นŒ?Vercel์˜ Static IP ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™”ํ•ด์„œ ๊ณ ์ • IP๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. (๊ตฌ๋งค ํ•„์š”)AWS Lambda๋ฅผ VPC ๋‚ด๋ถ€ DB ํ”„๋ก์‹œ๋กœ ๋‘๊ณ  HTTP๋กœ ํ˜ธ์ถœํ•œ๋‹ค.๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ AWS RDS์—์„œ ๊ณ ์ • IP ์—†์ด ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•œ๋‹ค.์–ด๋–ค ๋ฐฉ๋ฒ•์„ ์“ธ..
[‘NestJS๋กœ ๋ฐฐ์šฐ๋Š” ๋ฐฑ์—”๋“œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ’ ์ •๋ฆฌ] Pipe, Middleware, Guard, Interceptor
ยท
Study/NestJS
์ €๋ฒˆ์—๋Š” NestJS์˜ Controller, Provider, Module์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ–ˆ์—ˆ๋‹ค.https://quickchabun.tistory.com/188 [‘NestJS๋กœ ๋ฐฐ์šฐ๋Š” ๋ฐฑ์—”๋“œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ’ ์ •๋ฆฌ] Controller, Provider, Module์‚ฌ์‹ค ๋ฐฑ์—”๋“œ๋ฅผ ๊ณต๋ถ€ํ•˜๊ณ ์ž ํ•˜๋Š” ์˜์ง€๋Š” ์˜ˆ์ „๋ถ€ํ„ฐ ์žˆ์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋ฐฑ์—”๋“œ ๊ฐ•์˜๋„ ๊ตฌ๋งคํ•ด์„œ 70% ๋„˜๊ฒŒ ๋“ค์—ˆ์—ˆ๋Š”๋ฐ, ๋‹ค๋ฅธ ์ผ๊ณผ ๊ฒน์ณ์„œ ์™„๊ฐ•์„ ๋ชปํ–ˆ๋˜ ๊ธฐ์–ต์ด ๋‚œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‹ค๊ฐ€์˜จ ์ถ”์„ ์—ฐํœด, ๊ต๋ณด๋ฌธquickchabun.tistory.com ์ด๋ฒˆ์—๋Š” ์š”์ฒญ์ด ์ œ๋Œ€๋กœ ์ „๋‹ฌ๋˜์—ˆ๋Š”์ง€ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ํ•˜๋Š” ํŒŒ์ดํ”„, ์š”์ฒญ ์ฒ˜๋ฆฌ ์ „์— ๋ถ€๊ฐ€ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฏธ๋“ค์›จ์–ด, ๊ถŒํ™˜ ํ™•์ธ์„ ์œ„ํ•œ ๊ฐ€๋“œ, ์š”์ฒญ๊ณผ ์‘๋‹ต์„ ์ˆ˜์ •ํ•˜๋Š”ํ•˜๋Š” ์ธํ„ฐ์…‰ํ„ฐ, ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ์˜ˆ์™ธ ํ•„ํ„ฐ, ๊ทธ๋ฆฌ๊ณ  ์ด ์š”..
[‘NestJS๋กœ ๋ฐฐ์šฐ๋Š” ๋ฐฑ์—”๋“œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ’ ์ •๋ฆฌ] Controller, Provider, Module
ยท
Study/NestJS
์‚ฌ์‹ค ๋ฐฑ์—”๋“œ๋ฅผ ๊ณต๋ถ€ํ•˜๊ณ ์ž ํ•˜๋Š” ์˜์ง€๋Š” ์˜ˆ์ „๋ถ€ํ„ฐ ์žˆ์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋ฐฑ์—”๋“œ ๊ฐ•์˜๋„ ๊ตฌ๋งคํ•ด์„œ 70% ๋„˜๊ฒŒ ๋“ค์—ˆ์—ˆ๋Š”๋ฐ, ๋‹ค๋ฅธ ์ผ๊ณผ ๊ฒน์ณ์„œ ์™„๊ฐ•์„ ๋ชปํ–ˆ๋˜ ๊ธฐ์–ต์ด ๋‚œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‹ค๊ฐ€์˜จ ์ถ”์„ ์—ฐํœด, ๊ต๋ณด๋ฌธ๊ณ ์˜ ๊ฐœ๋ฐœ์ž ์ฝ”๋„ˆ์—์„œ ๋ฌด์Šจ ์ฑ…์„ ์ฝ์„๊นŒ ๊ณ ๋ฏผํ•˜๋‹ค๊ฐ€ ‘NestJS๋กœ ๋ฐฐ์šฐ๋Š” ๋ฐฑ์—”๋“œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ’ ์ฑ…์ด ๋ˆˆ์— ๋“ค์–ด์™”๋‹ค. ์ด๋ฒˆ ์—ฐํœด ๋•Œ ์ด ์ฑ… ํ•˜๋‚˜๋งŒ ๋‹ค ์ฝ๊ณ  ์ •๋ฆฌํ•ด๋„ ๋ณด๋žŒ์ฐฌ ์—ฐํœด๋ฅผ ๋ณด๋‚ธ ๊ฑฐ๋ผ ์ž๋ถ€ํ•  ์ˆ˜ ์žˆ์ง€ ์•Š์„๊นŒ. ๊ทธ๋Ÿฐ ์ƒ๊ฐ์ด ๋“ค์–ด ์ฑ…์„ ๊ตฌ๋งคํ•˜๊ณ  ๋ณธ๊ฐ€์— ๋‚ด๋ ค๊ฐ”๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฉฐ์น ์— ๊ฑธ์ณ ํ‹ˆํ‹ˆ์ด ์ฑ…์„ ์ฝ์—ˆ๊ณ  ๋จธ์ง€์•Š์•„ ์ฑ…์˜ ๋ ํŽ˜์ด์ง€๊นŒ์ง€ ๋‹ค๋‹ค๋ฅผ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์ด์ œ ์ฝ์€ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•ด๋ณด๋ฉฐ ๋ฐฐ์šด ๋‚ด์šฉ์„ ๋ณต๊ธฐํ•ด๋ณด๋ คํ•œ๋‹ค.1. Node.js ํŠน์ง•Nest๋Š” Node.js๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š”๋ฐ, Node.js๋Š” ๋‹จ์ผ ์Šค๋ ˆ๋“œ์—์„œ ๊ตฌ๋™๋˜๋Š” ๋…ผ๋ธ”๋กœํ‚น ..