Serialization
Serialization
์๋ฆฌ์ผ ๋ผ์ด์ ๋ ์ค์ ์๋ต์ ๋ณด๋ด๊ธฐ ์ ์ ๋ฐ์ดํฐ ์กฐ์์ ๋ํ ๊นจ๋ํ ์ถ์ํ ๊ณ์ธต์ ์ ๊ณตํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ฌ์ฉ์ ๋น๋ฐ๋ฒํธ์ ๊ฐ์ ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ ํญ์ ์ต์ข
์๋ต์์ ์ ์ธํด์ผ ํฉ๋๋ค. ๋ํ ํน์ ์์ฑ์๋ ์ถ๊ฐ ๋ณํ์ด ํ์ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ ์ฒด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ํฐํฐ๋ฅผ ๋ณด๋ด์ง ์์ผ๋ ค๋ ๊ฒฝ์ฐ๋ฅผ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ๋์ , ์ฐ๋ฆฌ๋ id
์ name
๋ง ๊ณ ๋ฅด๊ณ ์ถ์ต๋๋ค. ๋๋จธ์ง๋ ์๋์ผ๋ก ์ ๊ฑฐํด์ผํฉ๋๋ค. ๋ถํํ๋ ๋ชจ๋ ์ํฐํฐ๋ฅผ ์๋์ผ๋ก ๋งคํํ๋ฉด ๋ง์ ํผ๋์ด ์๊ธธ ์ ์์ต๋๋ค.
Overview
Nest๋ ์ด๋ฌํ ์์
์ ์ํํ๋ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ ์ ๊ณตํ๊ธฐ ์ํด ClassSerializerInterceptor
ํด๋์ค๋ฅผ ์ ๊ณตํฉ๋๋ค. class-transformer ํจํค์ง๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ธ์ ์ด๊ณ ํ์ฅ ๊ฐ๋ฅํ ๊ฐ์ฒด ๋ณํ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ClassSerializerInterceptor
๋ ๋ฉ์๋์์ ๋ฆฌํด๋ ๊ฐ์ ๊ฐ์ ธ ์์ class-transformer ํจํค์ง์์ serializclassToPlain()
ํจ์๋ฅผ ํธ์ถํฉ๋๋ค.
Exclude properties
๋ค์ ์ํฐํฐ์์ password
์์ฑ์ ์๋์ผ๋ก ์ ์ธํ๋ค๊ณ ๊ฐ์ ํด ๋ด
์๋ค.
๊ทธ๋ฐ ๋ค์ ์ปจํธ๋กค๋ฌ์ ๋ฉ์๋์์ ์ด ํด๋์ค์ ์ธ์คํด์ค๋ฅผ ์ง์ ๋ฆฌํดํ์ญ์์ค.
info ํํธ
ClassSerializerInterceptor
๋@nestjs/common
ํจํค์ง์์ ๊ฐ์ ธ์ต๋๋ค.
์ด์ ์ด ์๋ ํฌ์ธํธ๋ฅผ ํธ์ถํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ์๋ต์ด ๋ํ๋ฉ๋๋ค.
Expose properties
๋ฏธ๋ฆฌ ๊ณ์ฐ๋ ์์ฑ์ ๋
ธ์ถํ๋ ค๋ฉด @Expose()
๋ฐ์ฝ๋ ์ดํฐ๋ฅผ ์ฌ์ฉํ์ญ์์ค.
Transform
@Transform()
๋ฐ์ฝ๋ ์ดํฐ๋ฅผ ์ฌ์ฉํ์ฌ ์ถ๊ฐ ๋ฐ์ดํฐ ๋ณํ์ ์ํํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ ์ฒด ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ ๋์ RoleEntity
์ ์ด๋ฆ์ ์ ํํ๋ ค๊ณ ํฉ๋๋ค.
Pass options
๋ณํ ์ต์
์ ํน์ ์์ธ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง ์ ์์ต๋๋ค. ๊ธฐ๋ณธ ์ค์ ์ ๋ฎ์ด ์ฐ๋ ค๋ฉด @SerializeOptions()
๋ฐ์ฝ๋ ์ดํฐ๋ฅผ ์ฌ์ฉํ์ญ์์ค.
info ํํธ
@SerializeOptions()
๋ฐ์ฝ๋ ์ดํฐ๋@nestjs/common
ํจํค์ง์์ ๊ฐ์ ธ์ต๋๋ค.
์ด ์ต์
์ classToPlain()
ํจ์์ ๋ ๋ฒ์งธ ์ธ์๋ก ์ ๋ฌ๋ฉ๋๋ค.
Websockets & Microservices
์ด ๋ชจ๋ ์ง์นจ์ ์ฌ์ฉ์ค์ธ ์ ์ก ๋ฐฉ๋ฒ์ ๊ด๊ณ์์ด WebSocket๊ณผ ๋ง์ดํฌ๋ก ์๋น์ค์ ๊ดํ ๊ฒ์ ๋๋ค.
Learn more
์ฌ์ฉ ๊ฐ๋ฅํ ๋ฐ์ฝ๋ ์ดํฐ, ์ต์ ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ด ํ์ด์ง๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
Last updated
Was this helpful?