๐Ÿ”ฅ #19 ๋Œ“๊ธ€ ์ฐฝ ๊ตฌํ˜„ํ•˜๊ธฐ (Feat. ๋ฌดํ•œ์ฐธ์กฐ ๋ฐฉ์ง€)

myeonjiยท2022๋…„ 2์›” 25์ผ
0

๋Œ“๊ธ€์ฐฝ์„ ๋จผ์ € ๋””์ž์ธ ํ•ด์•ผ ํ•œ๋‹ค.

w3school ์—์„œ ๋ถ€ํŠธ์ŠคํŠธ๋žฉ์„ ์ด์šฉํ•˜์˜€๋‹ค.

์ด๋ ‡๊ฒŒ ๋Œ“๊ธ€์ฐฝ์ด ๋งŒ๋“ค์–ด์กŒ๊ณ , ์ด์ œ ๋Œ“๊ธ€ ๋ชฉ๋ก์„ ๋ฟŒ๋ ค๋ณผ ์ฐจ๋ก€์ด๋‹ค!!


Board ๊ฐ์ฒด๋ฅผ ๋ณด๋ฉด,

์—ฌ๊ธฐ์„œ board ๊ฐ์ฒด๋Š” reply ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

๋”ฐ๋ผ์„œ, ์ƒ์„ธ๋ณด๊ธฐ Controller์™€ Service์—์„œ reply์— ๋Œ€ํ•ด ์ถ”๊ฐ€ํ•  ๊ฒƒ์ด ์—†๋‹ค.

๋”ฐ๋ผ์„œ Board ์•ˆ์— ์žˆ๋Š” Reply๊ฐ€ EAGER ์ „๋žต์— ์˜ํ•ด ๋ถˆ๋Ÿฌ์งˆํ…Œ๋‹ˆ,
์œ„์ฒ˜๋Ÿผ ๊ทธ๋ƒฅ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค!!

๊ทธ๋Ÿฌ๋ฉด Board ์•ˆ์— ์žˆ๋Š” Reply ๋“ค์ด ์ด๋ ‡๊ฒŒ ๋Œ“๊ธ€ ๋ฆฌ์ŠคํŠธ๋กœ ๋ถˆ๋Ÿฌ์™€์ง„๋‹ค!


๐Ÿšซ ๋ฌธ์ œ

<๋ฌดํ•œ์ฐธ์กฐ ๋ฐœ์ƒ>

ํ…Œ์ŠคํŠธ๋กœ Board๋ฅผ find ํ•˜๋ฉด, ๋ฌดํ•œ์ฐธ์กฐ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.
๊ทธ ์ด์œ ๋Š” Board ๊ฐ์ฒด์—์„œ Reply๋ฅผ ๊ฐ–๊ณ  ์žˆ๊ณ , Reply ๊ฐ์ฒด์—์„œ Board๋ฅผ ๊ฐ–๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. (์—ฐ๊ด€๊ด€๊ณ„ ๋งคํ•‘!!)

์œ„์ฒ˜๋Ÿผ /test/board/1 ์˜ 1๋ฒˆ ๊ฒŒ์‹œ๋ฌผ์— ๋“ค์–ด๊ฐ€๋ฉด ๋ฌดํ•œ ์ฐธ์กฐ ๋ฐœ์ƒ..

๐Ÿ’ก ๋ฌดํ•œ์ฐธ์กฐ ๋ฐฉ์ง€ํ•˜๊ธฐ

Board ๊ฐ์ฒด์—์„œ๋Š” Reply๋ฅผ ์ฐธ์กฐํ•ด์•ผ ํ•˜์ง€๋งŒ, Reply ๊ฐ์ฒด์—์„œ๋Š” Board ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค.

์™œ๋ƒํ•˜๋ฉด, ๊ธ€ ์ƒ์„ธ๋ณด๊ธฐ์— ๋“ค์–ด๊ฐ€ Board ๊ฐ์ฒด๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋ฉด ๊ทธ ๊ธ€์— ํ•ด๋‹นํ•˜๋Š” Reply๋“ค์ด ๋ถˆ๋Ÿฌ์™€์ ธ์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค!!

@JsonIgnoreProperties

์ด๋ ‡๊ฒŒ Board ๊ฐ์ฒด์— @JsonIgnoreProperties ์–ด๋…ธํ…Œ์ด์…˜์„ ๊ฑธ์–ด์ฃผ๋ฉด, Reply์—์„œ๋Š” Board ํ˜ธ์ถœ์ด ๋˜์ง€ ์•Š๋Š”๋‹ค. ์ฆ‰, Reply ์—์„œ Board ์˜ get ์ด ๋ฌด์‹œ๋œ๋‹ค.

Test ์ปจํŠธ๋กค๋Ÿฌ์—์„œ Board ๊ฐ์ฒด๋ผ๋Š” Data๋ฅผ ๋ฆฌํ„ดํ•˜์˜€์œผ๋‹ˆ MessageConverter ๊ฐ€ ์ž‘๋™ํ•˜์—ฌ json์œผ๋กœ ๋ฆฌํ„ด ๋˜์—ˆ๊ณ , ๋ฌดํ•œ ์ฐธ์กฐ๊ฐ€ ์•„๋‹Œ Board์˜ Reply๋งŒ ๋ถˆ๋Ÿฌ์™€์ง„๋‹ค.

๋‹ค์‹œ ์ž์„ธํžˆ ๋œฏ์–ด๋ณด๋ฉด,

Board ๊ฐ์ฒด ์ •๋ณด์ธ๋ฐ, ํŒŒ๋ž€์ƒ‰ ์ ์ด Board ๊ฐ์ฒด์˜ ํ•„๋“œ์ด๋‹ค.
Board ๊ฐ์ฒด๋Š” User๊ณผ Reply๋ฅผ EAGER ์ „๋žต์œผ๋กœ ๊ฐ™์ด ๋ถˆ๋Ÿฌ์˜ค๋ฏ€๋กœ, ๋นจ๊ฐ„์ƒ‰ ๋ฐ‘์ค„ ๋ถ€๋ถ„์„ ๋ณด๋ฉด User ๊ฐ์ฒด์™€ Reply ๊ฐ์ฒด๊ฐ€ ๋ถˆ๋Ÿฌ์™€์ง„ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

๋˜ํ•œ User ๊ฐ์ฒด๋กœ ๋“ค์–ด๊ฐ€๋ฉด, User ๊ฐ์ฒด๋Š” ์ฐธ์กฐํ•˜๊ณ  ์žˆ๋Š” ๋‹ค๋ฅธ ๊ฐ์ฒด๊ฐ€ ์—†์œผ๋ฏ€๋กœ ๋ณธ์ธ์˜ ํ•„๋“œ ๊ฐ’๋“ค๋งŒ ๋ถˆ๋Ÿฌ์˜ค๊ณ ,

Reply ๊ฐ์ฒด๋กœ ๋“ค์–ด๊ฐ€๋ฉด, Reply ๊ฐ์ฒด๋Š” User ๊ฐ์ฒด์™€ Board ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜๊ณ  ์žˆ์ง€๋งŒ Board ๊ฐ์ฒด๋Š” ๋‚ด๊ฐ€ ์œ„์—์„œ @JsonIgnoreProperties ์–ด๋…ธํ…Œ์ด์…˜์œผ๋กœ ์ฐธ์กฐ๋ฅผ ๋ง‰์•˜์œผ๋ฏ€๋กœ User ๋งŒ(๋…ธ๋ž€์ƒ‰) ๋ถˆ๋Ÿฌ์˜ค๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

์ฆ‰, Board ๊ฐ์ฒด์˜ Reply ํ•„๋“œ์— @JsonIgnoreProperties ์–ด๋…ธํ…Œ์ด์…˜ ์„ ๋ถ™์˜€์œผ๋ฏ€๋กœ, Board๋ฅผ ํ†ตํ•ด์„œ Reply(replys)๋ฅผ ๋ฝ‘์„ ๋•Œ๋Š” Reply ์•ˆ์—์„œ Board ๋ฅผ json์œผ๋กœ ํŒŒ์‹ฑํ•˜์ง€ ์•Š๋Š”๋‹ค. (ํŒŒ์‹ฑ(๋ณ€ํ™˜)ํ•˜๋ฉด ๋ฌดํ•œ์ฐธ์กฐ๊ฐ€ ์ผ์–ด๋‚˜๊ธฐ ๋•Œ๋ฌธ)

profile
๐Ÿ“š

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