yeony._.
๐Ÿข์ฝฉ๋ถ€๐Ÿข
yeony._.
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (99)
    • ๐Ÿ’ปProgramming (91)
      • โ˜•๏ธJava (19)
      • ๐Ÿ’ฝOracle (21)
      • ๐Ÿ‘ฉ‍๐ŸŽจHTML&CSS (12)
      • ๐ŸŽจ ์‹ค์Šต (4)
      • ๐Ÿƒ‍โ™€๏ธJavaScript (25)
      • JSP (8)
      • ๐ŸƒSpring (0)
      • ๐Ÿฅงpython (0)
      • API (0)
      • ๐Ÿ˜ˆGit (1)
    • ๐ŸคซPrivate (0)
      • -- (0)
      • + (0)
      • S (0)
      • P (0)
      • B (0)
    • ๐Ÿ˜ŽProject (4)
      • ๐Ÿ—“๏ธwbs ํ”„๋กœ์ ํŠธ (3)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • HTML #CSS #HTML์ด๋ฏธ์ง€ #HTML์ด๋ฏธ์ง€์—๊ธ€์”จ #HTML์ด๋ฏธ์ง€์—์ด๋ฏธ์ง€

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
yeony._.

๐Ÿข์ฝฉ๋ถ€๐Ÿข

๐Ÿ’ปProgramming/โ˜•๏ธJava

[JAVA] DAO์™€ VO ์ •์˜์™€ ์‚ฌ์šฉ๋ฒ•

2022. 7. 31. 21:42

DAO์™€ VO ์ •์˜์˜ ์‚ฌ์šฉ๋ฐฉ๋ฒ• ๐Ÿ˜ถ

01. VO

VO(Value Object)์˜ ๊ฐœ๋… 

์—ฌ๋Ÿฌ ๋‹ค๋ฅธ ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฅธ ํด๋ž˜์Šฌ๋กœ ์ „๋‹ฌํ•  ๋•Œ ์‚ฌ์šฉ

TO(Transfer Object)๋ผ๊ณ ๋„ ํ•จ 

 

๋งˆํ‹ด ํŒŒ์šธ๋Ÿฌ ์•„์ €์”จ(์˜๊ตญ SW ๊ฐœ๋ฐœ์ž) ๊ฐ€ VO์— ๋Œ€ํ•ด ์„ค๋ช…ํ•œ ๊ฒƒ์„ ๋ณด๋ฉด ์ดํ•ด๊ฐ€ ์‰ฝ๋‹ค.

 

When programming, I often find it's useful to represent things as a compound. 
โžก ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•  ๋•Œ ์ข…์ข… ์‚ฌ๋ฌผ์„ ๋ณตํ•ฉ์œผ๋กœ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ์ด ์œ ์šฉํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค.

A 2D coordinate consists of an x value and y value. An amount of money consists of a number and a currency. A date range consists of start and end dates, which themselves can be compounds of year, month, and day.
โžก 2D ์ขŒํ‘œ๋Š” x ๊ฐ’๊ณผ y ๊ฐ’์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๊ธˆ์•ก์€ ์ˆซ์ž์™€ ํ†ตํ™”๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๋‚ ์งœ ๋ฒ”์œ„๋Š” ์‹œ์ž‘ ๋‚ ์งœ์™€ ์ข…๋ฃŒ ๋‚ ์งœ๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ ์ž์ฒด์ ์œผ๋กœ ์—ฐ๋„, ์›”, ์ผ์˜ ํ•ฉ์„ฑ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

But unless I'm careful when programming, I may not get that behavior in my programs

โžก ๊ทธ๋Ÿฌ๋‚˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•  ๋•Œ ์ฃผ์˜ํ•˜์ง€ ์•Š์œผ๋ฉด ๋‚ด ํ”„๋กœ๊ทธ๋žจ์—์„œ ํ•ด๋‹น ๋™์ž‘์„ ์–ป์ง€ ๋ชปํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๋„๋ฉ”์ธ์—์„œ ์—ฌ๋Ÿฌ ์†์„ฑ๋“ค์„ ๋ฌถ์–ด์„œ ํŠน์ • ๊ฐ’์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐ์ฒด๋ฅผ ์˜๋ฏธ

 

๋งˆํ‹ด ํŒŒ์šธ๋Ÿฌ ์•„์ €์”จ ์„ค๋ช… ์ฃผ์†Œ

https://www.martinfowler.com/bliki/ValueObject.html

 

 

VO๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•

ํ…Œ์ด๋ธ”์˜ ํ•„๋“œ๋ช…์„ ์†์„ฑ์œผ๋กœ ์„ ์–ธ

์ƒ์„ฑ์ž๋ฅผ ๊ตฌํ˜„ 

๊ฐ ์†์„ฑ์— ๋Œ€ํ•œ getter/setter ๋ฉ”์„œ๋“œ๋ฅผ ๊ตฌํ˜„ 

 

๐ŸŒฑ  gettet/setter์˜ ์˜๋ฏธ  ๐ŸŒฑ 

OOP์—์„œ ๊ฐ์ฒด์˜ ๋ฐ์ดํ„ฐ๋Š” ๊ฐ์ฒด ์™ธ๋ถ€์—์„œ ์ง์ ‘์ ์œผ๋กœ ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์„ ๋ง‰๋Š”๋‹ค.

๊ฐ์ฒด ๋ฐ์ดํ„ฐ๋ฅผ ์™ธ๋ถ€์—์„œ ์ฝ๊ณ  ๋ณ€๊ฒฝํ•  ๋•Œ, ๋ฌด๊ฒฐ์„ฑ์ด ๊นจ์งˆ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ!

๋”ฐ๋ผ์„œ ๋ฉ”์†Œ๋“œ๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š”๋ฐ, ์ด ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ  getter/setter!

 

 

02. DAO

์ถ”ํ›„์— DB๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด, ์ด์šฉํ•˜๊ฒŒ ๋˜๋Š” DAO!


DAO(Data access object)์˜ ๊ฐœ๋… 

์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž‘์—…๋งŒ ์ˆ˜ํ–‰ํ•˜๋Š” ํด๋ž˜์Šค 

์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์˜ ๋‹ค๋ฅธ ๊ธฐ๋Šฅ์„ ํ•˜๋Š” ํด๋ž˜์Šค์™€ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ž‘์—… 

 

DAO(Data access object) ๋“ฑ์žฅ ๋ฐฐ๊ฒฝ 

ํ™”๋ฉด ๊ธฐ๋Šฅ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๋™ ๊ธฐ๋Šฅ ๋“ฑ์„ ๊ฐ๊ฐ ๋‹ด๋‹นํ•˜๋Š” ํด๋ž˜์Šค๋กœ ๋‚˜๋ˆ„์–ด ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌํ˜„ํ•œ๋‹ค. 

์œ ์ง€ ๊ด€๋ฆฌ๊ฐ€ ํŽธ๋ฆฌํ•˜๋ฉฐ, ์žฌ์‚ฌ์šฉ์„ฑ์ด ๋†’์•„์ง„๋‹ค. 

 

 

 

 

'๐Ÿ’ปProgramming > โ˜•๏ธJava' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[JAVA] ์˜ˆ์™ธ์ฒ˜๋ฆฌ  (0) 2022.08.03
[JAVA] Annotation  (0) 2022.08.02
[JAVA] ์—ด๊ฑฐํ˜• ํƒ€์ž…  (0) 2022.07.27
[JAVA] ๊ฐ์ฒด์ง€ํ–ฅ_์ธํ„ฐํŽ˜์ด์Šค  (0) 2022.07.26
[JAVA]๊ฐ์ฒด์ง€ํ–ฅ_์ถ”์ƒ ํด๋ž˜์Šค  (0) 2022.07.26
    '๐Ÿ’ปProgramming/โ˜•๏ธJava' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [JAVA] ์˜ˆ์™ธ์ฒ˜๋ฆฌ
    • [JAVA] Annotation
    • [JAVA] ์—ด๊ฑฐํ˜• ํƒ€์ž…
    • [JAVA] ๊ฐ์ฒด์ง€ํ–ฅ_์ธํ„ฐํŽ˜์ด์Šค
    yeony._.
    yeony._.
    ํž˜ ์„ธ์ง€๋Š” ์•Œ์•ฝ๐Ÿ’Š๐Ÿ’Š๐Ÿ’Š

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”