TypeORM

์ •์Šน์›ยท2023๋…„ 4์›” 12์ผ
0
post-thumbnail
post-custom-banner

๐Ÿ“’ ๋ชฉ์ฐจ

๐Ÿ“Œ TypeORM์ด๋ž€?
๐Ÿ“Œ Active Record Pattern
๐Ÿ“Œ Data Mapper Pattern
๐Ÿ“Œ ์ฐธ์กฐ

๐Ÿ“Œ TypeORM์ด๋ž€?

TypeORM์— ๋Œ€ํ•ด ์•Œ๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋จผ์ €, ORM์ด ๋ฌด์—‡์ธ์ง€ ์•Œ์•„์•ผ ํ•œ๋‹ค.

โœ… ORM

ORM์€ Object Relational Mapping์˜ ์ค„์ž„๋ง๋กœ ๊ฐ„๋‹จํžˆ ๋งํ•˜์ž๋ฉด ๊ฐ์ฒด์™€ ๊ด€๊ณ„๋ฅผ ๋งคํ•‘ํ•ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.

์—ฌ๊ธฐ์„œ ๋งคํ•‘์ด๋ž€ ๋ฌด์—‡์ผ๊นŒ?

์˜ˆ๋ฅผ๋“ค์–ด ๊ฐ์ฒด ์ง€ํ–ฅ ์–ธ์–ด์—์„œ ๋ชจ๋ธ์„ ์ •์˜ํ•  ๋•Œ๋Š”, Class๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ๋Š” Table์„ ์‚ฌ์šฉํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ ๋งคํ•‘์ด๋ž€ class์™€ table์„ ์—ฐ๊ฒฐ์‹œํ‚ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.

๊ฒฐ๊ณผ์ ์œผ๋กœ ์ง์ ‘ SQL๋ฌธ์„ ์ž‘์„ฑํ•˜์ง€ ์•Š๊ณ  ๊ฐ์ฒด์ง€ํ–ฅ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด TypeORM์€ ๋ฌด์—‡์ผ๊นŒ?

TypeORM์˜ ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์—๋ฅผ ์ฐพ์•„๋ณด๊ฒŒ ๋˜๋ฉด, TypeORM์— ๋Œ€ํ•˜์—ฌ "TypeORM์€ Node.js, Browser, React Native ํ”Œ๋žซํผ ๋“ฑ์—์„œ JS,TS์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ORM์ด๋ฉฐ, ์†Œ๊ทœ๋ชจ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ถ€ํ„ฐ ๋Œ€๊ทœ๋ชจ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๋Š”๋ฐ ๋„์›€์ด ๋˜๋Š” ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•œ๋‹ค.

๋‹ค๋ฅธ ORM๊ณผ ๋‹ฌ๋ฆฌ ์•กํ‹ฐ๋ธŒ ๋ ˆ์ฝ”๋“œ ํŒจํ„ด๊ณผ ๋ฐ์ดํ„ฐ ๋งคํผ ํŒจํ„ด์„ ๋ชจ๋‘ ์ง€์›ํ•˜์—ฌ ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๋ฉฐ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ๊ฐ€๋Šฅํ•œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐ€์žฅ ์ƒ์‚ฐ์ ์ธ ๋ฐฉ๋ฒ•์œผ๋กœ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค."๋ผ๊ณ  ์„ค๋ช…ํ•˜๊ณ  ์žˆ๋‹ค.

์—ฌ๊ธฐ์„œ ์ฃผ๋ชฉํ•ด์•ผ ํ•˜๋Š” ๋ถ€๋ถ„์€ ์•กํ‹ฐ๋ธŒ ๋ ˆ์ฝ”๋“œ ํŒจํ„ด๊ณผ ๋ฐ์ดํ„ฐ ๋งคํผ ํŒจํ„ด์ด๋‹ค.

๐Ÿ“Œ Active Record Pattern

์•กํ‹ฐ๋ธŒ ๋ ˆ์ฝ”๋“œ ํŒจํ„ด์€ ๋ชจ๋ธ ์ž์ฒด ๋‚ด์—์„œ ๋ชจ๋“  ์ฟผ๋ฆฌ ๋ฉ”์„œ๋“œ๋ฅผ ์ •์˜ํ•˜๊ณ  ๋ชจ๋ธ ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์ƒ์„ฑ,์‚ญ์ œ,์กฐํšŒ,์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๋ฐฉ์‹์„ ์˜๋ฏธํ•œ๋‹ค.

๐Ÿ“Œ Data Mapper Pattern

๋ฐ์ดํ„ฐ ๋งคํผ ํŒจํ„ด์€ "๋ ˆํฌ์ง€ํ† ๋ฆฌ" ๋ผ๋Š” ๋ณ„๋„์˜ ํด๋ž˜์Šค์—์„œ ๋ชจ๋“  ์ฟผ๋ฆฌ ๋ฉ”์„œ๋“œ๋ฅผ ์ •์˜ํ•˜๊ณ  ์ด "๋ ˆํฌ์ง€ํ† ๋ฆฌ"๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์ƒ์„ฑ, ์‚ญ์ œ, ์กฐํšŒ, ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ“Œ ์ฐธ์กฐ

https://fomaios.tistory.com/entry/Nodejs-TypeORM%EC%9D%B4%EB%9E%80-feat-Typescript-ORM-Library

post-custom-banner

0๊ฐœ์˜ ๋Œ“๊ธ€