๐ TypeORM์ด๋?
๐ Active Record Pattern
๐ Data Mapper Pattern
๐ ์ฐธ์กฐ
TypeORM์ ๋ํด ์๊ธฐ ์ํด์๋ ๋จผ์ , ORM์ด ๋ฌด์์ธ์ง ์์์ผ ํ๋ค.
ORM์ Object Relational Mapping์ ์ค์๋ง๋ก ๊ฐ๋จํ ๋งํ์๋ฉด ๊ฐ์ฒด์ ๊ด๊ณ๋ฅผ ๋งคํํด์ฃผ๋ ๊ฒ์ด๋ค.
์ฌ๊ธฐ์ ๋งคํ์ด๋ ๋ฌด์์ผ๊น?
์๋ฅผ๋ค์ด ๊ฐ์ฒด ์งํฅ ์ธ์ด์์ ๋ชจ๋ธ์ ์ ์ํ ๋๋, Class๋ฅผ ์ฌ์ฉํ๊ณ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์๋ Table์ ์ฌ์ฉํ๋ค. ์ฌ๊ธฐ์ ๋งคํ์ด๋ class์ table์ ์ฐ๊ฒฐ์ํค๋ ๊ฒ์ ์๋ฏธํ๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก ์ง์ SQL๋ฌธ์ ์์ฑํ์ง ์๊ณ ๊ฐ์ฒด์งํฅ์ฝ๋๋ฅผ ์์ฑํ ์ ์๋๋ก ๋์์ฃผ๋ ๊ฒ์ด๋ค.
๊ทธ๋ ๋ค๋ฉด TypeORM์ ๋ฌด์์ผ๊น?
TypeORM์ ๊ณต์ ํํ์ด์ง์๋ฅผ ์ฐพ์๋ณด๊ฒ ๋๋ฉด, TypeORM์ ๋ํ์ฌ "TypeORM์ Node.js, Browser, React Native ํ๋ซํผ ๋ฑ์์ JS,TS์ ํจ๊ป ์ฌ์ฉํ ์ ์๋ ORM์ด๋ฉฐ, ์๊ท๋ชจ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ถํฐ ๋๊ท๋ชจ ์ํฐํ๋ผ์ด์ฆ ์ดํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๋๋ฐ ๋์์ด ๋๋ ์ถ๊ฐ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ๊ฒ์ ๋ชฉํ๋ก ํ๋ค.
๋ค๋ฅธ ORM๊ณผ ๋ฌ๋ฆฌ ์กํฐ๋ธ ๋ ์ฝ๋ ํจํด๊ณผ ๋ฐ์ดํฐ ๋งคํผ ํจํด์ ๋ชจ๋ ์ง์ํ์ฌ ํ์ฅ ๊ฐ๋ฅํ๋ฉฐ ์ ์ง๋ณด์๊ฐ ๊ฐ๋ฅํ ์ดํ๋ฆฌ์ผ์ด์ ์ ๊ฐ์ฅ ์์ฐ์ ์ธ ๋ฐฉ๋ฒ์ผ๋ก ์์ฑํ ์ ์๋ค."๋ผ๊ณ ์ค๋ช ํ๊ณ ์๋ค.
์ฌ๊ธฐ์ ์ฃผ๋ชฉํด์ผ ํ๋ ๋ถ๋ถ์ ์กํฐ๋ธ ๋ ์ฝ๋ ํจํด๊ณผ ๋ฐ์ดํฐ ๋งคํผ ํจํด์ด๋ค.
์กํฐ๋ธ ๋ ์ฝ๋ ํจํด์ ๋ชจ๋ธ ์์ฒด ๋ด์์ ๋ชจ๋ ์ฟผ๋ฆฌ ๋ฉ์๋๋ฅผ ์ ์ํ๊ณ ๋ชจ๋ธ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ค๋ธ์ ํธ๋ฅผ ์์ฑ,์ญ์ ,์กฐํ,์์ ํ ์ ์๊ฒ ํ๋ ๋ฐฉ์์ ์๋ฏธํ๋ค.
๋ฐ์ดํฐ ๋งคํผ ํจํด์ "๋ ํฌ์งํ ๋ฆฌ" ๋ผ๋ ๋ณ๋์ ํด๋์ค์์ ๋ชจ๋ ์ฟผ๋ฆฌ ๋ฉ์๋๋ฅผ ์ ์ํ๊ณ ์ด "๋ ํฌ์งํ ๋ฆฌ"๋ฅผ ์ฌ์ฉํ์ฌ ์ค๋ธ์ ํธ๋ฅผ ์์ฑ, ์ญ์ , ์กฐํ, ์์ ํ ์ ์๋ค.
https://fomaios.tistory.com/entry/Nodejs-TypeORM%EC%9D%B4%EB%9E%80-feat-Typescript-ORM-Library