2024/07 11

์ž๋ฃŒ๊ตฌ์กฐ : 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

๊ณต์—ฐ ์˜ˆ๋งค ํ”„๋กœ์ ํŠธ - ํ•ด๋ณด๊ณ  ๊นจ๋‹ซ๊ธฐ..

์˜ค๋Š˜์€ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉฐ ๊ณ ๋ฏผํ•˜๊ณ  ๊ตฌํ˜„ํ•ด๋ณด๋˜ ์ค‘ ๋น„ํšจ์œจ์ ์œผ๋กœ ๋Š๊ปด์กŒ๋˜ ํ”„๋กœ์„ธ์Šค์— ๊ด€ํ•ด ์ž‘์„ฑํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.  ERD  ํ˜„์žฌ ERD์—์„œ๋Š” ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ๋”ฐ๋กœ ๊ณต์—ฐ ํ…Œ์ด๋ธ”์— ์ƒ์œ„์— ๋ฐฐ์น˜ํ•˜์—ฌ ๊ด€๋ฆฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณต์—ฐ ํ…Œ์ด๋ธ” ์•ˆ์— ์ปฌ๋Ÿผ์œผ๋กœ ์ž‘์„ฑํ•˜์ง€ ์•Š๊ณ  ๋”ฐ๋กœ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“  ์ด์œ ๋Š” ๊ณต์—ฐ ํ…Œ์ด๋ธ” ์ž์ฒด๋ฅผ ๊ทธ๋ฃนํ™” ์‹œ์ผœ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•จ์ด์˜€์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉฐ ๊ณต์—ฐ์˜ ์นดํ…Œ๊ณ ๋ฆฌ๋Š” ๋ณ€ํ™”๋‚˜ ์‚ญ์ œ๊ฐ€ ๋นˆ๋ฒˆํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์œ ์ง€๋ณด์ˆ˜์„ฑ์ด ๋†’์„ ํ•„์š”๊ฐ€ ์—†๋‹ค๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.๊ฒฐ๊ตญ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‚ญ๋น„๊ฐ€ ์ƒ๊ธด ์ƒํƒœ์ž…๋‹ˆ๋‹ค. 1. ์นดํ…Œ๊ณ ๋ฆฌ ์ƒ์„ฑ์„ ์œ„ํ•œ ์ถ”๊ฐ€ API 2. ์กฐํšŒ ์‹œ Join์„ ํ•œ๋ฒˆ ๋” ํ•ด์•ผํ•œ๋‹ค.3. ๋ช…์‹œ์ ์œผ๋กœ ์ดํ•ดํ•˜๊ธฐ ๋ณต์žกํ•ด์กŒ๋‹ค.  ๋งˆ๋ฌด๋ฆฌ ์‹ค์ œ ๊ฐœ๋ฐœ ์ „๊นŒ์ง€ ํšจ์œจ์ ์ธ ์„ค๊ณ„๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ ์ง์ ‘ ํ•ด๋ณด๋‹ˆ ์–ด๋–ค ๋ฌธ์ œ๊ฐ€..

Web 2024.07.06

NestJS Interceptor

์˜ค๋Š˜์€ NestJs Interceptor์— ๋Œ€ํ•˜์—ฌ ๊ณต๋ถ€ํ–ˆ์Šต๋‹ˆ๋‹ค. Request LifeCycle1. Incoming request2. Globally bound middleware, Module bound middleware3. Global guards, Controller guards, Route guards4. Global interceptors (pre-controller), Controller interceptors (pre-controller), Route interceptors (pre-controller)5. Global pipes, Controller pipes, Route pipes, Route parameter pipes6. Controller (method handler)7. Serv..

Web 2024.07.05

๊ณต์—ฐ ์˜ˆ๋งค ํ”„๋กœ์ ํŠธ - ERD ์ˆ˜์ •(3), API ๋ช…์„ธ์„œ ์ˆ˜์ •

์˜ค๋Š˜์€ ERD์™€ API ๋ช…์„ธ์„œ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ์ˆ˜์ •ํ•œ ๋ถ€๋ถ„์„ ์ ์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.  ERD1. ์ž”์—ฌ ์ขŒ์„ -> ํŒ๋งค ์ขŒ์„ ๋ณ€๊ฒฝ - ์ž”์—ฌ ์ขŒ์„์œผ๋กœ ๋‘๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ–ˆ์„ ์‹œ ์ขŒ์„์„ ํฌํ•จํ•˜๋Š” ํ…Œ์ด๋ธ” ๊ณต์—ฐ ์ผ์ •์ด ์ถ”๊ฐ€๋œ๋‹ค๋ฉด ์ž”์—ฌ ์ขŒ์„์„ ์ด ๊ฐœ์ˆ˜๋งŒํผ ๋‹ค์‹œ ์ถ”๊ฐ€ํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ถ”๊ฐ€ ํ•ด์ค˜์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ์‹œ๋กœ๋Š” 3๊ฐœ๋งŒ ์ถ”๊ฐ€ํ–ˆ์œผ๋‚˜ ๋งŒ์•ฝ 100๊ฐœ ์ •๋„์˜ ์ขŒ์„ ์ •๋ณด๋ฅผ ๊ฐ–๊ฒŒ ๋œ๋‹ค๋ฉด ๋งค๋ฒˆ ์ผ์ •์„ ์ถ”๊ฐ€ํ•  ๋•Œ๋งˆ๋‹ค ๊ฝค ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋งค๋ฒˆ ์ถ”๊ฐ€ ํ•ด์ค˜์•ผ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. - ํŒ๋งค ์ขŒ์„์œผ๋กœ ๋ณ€๊ฒฝํ•จ์œผ๋กœ์จ ํŒ๋งค๊ฐ€ ๋˜์—ˆ์„ ๋•Œ๋งŒ ํ…Œ์ด๋ธ”์ด ์ถ”๊ฐ€๋˜๋„๋ก ERD ์„ค๊ณ„๋ฅผ ๋ณ€๊ฒฝํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ด๋กœ์จ ๋งค๋ฒˆ ์ขŒ์„ ์ •๋ณด ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•ด ์ค„ ํ•„์š”๊ฐ€ ์—†์–ด์ง€๊ณ  ๋ถˆํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ์˜ ์–‘์„ ์ค„์ผ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. 2. ํ‹ฐ์ผ“์ด ๊ฐ–๊ณ  ์žˆ๋˜ ์ค‘๋ณต๋œ ์ปฌ๋Ÿผ ์ œ๊ฑฐ - ์ด๊ฒƒ์€ ์„ ํƒ์ ์ธ..

Web 2024.07.04

DTO ๊ฐœ๋… ์žก๊ธฐ + ๊ณต์—ฐ ์˜ˆ๋งค ์‚ฌ์ดํŠธ ํ”„๋กœ์ ํŠธ - ERD ์ˆ˜์ •

์˜ค๋Š˜์€Nest.js ๊ฐ•์˜๋ฅผ ์ˆ˜๊ฐ•ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ”„๋กœ์ ํŠธ์— ๊ด€ํ•˜์—ฌ ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ์žˆ์–ด ERD๋ฅผ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.  DTO๋ž€ ? ๋ฐ์ดํ„ฐ ์ „์†ก ๊ฐ์ฒด๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ ๊ฐ„ ๋˜๋Š” ๊ณ„์ธต ๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ชจ๋ธ์ด๋‚˜ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ๋ชจ๋ธ๊ณผ๋Š” ๋ณ„๋„๋กœ ๋ฐ์ดํ„ฐ์˜ ๊ตฌ์กฐ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ์˜ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ, ๋ฐ์ดํ„ฐ ๋ณ€ํ™˜, ๋ฐ์ดํ„ฐ ๊ตํ™˜์˜ ๋‹จ์ˆœํ™” ๋“ฑ ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ์•„์„œ ํ•œ๋ฒˆ์— ์ „๋‹ฌํ•˜๋ฏ€๋กœ ํ˜ธ์ถœ ํšŸ์ˆ˜๋ฅผ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋‚ฎ์ถœ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. DTO๋ฅผ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ ์–ป๋Š” ์žฅ์ ์ฒซ ๋ฒˆ์งธ, Dto๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์œ ๋‹› ํ…Œ์ŠคํŠธ ํ•  ๋•Œ ๊ต‰์žฅํžˆ ์‰ฌ์›Œ์ง‘๋‹ˆ๋‹ค. Service ๋ ˆ์ด์–ด ์—์„œ ์œ ๋‹›ํ…Œ์ŠคํŠธ๋ฅผ ํ•  ๋•Œ, Entity๋ฅผ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•ด๋ฒ„๋ฆฌ๋ฉด Service ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๊ฒŒ ..

Web 2024.07.02