TIL ( 3์ฐจ ๋ชจ์˜๋ฉด์ ‘ )

2024. 7. 31. 23:43ใ†TIL

๐Ÿ’ก 3์ฐจ ๋ชจ์˜๋ฉด์ ‘ ์งˆ๋ฌธ๊ณผ ๋‹ต๋ณ€ & ํ”ผ๋“œ๋ฐฑ

 

 

์ฒซ ๋ฒˆ์งธ ์งˆ๋ฌธ

 

• Async/Await & Promise ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜๊ณ  ์ฐจ์ด๋ฅผ ์•Œ๋ ค์ฃผ์„ธ์š”.

 

- Promise๋Š” ๋น„๋™๊ธฐ ์ž‘์—…์˜ ์™„๋ฃŒ ๋˜๋Š” ์‹คํŒจ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐ์ฒด๋กœ ๋น„๋™๊ธฐ ์ž‘์—…์„ ์‰ฝ๊ฒŒ ์ฒ˜๋ฆฌ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์ž…๋˜์—ˆ์Šต๋‹ˆ๋‹ค. promise ๊ฐ์ฒด๋Š” pending, fulfilled, rejected 3๊ฐ€์ง€ ์ƒํƒœ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, ์ž‘์—…์ด ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒํ–ˆ์„ ๊ฒฝ์šฐ ์‹คํ–‰ํ•  ์ฝœ๋ฐฑ์„ ์ •์˜ํ•˜๋Š” then๊ณผ ์‹คํŒจํ–ˆ์„๋•Œ ์‹คํ–‰ํ•  ์ฝœ๋ฐฑ์„ ์ •์˜ํ•˜๋Š” catch, ์„ฑ๊ณต์—ฌ๋ถ€์™€ ์ƒ๊ด€์—†์ด ์‹คํ–‰ํ•  ์ฝœ๋ฐฑ์„ ์ •์˜ํ•˜๋Š” finally ์„ธ๊ฐ€์ง€ ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ๋น„๋™๊ธฐ์ž‘์—…์„ ์ˆœ์ฐจ์ ์œผ๋กœ ์‹คํ–‰์‹œํ‚ฌ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

- Async/Await์€ ๋น„๋™๊ธฐ ์ž‘์—…์„ ์‰ฝ๊ฒŒ ์ž‘์„ฑํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋ฌธ๋ฒ•์œผ๋กœ, Promise๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค.
ํ•จ์ˆ˜์•ž์— async ํ‚ค์›Œ๋“œ๋ฅผ ๋ถ™์ด๋ฉด ํ•ด๋‹น ํ•จ์ˆ˜๋Š” ํ•ญ์ƒ promise๋ฅผ  ๋ฐ˜ํ™˜ํ•˜๋ฉฐ, Await์€ Async ํ•จ์ˆ˜ ์•ˆ์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ Promise๊ฐ€ ํ•ด๊ฒฐ๋  ๋•Œ๊นŒ์ง€ ํ•จ์ˆ˜ ์‹คํ–‰์„ ์ผ์‹œ ์ค‘์ง€ํ•˜๋ฉฐ, ํ•ด๊ฒฐ๋  ๊ฒฝ์šฐ ๊ฐ’์„  ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

 

- Async/Await ๊ณผ Promise ์˜ ๋น„๊ต - ์–ด๋–ค ๋ถ€๋ถ„์„ ๋น„๊ตํ•ด์•ผํ• ์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

- ํ”ผ๋“œ๋ฐฑ : Promise๋ฅผ ์„ค๋ช…์„ ์ž˜ํ•˜์˜€์ง€๋งŒ ์กฐ๊ธˆ ๋” ๊ฐ„๋žตํžˆ ์„ค๋ช…ํ•˜๊ณ  ๋ฉ”์„œ๋“œ๋‚˜ ์ƒํƒœ์— ๋Œ€ํ•ด ๋ฉด์ ‘๊ด€์ด ๋ฌผ์–ด๋ณผ ๊ฒฝ์šฐ ๋Œ€๋‹ตํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

( pending์€ ์ž‘์—…์ด ์ง„ํ–‰ ์ค‘์ž„์„ ์˜๋ฏธํ•˜๊ณ , fulfilled์€ ์ž‘์—…์ด ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒ๋˜์—ˆ์Œ์„ ์˜๋ฏธํ•˜๋ฉฐ ์ž‘์—…์˜ ๊ฒฐ๊ณผ ๋˜ํ•œ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ๋ฐ˜๋Œ€๋กœ rejected๋Š” ์ž‘์—…์ด ์‹คํŒจํ–ˆ์Œ์„ ์˜๋ฏธํ•œ๋‹ค. ์ด๋–ผ,  ์ž‘์—… ์‹คํŒจ์˜ ์ด์œ ๋ฅผ ํ•จ๊ป˜ ๊ฐ€์ง„๋‹ค.)

 

๋‘ ๋ฒˆ์งธ ์งˆ๋ฌธ

 

• JOIN์—์„œ INNER JOIN, OUTER, LEFT, RIGHT JOIN์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

 

- JOIN์€ ๋‘๊ฐœ์˜ ํ…Œ์ด๋ธ”์„ ์—ฎ์–ด ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•  ๊ฒฝ์šฐ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. inner join์€ ๋‘ ํ…Œ์ด๋ธ” ๊ฐ„์˜ ์ผ์น˜ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋งŒ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. outer join์€ ๋‘ ํ…Œ์ด๋ธ” ๋ชจ๋‘ ์ผ์น˜ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ๋‚ด๋ณด๋‚ด๋ฉฐ ๋ฐ์ดํ„ฐ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ์—” null๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚ด๋ณด๋ƒ…๋‹ˆ๋‹ค.
left join์˜ ๊ฒฝ์šฐ ์™ผ์ชฝ ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ์™€ ์˜ค๋ฅธ์ชฝ ํ…Œ์ด๋ธ”์˜ ์ผ์น˜ํ•˜๋Š” ํ…Œ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฉฐ, right join์€ left join ๋ฐ˜๋Œ€๋กœ ์˜ค๋ฅธ์ชฝ ํ…Œ์ด๋ธ”์ด ๊ธฐ์ค€์ด ๋˜์–ด ๋ฐ์ดํ„ฐ๊ฐ€ ๋‚ด๋ณด๋‚ด์ง‘๋‹ˆ๋‹ค.

 

- ์ถ”๊ฐ€์งˆ๋ฌธ : left join์˜ ๊ฒฝ์šฐ ์™ผ์ชฝํ…Œ์ด๋ธ”์—” user1์ด๋ผ๋Š” user์ •๋ณด ํ•˜๋‚˜๊ฐ€ ๋“ค์–ด๊ฐ€์žˆ๊ณ  ์˜ค๋ฅธ์ชฝ์—๋Š” ๊ฒŒ์‹œ๊ธ€ ํ…Œ์ด๋ธ”์ด ์žˆ๋Š”๋ฐ ์ด๋•Œ ๊ฒŒ์‹œ๊ธ€ ํ…Œ์ด๋ธ”์—๋Š” 10๊ฐœ์˜ ๊ฒŒ์‹œ๊ธ€์ด ๋“ค์–ด๊ฐ€์žˆ์œผ๋ฉฐ, 5๊ฐœ์˜ ๊ฒŒ์‹œ๊ธ€์ด user1์ด ์ž‘์„ฑํ•œ ๊ฒŒ์‹œ๊ธ€์ด๋‹ค.

left join์„ ํ–ˆ์„ ๊ฒฝ์šฐ ๋‚˜์˜ค๋Š” ๋ฐ์ดํ„ฐ์™€ right join์„ ํ–ˆ์„ ๊ฒฝ์šฐ ๋‚˜์˜ค๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋งํ•ด์ฃผ์„ธ์š”.

=> ๋‹ต๋ณ€ : left joinํ–ˆ์„ ๊ฒฝ์šฐ user1์ด ์ž‘์„ฑํ•œ ๊ฒŒ์‹œ๊ธ€ ๋ฐ์ดํ„ฐ 5๊ฐœ๊ฐ€ ๋‚˜์˜ค๋ฉฐ, right join์„ ํ–ˆ์„ ๊ฒฝ์šฐ์—๋Š” ๋ชจ๋“  ๊ฒŒ์‹œ๊ธ€ 10๊ฐœ๊ฐ€ ๋‚˜์˜ค๋ฉฐ user1์ด ์ž‘์„ฑํ•œ ๊ฒŒ์‹œ๊ธ€์ด ์•„๋‹Œ ๊ฒฝ์šฐ ์ž‘์„ฑ์ž๋Š” null๋กœ ๋‚˜์˜ต๋‹ˆ๋‹ค.

 

- ํ”ผ๋“œ๋ฐฑ : X

 

์„ธ ๋ฒˆ์งธ ์งˆ๋ฌธ

 

• ํ•ด์‹œํ…Œ์ด๋ธ”๊ณผ ์ด์ง„ ๊ฒ€์ƒ‰ํŠธ๋ฆฌ๋ฅผ ์„ค๋ช…ํ•˜๊ณ  ์žฅ๋‹จ์ ์„ ์•Œ๋ ค์ฃผ์„ธ์š”.

 

- ํ•ด์‹œํ…Œ์ด๋ธ”์€ ๋ฐ์ดํ„ฐ๋ฅผ ํ‚ค-๊ฐ’ ์œผ๋กœ ์ €์žฅํ•˜๋Š” ์ž๋ฃŒ ๊ตฌ์กฐ๋กœ ํ•ด์‹œํ•จ์ˆ˜๋ฅผ  ์‚ฌ์šฉํ•˜์—ฌ ํ‚ค๋ฅผ  ํ•ด์‹œ ๊ฐ’์œผ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๋ฐฐ์—ด ์ธ๋ฑ์Šค์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ๊ฒ€์ƒ‰ ์†๋„๊ฐ€ ๋น ๋ฅด๊ณ  ์‚ฌ์šฉ์ด ๊ฐ„ํŽธํ•˜๋‹ค๋Š” ์žฅ์ ์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค. 
๋‹จ์ ์œผ๋กœ๋Š” ์ •๋ ฌ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋ฉฐ, ์ดˆ๊ธฐ ๋ฐ์ดํ„ฐ๋ฅผ 100์œผ๋กœ ์žก์•„๋’€๋Š”๋ฐ 100์ด ๋„˜๊ฒŒ ๋œ๋‹ค๋ฉด ์ค‘๋ณต ๊ฐ’์ด ์ €์žฅ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ค‘๋ณต์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ค˜์•ผํ•˜๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

- ์ด์ง„ ๊ฒ€์ƒ‰ ํŠธ๋ฆฌ๋Š” ๊ฐ ๋…ธ๋“œ๊ฐ€ ์ตœ๋Œ€ ๋‘ ๊ฐœ์˜ ์ž์‹์„ ๊ฐ€์ง€๋ฉฐ, ์™ผ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ๋Š” ๋…ธ๋“œ๋ณด๋‹ค ์ž‘์€ ๊ฐ’์„, ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ๋Š” ํฐ๊ฐ’์„ ๊ฐ€์ง€๋Š” ํŠธ๋ฆฌ ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. 
์ด์ง„ ๊ฒ€์ƒ‰ ํŠธ๋ฆฌ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ •๋ ฌํ•˜์—ฌ ์œ ์ง€ํ•˜๊ณ  ๋ฒ”์œ„ ๊ฒ€์ƒ‰์— ์šฉ์ดํ•˜๋‹ค๋Š” ์žฅ์ ์„ ๊ฐ€์ง€์ง€๋งŒ , ์ตœ์•ฝ์˜ ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ๊ฐ€ ํ•œ์ชฝ์œผ๋กœ ์น˜์šฐ์ณ ๊ท ํ˜•์ด ๋งž์ง€์•Š์•„ ๊ฒ€์ƒ‰ ์†๋„๊ฐ€ ๋Š๋ ค์ง€๋ฉฐ, ๊ตฌํ˜„์ด ๋ณต์žกํ•˜๋‹ค๋Š” ๋‹จ์ ์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค.

 

- ์ถ”๊ฐ€์งˆ๋ฌธ : ํ•ด์‹œํ…Œ์ด๋ธ”์ด ๋น ๋ฅธ ์ด์œ ์™€ ํ•ด์‹œ ์ถฉ๋Œ์ด ์ผ์–ด๋‚˜๋Š” ๊ฒฝ์šฐ ์–ด๋–ป๊ฒŒ ํ•˜๋‚˜์š”.

=> ๋‹ต๋ณ€..X..

 

- ํ”ผ๋“œ๋ฐฑ : ์ถ”๊ฐ€ ์˜ˆ์ •