๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

TIL, WIL/TIL๐Ÿ“˜

04. 07 TIL

728x90
  • VO์™€ DTO, BO, DAO๋ž€?

https://tecoble.techcourse.co.kr/post/2020-06-11-value-object/

 

VO(Value Ojbect)๋ž€ ๋ฌด์—‡์ผ๊นŒ?

ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜๋‹ค ๋ณด๋ฉด VO๋ผ๋Š” ์ด์•ผ๊ธฐ๋ฅผ ์ข…์ข… ๋“ฃ๊ฒŒ ๋œ๋‹ค. VO์™€ ํ•จ๊ป˜ ์–ธ๊ธ‰๋˜๋Š” ๊ฐœ๋…์œผ๋กœ๋Š” Entity, DTO๋“ฑ์ด ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋” ๋‚˜์•„๊ฐ€์„œ๋Š” ๋„๋ฉ”์ธ ์ฃผ๋„ ์„ค๊ณ„๊นŒ์ง€๋„ ํ•จ๊ป˜ ์–ธ๊ธ‰๋œ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” ์šฐ์„  ๋‹ค

tecoble.techcourse.co.kr

https://tecoble.techcourse.co.kr/post/2021-05-16-dto-vs-vo-vs-entity/

 

DTO vs VO vs Entity

DTO์™€ VO๋Š” ๋ถ„๋ช…ํžˆ ๋‹ค๋ฅธ ๊ฐœ๋…์ด๋‹ค. ๊ทธ๋Ÿฐ๋ฐ, ๊ฐ™์€ ๊ฐœ๋…์œผ๋กœ ์ƒ๊ฐํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. ์™œ์ผ๊นŒ? โŒœCore J2EE Patterns: Best Practices and Design StrategiesโŒŸ ์ฑ…์˜ ์ดˆํŒ์—์„œ๋Š” ๋ฐ์ดํ„ฐ ์ „์†ก์šฉ ๊ฐ์ฒด๋ฅผ ๋กœ ์ •์˜

tecoble.techcourse.co.kr

-> VO๋Š” ๋„๋ฉ”์ธ์—์„œ ํ•œ ๊ฐœ ์ด์ƒ์˜ ์†์„ฑ์„ ๋ฌถ์–ด ํŠน์ • ๊ฐ’์œผ๋กœ ํ‘œํ˜„ํ•˜๋Š” ๊ฐ์ฒด๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. VO ์ธ์Šคํ„ด์Šค์˜ ์ฃผ์†Œ๊ฐ€ ๋‹ฌ๋ผ๋„ ๊ฐ’๋งŒ ๊ฐ™๋‹ค๋ฉด ๋™์ผํ•œ ์ธ์Šคํ„ด์Šค์ด๋‹ค. ์—”ํ‹ฐํ‹ฐ๋Š” ๊ฐ ๊ฐ์ฒด๊ฐ€ ์ผ๋ฐ˜์ ์œผ๋กœ ๊ธฐ๋ณธ ํ‚ค๋ฅผ ์‹๋ณ„์ž๋กœ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‚ด๋ถ€ ์†์„ฑ ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜๋”๋ผ๋„ ๋™์ผํ•œ ๊ฐ์ฒด๋กœ ์ถ”์ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, VO๋Š” ๊ฐ’์ด ๊ณง ์‹๋ณ„์ž์ด๊ธฐ ๋•Œ๋ฌธ์— VO๋Š” ๊ทธ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์–ด์•ผ ๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, Setter๊ฐ€ ์—†์–ด์•ผ ๋ฉ๋‹ˆ๋‹ค. ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง๊ณผ Getter ๋ฉ”์„œ๋“œ๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ •ํ™•ํ•œ ๊ฐ’์˜ ๋น„๊ต๋ฅผ ์œ„ํ•ด์„œ equals()์™€ hashCode()๋ฅผ ์žฌ์ •์˜ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

DTO๋Š” ๋ ˆ์ด์–ด ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ๋ ˆ์ด์–ด ์‚ฌ์ด์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ์ฃผ๋กœ View์™€ Controller ์‚ฌ์ด์—์„œ ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค. Getter, Setter๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ์œผ๋‚˜, ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์€ ํฌํ•จํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. Setter๊ฐ€ ์•„๋‹Œ ์ƒ์„ฑ์ž๋กœ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ๋ถˆ๋ณ€ ๊ฐ์ฒด๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ์— ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 BO๋ž€ ๋น„์ฆˆ๋‹ˆ์Šค ๊ฐ์ฒด๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ, ์ด ๊ฐ์ฒด์˜ ์†์„ฑ์€ ๊ณ ๊ฐ, ์ œํ’ˆ, ๋˜๋Š” ์ฃผ๋ฌธ ๋“ฑ์˜ ๋น„์ฆˆ๋‹ˆ์Šค์™€ ์ง์ ‘ ๊ด€๋ จ์ด ์žˆ๋Š” ์†์„ฑ์„ ํฌํ•จํ•˜๋Š” ๊ฐ์ฒด๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”์„œ๋“œ๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฃผ๋กœ ํ”„๋ ˆ์  ํ…Œ์ด์…˜ ๊ณ„์ธต(Controller)์™€ DB ์‚ฌ์ด์—์„œ ๋น„์ฆˆ๋‹ˆ์Šค ๋„๋ฉ”์ธ ๋‚ด์—์„œ ๊ฐ์ฒด๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

DAO๋ž€ ๋ฐ์ดํ„ฐ ์—‘์„ธ์Šค ๊ฐœ์ฒด๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. DB์— ์ ‘๊ทผํ•˜๊ณ  ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ CRUD ๋ฉ”์„œ๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋น„์ฆˆ๋‹ˆ์Šค ๊ณ„์ธต๊ณผ DB ๊ณ„์ธต์„ ์—ฐ๊ฒฐํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. 

 

  • CORS๋ž€?

https://escapefromcoding.tistory.com/724

 

CORS๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

๊ฐœ์š” ์›น ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ํ”„๋ŸฐํŠธ์™€ ๋ฐฑ์—”๋“œ ์ž‘์—…์„ ํ•˜๋ฉด, ํ•œ๋ฒˆ์”ฉ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ CORS ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ ํ•˜๋Š” ์—…๋ฌด๊ฐ€ ์ด๋Ÿฐ ๊ฒฝ์šฐ๋Š” ์—†์—ˆ์ง€๋งŒ, ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ ์‹œ ๋ฐœ์ƒํ–ˆ๋˜ ๋ฌธ์ œ๋ฅผ ๊ธฐ์–ตํ•˜๋ฉฐ ํ•ด๋‹น ๋ฌธ

escapefromcoding.tistory.com

-> CORS๋ž€ ์•…์„ฑ ์›น์‚ฌ์ดํŠธ๋กœ๋ถ€ํ„ฐ ์‚ฌ์šฉ์ž๋ฅผ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ง„ ๋ณด์•ˆ ๋งค์ปค๋‹ˆ์ฆ˜์ž…๋‹ˆ๋‹ค. ์ถ”๊ฐ€ Http ํ—ค๋”๋ฅผ ์‚ฌ์šฉํ•ด ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์ž์‹ ์˜ ์ถœ์ฒ˜์™€ ๋‹ค๋ฅธ ๋ฆฌ์†Œ์Šค๋ฅผ ์š”์ฒญํ•  ๋•Œ CORS์ •์ฑ…๋ฅผ ์ค€์ˆ˜ํ•ด์„œ ์š”์ฒญํ•œ ๊ฒฝ์šฐ์—๋งŒ ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค. ์ถœ์ฒ˜๋ฅผ ํŒ๋‹จํ•  ๋•Œ ํ”„๋กœํ† ์ฝœ, ํ˜ธ์ŠคํŠธ, ํฌํŠธ๊ฐ€ ๊ฐ™์œผ๋ฉด ์ถœ์ฒ˜๊ฐ€ ๊ฐ™๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹จ์ˆœ ์š”์ฒญ, ํ”„๋ฆฌ ํ”Œ๋ผ์ดํŠธ ์š”์ฒญ, ์ธ์ฆ ์ •๋ณด ์š”์ฒญ 3๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. 

1) ๋‹จ์ˆœ์š”์ฒญ

- GET, HEAD, POST ์š”์ฒญ

- ๋ธŒ๋ผ์šฐ์ €๋Š” ์š”์ฒญ์„ ํ™•์ธํ•˜๊ณ  acceess-control-allow-origin์— ์ฃผ์†Œ๊ฐ’์„ ๋‹ด์•„ ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค.

2) ํ”„๋ฆฌ ํ”Œ๋ผ์ดํŠธ

- OPTIONS ๋ฉ”์„œ๋“œ๋กœ Http ์š”์ฒญ์„ ๋ฏธ๋ฆฌ ๋ณด๋‚ด ์•ˆ์ „ํ•œ ์ „์†ก์ธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

3) ์ธ์ฆ ์ •๋ณด ์š”์ฒญ

- ์ธ์ฆ์„ ์š”๊ตฌํ•˜๋Š” ํ—ค๋”๊ฐ€ ์žˆ๋‹ค๋ฉด ์ธ์ฆ ์ •๋ณด๋ฅผ ํฌํ•จํ•œ ์š”์ฒญ์ธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

728x90

'TIL, WIL > TIL๐Ÿ“˜' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

04. 13 TIL  (0) 2023.04.13
04. 08 TIL  (0) 2023.04.08
04. 06 TIL  (0) 2023.04.06
04. 05 TIL  (0) 2023.04.05
04. 04 TIL  (0) 2023.04.04