Skip to content

TypeORM โ€ Lazy Loading

์ตœ๊ฒ€๊ธฐ edited this page Dec 14, 2023 · 1 revision

Lazy Loading์ด๋ž€?

TypeORM์—์„œ ๊ด€๊ณ„๋ฅผ ์ •์˜ํ•  ๋•Œ, ๊ด€๊ณ„ ํ•„๋“œ์— Promise ํƒ€์ž…์„ ์‚ฌ์šฉํ•˜๋ฉด Lazy Loading์„ ํ™œ์„ฑํ™” ํ•  ์ˆ˜ ์žˆ๋‹ค.

  @OneToMany(() => Story, (story) => story.user, {
    cascade: true,
  })
  stories: Promise<Story[]>;

Lazy Loading์ด ํ™œ์„ฑํ™”๋œ ํ•„๋“œ์— ์ ‘๊ทผํ•  ๋•Œ, TypeORM์€ ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ DB์—์„œ ๋กœ๋“œํ•˜๊ฒŒ๋œ๋‹ค.

Lazy Loading์˜ ์žฅ์ 

Lazy Loading์„ ์ ์šฉํ•˜๋ฉด ํ•„์š”ํ•˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๋“œํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๊ฐ€ํ•ด์ง€๋Š” ๋ถ€ํ•˜๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์œ ์ง€ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ์ตœ์ ํ™” ํ•  ์ˆ˜ ์žˆ๋‹ค.

Lazy Loading์˜ ๋‹จ์ 

Lazy Loading์˜ ๋Œ€ํ‘œ์ ์ธ ๋‹จ์ ์€ N+1 ๋ฌธ์ œ์ด๋‹ค.
๊ฐ ์—”ํ‹ฐํ‹ฐ์— ๋Œ€ํ•ด ๋ณ„๋„์˜ ์ฟผ๋ฆฌ๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒŒ ๋˜๋Š”๋ฐ, ์ด๋กœ ์ธํ•ด ๋งŽ์€ ์ˆ˜์˜ ์—”ํ‹ฐํ‹ฐ์— ์ ‘๊ทผํ•˜๋Š” ๊ฒฝ์šฐ ์„ฑ๋Šฅ ์ €ํ•˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. image

์„ฑ๋Šฅ ๋น„๊ต

TypeORM์—์„œ Lazy Loading ์„ ์ ์šฉํ•˜๊ธฐ ์ „, ์‹ค์ œ๋กœ eager loading๊ณผ lazy loading์˜ ์„ฑ๋Šฅ์„ ๋น„๊ตํ•ด๋ณด์•˜๋‹ค.

์‹œ๋‚˜๋ฆฌ์˜ค๋Š” ์Šคํ† ๋ฆฌ 3๊ฐœ๋ฅผ ์ž‘์„ฑํ•œ ์œ ์ €์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰์„ ํ†ตํ•ด ๊ฐ€์ ธ์˜ค๋Š” ์ƒํ™ฉ์œผ๋กœ ์„ค์ •ํ•˜์˜€๋‹ค. image

์ธก์ • ๊ฒฐ๊ณผ eager loading์˜ ๊ฒฝ์šฐ 25.034ms, lazy loading์˜ ๊ฒฝ์šฐ 17.927ms์˜ ์‹œ๊ฐ„์ด ์†Œ์š”๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

์ด ์ฐจ์ด๋Š” ์œ ์ €์˜ ์ˆ˜๊ฐ€ ๋Š˜์–ด๋‚ ์ˆ˜๋ก, ์œ ์ €์˜ ์Šคํ† ๋ฆฌ ์ƒ์„ฑ ๊ฐœ์ˆ˜๊ฐ€ ๋Š˜์–ด๋‚ ์ˆ˜๋ก ๋งค์šฐ ์ปค์งˆ๊ฒƒ์ด๋ผ ์˜ˆ์ธก๋˜์—ˆ๊ณ , ๋”ฐ๋ผ์„œ ํ”„๋กœ๊ทธ๋žจ์˜ ํšจ์œจ์„ฑ์„ ์œ„ํ•ด lazy loading์„ ์ ์šฉํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•˜์˜€๋‹ค.

๐Ÿ”ฅ HeatPick

๐Ÿ”จ ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ

๐Ÿซ  ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…

1์ฃผ์ฐจ

2์ฃผ์ฐจ

3์ฃผ์ฐจ

4์ฃผ์ฐจ

5์ฃผ์ฐจ

๐Ÿค” ๊ธฐํš ํšŒ์˜๋ก

๐Ÿคท๐Ÿป ์˜์‚ฌ ๊ฒฐ์ •๋ก

๐ŸŽ iOS

๐ŸŒ Backend

๐ŸŽฏ ์ฃผ์ฐจ๋ณ„ ๋ชฉํ‘œ

๐Ÿƒ๐Ÿป ๋ฐ์ผ๋ฆฌ ์Šคํฌ๋Ÿผ

1์ฃผ์ฐจ

2์ฃผ์ฐจ

3์ฃผ์ฐจ

4์ฃผ์ฐจ

5์ฃผ์ฐจ

6์ฃผ์ฐจ

๐Ÿ™‡๐Ÿป ๋ฉ˜ํ† ๋ง ์ผ์ง€

๐Ÿ‘€ ํ”„๋กœ์ ํŠธ ํ˜„ํ™ฉ ๊ณต์œ 

๐Ÿ™‹๐Ÿป ํŒ€ ํšŒ๊ณ 

๐Ÿ’ช ๊ฐœ์ธ ํšŒ๊ณ 

1์ฃผ์ฐจ

2์ฃผ์ฐจ

3์ฃผ์ฐจ

4์ฃผ์ฐจ

5์ฃผ์ฐจ

๐Ÿ“‡ ํ…œํ”Œ๋ฆฟ

Clone this wiki locally