์ „์ฒด ๊ธ€ 60

TroubleShooting - Socket Transports ์„ค์ •

์„œ๋ฒ„ ๋ถ€ํ•˜๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๋ฅผ ๋„์ž…ํ•˜๊ณ  Redis ์–ด๋Œ‘ํ„ฐ๋ฅผ ์„ค์ •ํ–ˆ์ง€๋งŒ, ์ง€์†์ ์œผ๋กœ ์š”์ฒญ์ด ์ „์†ก๋˜๋ฉด์„œ๋„ ์—ฐ๊ฒฐ์€ ์ด๋ฃจ์–ด์ง€์ง€ ์•Š๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.Socket.IO์˜ ๊ธฐ๋ณธ ์ „์†ก ๋ฐฉ์‹์€ polling์œผ๋กœ ์„ค์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. polling์€ ์ฃผ๊ธฐ์ ์œผ๋กœ HTTP ์š”์ฒญ์„ ๋ณด๋‚ด์–ด ์—ฐ๊ฒฐ์„ ์œ ์ง€ํ•˜์ง€๋งŒ, ๋ถ„์‚ฐ๋œ ํ™˜๊ฒฝ์—์„œ๋Š” ์š”์ฒญ์ด ๋‹ค๋ฅธ ์„œ๋ฒ„๋กœ ์ „๋‹ฌ๋  ๊ฒฝ์šฐ ์†Œ์ผ“ ์—ฐ๊ฒฐ์ด ๋Š์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Pollingํ•ด๋‹น ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ฒ˜์Œ ์š”์ฒญ์ด ์ด๋ฃจ์–ด์ง€๋Š” ์„œ๋ฒ„์™€ ์ง€์†์ ์ธ ์—ฐ๊ฒฐ์„ ์œ ์ง€์‹œ์ผœ์•ผ๋งŒ ํ–ˆ์Šต๋‹ˆ๋‹ค.๊ณต์‹ ๋ฌธ์„œ๋ฅผ ํ†ตํ•ด ์ „์†ก ๋ฐฉ์‹์„ WebSocket ๋ฐฉ์‹์œผ๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์Œ์„ ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.  ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• 1 : Polling -> WebSocket WebSocket์›น์†Œ์ผ“ ๋ฐฉ์‹์€ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„์— ์ง€์†์ ..

Web 2024.09.03

๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ ํ™˜๊ฒฝ์—์„œ์˜ Socket ์—ฐ๊ฒฐ (Redis Adapter, Redis Pub/Sub)

์„œ๋ฒ„ ๋ถ€ํ•˜๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๋ฅผ ๋„์ž…ํ•œ ํ›„, ์ผ๋ถ€ ์œ ์ €๊ฐ€ Socket ์—ฐ๊ฒฐ์— ์‹คํŒจํ•˜๊ฑฐ๋‚˜ ์—ฐ๊ฒฐ์ด ๋ถˆ์•ˆ์ •ํ•ด์ง€๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์›์ธ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ ๋„์ž…์œผ๋กœ ์ธํ•ด ์†Œ์ผ“ ์—ฐ๊ฒฐ์ด ๋ถ„์‚ฐ๋œ ์„œ๋ฒ„๋“ค๋กœ ๋‚˜๋ˆ„์–ด์กŒ๊ณ , ์ด๋กœ ์ธํ•ด ์„œ๋ฒ„ ๊ฐ„์˜ ์†Œ์ผ“ ์—ฐ๊ฒฐ ์ •๋ณด๊ฐ€ ๊ณต์œ ๋˜์ง€ ์•Š์•„ ์ผ๋ถ€ ์œ ์ €๊ฐ€ ์—ฐ๊ฒฐ ์˜ค๋ฅ˜๋ฅผ ๊ฒช์—ˆ์Šต๋‹ˆ๋‹ค. Redis Pub/Sub ๋ฐ Redis Adapter๋ฅผ ๋„์ž…ํ•˜์—ฌ ๋ถ„์‚ฐ๋œ ์„œ๋ฒ„ ๊ฐ„์˜ ์†Œ์ผ“ ์—ฐ๊ฒฐ ์ •๋ณด๋ฅผ ํ†ตํ•ฉ์ ์œผ๋กœ ๊ด€๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐ ์„œ๋ฒ„๊ฐ€ ๋™์ผํ•œ ์†Œ์ผ“ ์—ฐ๊ฒฐ ์ƒํƒœ๋ฅผ ๊ณต์œ ํ•˜๊ฒŒ ๋˜์–ด, ๋ชจ๋“  ์œ ์ €์—๊ฒŒ ์•ˆ์ •์ ์ธ ์‹ค์‹œ๊ฐ„ ์—ฐ๊ฒฐ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. RedisAdapter ์„ค์ • ๊ธฐ์กด์— ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” Redis ํด๋ผ์ด์–ธํŠธ์˜ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.main.ts Socket.IO ๊ณต์‹๋ฌธ์„œ์—์„œ ์ œ๊ณต..

Web 2024.09.02

NestJS : ์ˆœํ™˜ ์ฐธ์กฐ

ํ˜„์žฌ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ๋Š” ํ”„๋กœ์ ํŠธ์—์„œ ์†Œ์ผ“์„ ์ด์šฉํ•œ ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ…์„ ๊ตฌํ˜„ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๊ตฌํ˜„ ๊ณผ์ •์—์„œ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฌธ์ œ๋“ค์„ ๊ฒช์—ˆ๊ณ  ๊ทธ ์ค‘ ํ•˜๋‚˜๋กœ ์ˆœํ™˜ ์ฐธ์กฐ์— ๋Œ€ํ•ด ์ž‘์„ฑํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.  ์ˆœํ™˜์ฐธ์กฐ์ˆœํ™˜ ์ข…์†์„ฑ์€ ๋‘ ํด๋ž˜์Šค๊ฐ€ ์„œ๋กœ ์ข…์†๋  ๋•Œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํด๋ž˜์Šค A์—๋Š” ํด๋ž˜์Šค B๊ฐ€ ํ•„์š”ํ•˜๊ณ  ํด๋ž˜์Šค B์—๋„ ํด๋ž˜์Šค A๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“ˆ ๊ฐ„ ๋ฐ ๊ณต๊ธ‰์ž ๊ฐ„์— ์ค‘์ฒฉ์—์„œ ์ˆœํ™˜ ์ข…์†์„ฑ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ์ˆœํ™˜ ์ข…์†์„ฑ์„ ํ”ผํ•ด์•ผ ํ•˜์ง€๋งŒ ํ•ญ์ƒ ๊ทธ๋ ‡๊ฒŒ ํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ Nest๋Š” ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ณต๊ธ‰์ž ๊ฐ„์˜ ์ˆœํ™˜ ์ข…์†์„ฑ์„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์žฅ์—์„œ๋Š” ์ •๋ฐฉํ–ฅ ์ฐธ์กฐ๋ฅผ ํ•˜๋‚˜์˜ ๊ธฐ์ˆ ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ModuleRef ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ DI ์ปจํ…Œ์ด๋„ˆ์—์„œ ์ œ๊ณต์ž ์ธ์Šคํ„ด์Šค๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ๋‹ค๋ฅธ ๊ธฐ์ˆ ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.๋˜ํ•œ ๋ชจ๋“ˆ ..

Web 2024.08.12

์žฌ๊ท€ํ•จ์ˆ˜์™€ ๋ฐ˜๋ณต๋ฌธ

์˜ค๋Š˜์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ์˜ˆ์ƒ ๋Œ€์ง„ํ‘œ๋ฅผ ํ’€๋ฉฐ ์•Œ๊ฒŒ๋œ ์žฌ๊ท€ ํ•จ์ˆ˜์™€ ๋ฐ˜๋ณต๋ฌธ์˜ ์ฐจ์ด์ ์— ๋Œ€ํ•ด ์ž‘์„ฑํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.  ๋ฌธ์ œ๋ฅผ ํ’€๋ฉฐ ์ œ๊ฐ€ ์‚ฌ์šฉํ•œ ์žฌ๊ท€ ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.function solution(n, a, b) { let round = 0; const recursion = (a, b, round) => { if (a !== b) { return recursion(Math.ceil(a / 2), Math.ceil(b / 2), round + 1); } return round; }; const answer = recursion(a, b, round); return answer;} a์™€ b๊ฐ€ ๋™์ผํ•œ ๊ฐ’์„ ๊ฐ€์งˆ๋•Œ๊นŒ์ง€ ๋‚˜๋ˆ ์ง„ ๋’ค ์˜ฌ๋ฆผ ์ฒ˜๋ฆฌ ๋˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ํ‘œํ˜„ํ•œ๋‹ค๋ฉด..

Web 2024.08.06

์ž๋ฃŒ๊ตฌ์กฐ : Linked List

์˜ค๋Š˜์€ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ๊ณต๋ถ€ํ•˜๋ฉฐ ๋งํฌ๋“œ๋ฆฌ์ŠคํŠธ์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ๊ฐ„๋‹จํžˆ ์ ์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.  ๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ(Linked List)๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์˜ ํ•œ ์œ ํ˜•์œผ๋กœ, ๊ฐ ์š”์†Œ(๋…ธ๋“œ)๊ฐ€ ๋ฐ์ดํ„ฐ์™€ ๋‹ค์Œ ์š”์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ํฌ์ธํ„ฐ๋ฅผ ํฌํ•จํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋ฐฐ์—ด๊ณผ ๋‹ฌ๋ฆฌ ์š”์†Œ๋“ค์ด ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์—ฐ์†๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฉฐ, ๋…ผ๋ฆฌ์ ์œผ๋กœ ์—ฐ๊ฒฐ๋œ ๊ตฌ์กฐ๋ฅผ ๊ฐ–์Šต๋‹ˆ๋‹ค. ๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ๋Š” ๋ฐ์ดํ„ฐ์˜ ๋™์  ํ• ๋‹น ๋ฐ ์‚ฝ์ž…, ์‚ญ์ œ๊ฐ€ ๋นˆ๋ฒˆํžˆ ์ผ์–ด๋‚˜๋Š” ์ƒํ™ฉ์—์„œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. 1. ๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ์˜ ๊ตฌ์„ฑ ์š”์†Œ1.1. ๋…ธ๋“œ(Node): ๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ์˜ ๊ธฐ๋ณธ ๊ตฌ์„ฑ ์š”์†Œ. ๊ฐ ๋…ธ๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‘ ๋ถ€๋ถ„์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.   - ๋ฐ์ดํ„ฐ(Data): ๋…ธ๋“œ๊ฐ€ ์ €์žฅํ•˜๋Š” ๊ฐ’   - ํฌ์ธํ„ฐ(Next): ๋‹ค์Œ ๋…ธ๋“œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ฐธ์กฐ(์ฃผ์†Œ)1.2..

Web 2024.07.19

์ž๋ฃŒ ๊ตฌ์กฐ : ํ•ด์‹œ ํ…Œ์ด๋ธ”

์˜ค๋Š˜์€ ์ž๋ฃŒ๊ตฌ์กฐ ํ•ด์‹œ ํ…Œ์ด๋ธ”์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ์š”์•ฝํ•ฉ๋‹ˆ๋‹ค. ํ•ด์‹œ ํ…Œ์ด๋ธ” Key & Value๋กœ ์ €์žฅ๋˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ๋น ๋ฅด๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ด๋Š” ํ•ด์‹œ ํ…Œ์ด๋ธ” ๋‚ด๋ถ€์— ๋ฒ„ํ‚ท์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ํ•ด์‹œ ํ…Œ์ด๋ธ”์€ ๊ฐ๊ฐ์˜ Key ๊ฐ’์— ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ์ ์šฉํ•˜์—ฌ index๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ์ด index์— ํ•ด๋‹นํ•˜๋Š” ๋ฒ„ํ‚ท์— ๊ฐ’์„ ์ €์žฅํ•˜๊ฑฐ๋‚˜ ๊ฒ€์ƒ‰ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.  ์‹œ๊ฐ„ ๋ณต์žก๋„ ํ•ด์‹œ ํ…Œ์ด๋ธ”์€ Key๊ฐ’์œผ๋กœ Value๋ฅผ ํ•œ ๋ฒˆ์— ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ‰๊ท ์ ์œผ๋กœ 0(1)์— ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค.  ํ•ด์‹œ ์ถฉ๋Œ ํ•ด์‹œ ํ•จ์ˆ˜๊ฐ€ index๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์ „๋ถ€ Unique ํ•œ ๊ฐ’์„ ๊ฐ€์ง€๋Š” ๊ฑด ์•„๋‹™๋‹ˆ๋‹ค. ๊ธ€์ž ์ˆ˜๋ฅผ ํ™˜์‚ฐํ•ด์„œ index๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•ด์‹œ ํ•จ์ˆ˜๊ฐ€ ์žˆ๋‹ค๋ฉด, Key ๊ฐ’์˜ ๊ธ€์ž ์ˆ˜๊ฐ€ ๊ฐ™์„ ๋•Œ ๊ฐ™์€ in..

Web 2024.07.17

Trello - member ํ…Œ์ด๋ธ”์„ ํ†ตํ•˜๋Š” ์ธ์ฆ, ์ธ๊ฐ€

์˜ค๋Š˜์€์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” Board์— ๊ด€ํ•œ ์ ‘๊ทผ ๊ถŒํ•œ์„ ์ธ์ฆํ•˜๊ธฐ ์œ„ํ•ด Member๋ผ๋Š” ํ…Œ์ด๋ธ”์„ ์ถ”๊ฐ€๋กœ ๊ตฌ์„ฑํ–ˆ๊ณ ์œ ์ € ์ธ์ฆ, ์ธ๊ฐ€ ์™ธ์— Member ์ธ์ฆ, ์ธ๊ฐ€๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ERD์ž…๋‹ˆ๋‹ค.๊ธฐ๋ณธ์ ์œผ๋กœ ๋ณด๋“œ, ๋ฆฌ์ŠคํŠธ, ์นด๋“œ์™€ ๊ด€๋ จ๋œ API ํ˜ธ์ถœ → ํ•ด๋‹น ์œ ์ €๊ฐ€ ๋ฉค๋ฒ„์— ๋“ฑ๋ก ๋˜์–ด์žˆ๋Š”์ง€ ์กฐํšŒ → true์ผ ๊ฒฝ์šฐ API ํ˜ธ์ถœ์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.์ด๋ฅผ ์œ„ํ•œ ์ธ์ฆ๊ณผ ์ธ๊ฐ€๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๋ช‡ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.Guard๋ฅผ ํ†ตํ•œ ๊ตฌํ˜„Interceptor + Guard๋ฅผ ํ†ตํ•œ ๊ตฌํ˜„Middleware + Guard๋ฅผ ํ†ตํ•œ ๊ตฌํ˜„Method๋ฅผ ํ†ตํ•œ ๊ตฌํ˜„๋‹ค๋ฅธ ๋ฐฉ๋ฒ•๋“ค1. Guard๋ฅผ ํ†ตํ•œ ๊ตฌํ˜„์ฒซ ๋ฒˆ์งธ๋กœ Guard๋ฅผ ํ†ตํ•œ ๊ตฌํ˜„์„ ๊ณ„ํšํ–ˆ์Šต๋‹ˆ๋‹ค.URL์„ ํ†ตํ•ด ๋งค ํ˜ธ์ถœ๋งˆ๋‹ค boardId๋ฅผ ์ „๋‹ฌ๋ฐ›๋Š”๋‹ค.JWT ์ธ์ฆ์—์„œ ๋„˜์–ด์˜จ ..

Web 2024.07.16

๊ณต์—ฐ ์˜ˆ๋งค ํ”„๋กœ์ ํŠธ - ํ›„๊ธฐ

์˜ค๋Š˜์€ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งˆ๊ฐํ•œ ๋’ค, ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ ํ›„๊ธฐ๋ฅผ ์ž‘์„ฑํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.  ๊ณ ๋ คํ–ˆ๋˜ ๋ถ€๋ถ„์ด๋ฒˆ ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ ์ „, ๊ฐ€์žฅ ๋น„์ค‘์„ ๋‘” ๊ฒƒ์€ ์„ค๊ณ„์˜€์Šต๋‹ˆ๋‹ค.API ๋ช…์„ธ์„œ์™€ ERD๋ฅผ ์ž‘์„ฑํ•˜๋ฉฐ ์–ด๋–ค ์‹์œผ๋กœ ์„œ๋น„์Šค๊ฐ€ ๋™์ž‘ํ• ์ง€, ์–ด๋–ค API๊ฐ€ ํ•„์š”ํ• ์ง€ ๊ณ ๋ฏผ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋งค๋ฒˆ ๋‹ค๋ฅธ ํŠœํ„ฐ๋‹˜๋“ค๊ป˜ ์ฐพ์•„๊ฐ€๋ฉฐ ๋ช…์„ธ์„œ์™€ ERD ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›์•˜๊ณ  ํŠœํ„ฐ๋‹˜๋“ค๋งˆ๋‹ค ๊ฐœ๋ฐœ ์Šคํƒ€์ผ์— ์ฐจ์ด๊ฐ€ ์žˆ์œผ์‹œ๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์–‘ํ•œ ์‹œ๊ฐ์—์„œ ์˜๊ฒฌ์„ ๋ฐ›์•„๋ณผ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.๊ฐ€์žฅ ์ ํ•ฉํ•˜๊ฒŒ ๊ตฌํ˜„ํ•  ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ผ๊นŒ? ์ƒ๊ฐ์„ ๋งŽ์ด ํ–ˆ๋˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ฐฐ์šด ์ ๋งค๋ฒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•  ๋•Œ๋งˆ๋‹ค ๋Š๋ผ์ง€๋งŒ '์ด๊ฒŒ ๋˜๋‚˜' ์‹ถ๋‹ค๊ฐ€๋„, ์ฐจ๊ทผ์ฐจ๊ทผ ํƒœ์Šคํฌ๋ฅผ ๋ฐŸ์•„๊ฐ€๋ฉฐ ์ง„ํ–‰์ด ๋  ๋•Œ๋งˆ๋‹ค ๋งŽ์ด ๋ฐฐ์›Œ๊ฐ€๋Š” ์ค‘์ž…๋‹ˆ๋‹ค.  1. ์ดˆ๊ธฐ ์„ค๊ณ„๋Š” ์ค‘์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ž˜ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค. - ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ ์ดˆ๊ธฐ ์„ค..

Web 2024.07.11

๊ณต์—ฐ ์˜ˆ๋งค ํ”„๋กœ์ ํŠธ - TroubleShooting : ๊ธฐ์ค€ ์‹œ๊ฐ„, ๋ฒ„์ „ ์ด์Šˆ

์˜ค๋Š˜์€ ๊ณต์—ฐ ์˜ˆ๋งค ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉฐ ๋ฐœ์ƒํ•œ ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ… ๋‚ด์šฉ์„ ์ฒจ๋ถ€ํ•ฉ๋‹ˆ๋‹ค. 3. UTC, KST ๊ธฐ์ค€ ์‹œ๊ฐ„ ๋”๋ณด๊ธฐ1. ๊ฐœ์š”ํ”„๋กœ์ ํŠธ ๊ธฐ๊ฐ„์ด ๋๋‚˜ ๋ฐฐํฌ๋ฅผ ๋งˆ์ณค์Šต๋‹ˆ๋‹ค. ๋ฐฐํฌ๋œ ์„œ๋ฒ„์—์„œ API ํ…Œ์ŠคํŠธ๋ฅผ ํ•ด๋ณด๊ธฐ๋กœ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ๊ณต์—ฐ ์˜ˆ๋งค์™€ ๊ด€๋ จ๋œ ํ‹ฐ์ผ“ํŒ… ์›น์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.ํ•ด๋‹น ์„œ๋น„์Šค๋ฅผ ํ…Œ์ŠคํŠธ ์ค‘ ๋ฐœ์ƒํ•œ ์—๋Ÿฌ์— ๊ด€ํ•ด ๋‹ค๋ค„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.2. Trouble Shooting2.1 ๋ฐฐ๊ฒฝ๋ฐฐํฌ๋œ ์„œ๋น„์Šค๋ฅผ Insomnia๋กœ ํ…Œ์ŠคํŠธ ์ค‘์ด์˜€์Šต๋‹ˆ๋‹ค.๊ฐ๊ฐ์˜ API๋ฅผ ํ˜ธ์ถœํ•˜๋ฉฐ ์ •์ƒ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.2.2 ๋ฐœ๋‹จํŠน์ • API๋“ค๋งŒ ์ž‘๋™์ด ์•ˆ๋˜๋Š” ๊ฒฝ์šฐ๋ฅผ ๋ฐœ๊ฒฌํ•ฉ๋‹ˆ๋‹ค.๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€์˜ ์—ฐ๋™์— ๋ฌธ์ œ๋Š” ์—†์—ˆ๊ณ  ํ•ด๋‹น API๊ฐ€ ๋กœ์ปฌ์—์„œ๋Š” ์ •์ƒ ์ž‘๋™ํ•˜์˜€์Šต๋‹ˆ๋‹ค.ํ„ฐ๋ฏธ๋„์„ ํ™•์ธํ•˜๋‹ˆ ๊ฐ’์ด NULL๋กœ ๋ฐ˜ํ™˜๋˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.2.3 ์ „๊ฐœ๊ฐ™์€ ์ฝ”๋“œ..

Web 2024.07.10

๊ณต์—ฐ ์˜ˆ๋งค ํ”„๋กœ์ ํŠธ - TroubleShooting : ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ, ์—ฐ๊ฐ„ ๊ด€๊ณ„

์˜ค๋Š˜์€ ๊ณต์—ฐ ์˜ˆ๋งค ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉฐ ๋ฐœ์ƒํ•œ ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ… ๋‚ด์šฉ์„ ์ฒจ๋ถ€ํ•ฉ๋‹ˆ๋‹ค. 1. ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ ๊ตฌํ˜„ ์ค‘ Join๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๊ฒ€์ƒ‰ํ•˜๋ ค๋ฉด ?๋”๋ณด๊ธฐ1. ๊ฐœ์š”๊ณต์—ฐ ํ…Œ์ด๋ธ”์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.๊ตฌํ˜„๋  ๊ธฐ๋Šฅ์œผ๋กœ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ ์ค‘ ์นดํ…Œ๊ณ ๋ฆฌ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฒ€์ƒ‰์„ ์ถ”๊ฐ€ํ•˜๊ณ ์ž ํ•˜์˜€์Šต๋‹ˆ๋‹ค.๊ทธ ๊ณผ์ •์—์„œ ๋ฌธ๋ฒ•์ ์ธ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜์˜€๊ณ  ํ•ด๊ฒฐํ•œ ๋ฐฉ๋ฒ•์„ ๋‹ค๋ค„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.2. Trouble Shooting2.1 ๋ฐฐ๊ฒฝ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ ERD์ž…๋‹ˆ๋‹ค. category ํ…Œ์ด๋ธ”๊ณผ shows ํ…Œ์ด๋ธ”์€ 1:N ๊ด€๊ณ„๋กœ์„œ, shows ํ…Œ์ด๋ธ”์ด category ํ…Œ์ด๋ธ”๋กœ ๊ทธ๋ฃนํ™” ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.๊ณต์—ฐ ๊ฒ€์ƒ‰ API์˜ ๋ช…์„ธ์„œ์ž…๋‹ˆ๋‹ค.๊ฒ€์ƒ‰ ๊ธฐ์ค€์€ Query Param์„ ์‚ฌ์šฉํ•˜์—ฌ ์ „๋‹ฌ๋ฐ›๊ณ ,์ „์ฒด ๋ชฉ๋ก ๊ฒ€์ƒ‰์ œ๋ชฉ ๊ธฐ๋ฐ˜ ๊ฒ€์ƒ‰์นดํ…Œ๊ณ ๋ฆฌ ๊ธฐ๋ฐ˜ ๊ฒ€์ƒ‰์ œ๋ชฉ + ์นดํ…Œ๊ณ ๋ฆฌ ๊ธฐ๋ฐ˜ ๊ฒ€์ƒ‰4๊ฐ€์ง€ ์กฐ๊ฑด์œผ๋กœ ๊ณต..

Web 2024.07.08