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..
- ํผ๋๋ฐฑ : ์ถ๊ฐ ์์
'TIL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํธ๋ฌ๋ธ ์ํ (์ค์ผ์ค ์ฝ๋๊ด๋ จ) (0) | 2024.08.02 |
---|---|
TIL ( ์คํ๊ณผ ํ ) (0) | 2024.08.01 |
TIL ( nodejs๋ ์ฑ๊ธ์ค๋ ๋์ธ๊ฐ์ ๋ํ์ฌ ) (0) | 2024.07.30 |
TIL ( ํด์ํ ์ด๋ธ๊ณผ ์ด์ง๊ฒ์ํธ๋ฆฌ ) (0) | 2024.07.29 |
TIL ( ๊น์ ๋ณต์ฌ์ ์์ ๋ณต์ฌ & jwt ) (0) | 2024.07.26 |