๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋กDevelop/Design Pattern (3)

๐Ÿ’ป ๐Ÿง

[ DAO, DTO, VO / Python ์—์„œ ] DAO, DTO, VO ์— ๋Œ€ํ•ด

Python์—์„œ DAO, DTO, VO๋ž€? ๊ฐœ๋…๊ณผ ์˜ˆ์ œPython์„ ๋น„๋กฏํ•œ ์—ฌ๋Ÿฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ๊ตฌ์กฐํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์–‘ํ•œ ๋””์ž์ธ ํŒจํ„ด๊ณผ ๊ฐ์ฒด ์œ ํ˜•์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ํŠนํžˆ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ํ†ต์‹ ํ•˜๊ฑฐ๋‚˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ๋•Œ DAO(Data Access Object), DTO(Data Transfer Object), VO(Value Object)์™€ ๊ฐ™์€ ๊ฐœ๋…์ด ์ž์ฃผ ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ฐ๊ฐ์˜ ๊ฐœ๋…๊ณผ ํŠน์ง•, ๊ทธ๋ฆฌ๊ณ  Python์—์„œ์˜ ๊ตฌํ˜„ ์˜ˆ์ œ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.1. DAO (Data Access Object)DAO๋ž€?DAO๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋‚˜ ํŒŒ์ผ ๋“ฑ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๊ณ  ์ €์žฅํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค. DAO๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€์˜ ์ง์ ‘์ ์ธ ์ƒํ˜ธ์ž‘์šฉ์„ ๋‹ด๋‹นํ•˜๋ฉฐ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ จ ์ฝ”๋“œ์™€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๋ถ„๋ฆฌํ•˜์—ฌ ..

Develop/Design Pattern 2024. 11. 3. 19:12
[ ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ / Python ] ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ๋Š” ์™œ ์‚ฌ์šฉํ•˜๊ณ , ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•ด์•ผํ• ๊นŒ

1. ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ์˜ ๊ธฐ๋ณธ ๊ฐœ๋…๋ฐ์ฝ”๋ ˆ์ดํ„ฐ๋Š” ํ•˜๋‚˜์˜ ํ•จ์ˆ˜๋ฅผ ๋‹ค๋ฅธ ํ•จ์ˆ˜์— ์ธ์ž๋กœ ์ „๋‹ฌํ•˜์—ฌ, ์›๋ณธ ํ•จ์ˆ˜์— ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. Python์—์„œ ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ๋Š” @ ๊ธฐํ˜ธ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. @๋ฐ์ฝ”๋ ˆ์ดํ„ฐdef ํ•จ์ˆ˜์ด๋ฆ„(): pass ์œ„ ๊ตฌ๋ฌธ์€ ํ•จ์ˆ˜์ด๋ฆ„ = ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ(ํ•จ์ˆ˜์ด๋ฆ„)๊ณผ ๋™์ผํ•˜๊ฒŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.์˜ˆ๋ฅผ ๋“ค์–ด, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‹จ์ˆœ ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ๋Š” ์–ด๋–ค ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋  ๋•Œ๋งˆ๋‹ค ๊ทธ ํ•จ์ˆ˜์˜ ์ด๋ฆ„์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. def simple_decorator(func): def wrapper(): print(f"Calling function: {func.__name__}") func() return wrapper@simple_decoratordef say_hello(): ..

Develop/Design Pattern 2024. 11. 3. 19:02
Design Pattern : VO ( Value Object ) ์™œ ์‚ฌ์šฉํ• ๊นŒ ?

์ฝ”๋“œ๋“ค์„ ์‚ดํŽด๋ณด๋‹ค๊ฐ€ VO ๊ฐ€ ๋ฐœ๊ฒฌ๋๋‹ค. ์ด๊ฒƒ์ด ๋ฌด์—‡์ธ๊ณ .. ํ•˜๋‹ˆ value object ๋ž€๋‹ค. ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•  ๊ฒƒ ๊ฐ™๋‹ค. DAO DTO VO impl ... ์•„์ฃผ ๋ชจ๋ฅด๊ฒ ๋Š”๊ฒƒ๋“ค ํˆฌ์„ฑ์ด์ด๋‹ค. ๋””์ž์ธํŒจํ„ด์„ ๊ณต๋ถ€ํ•ด์•ผ๊ฒ ๋‹ค๊ณ  ๋งˆ์Œ๋จน์€ ์ˆœ๊ฐ„์ด์—ˆ๋‹ค. ์ž๊ฒฉ์ฆ ์‹œํ—˜ ๋ณผ ๋•Œ ์žˆ์—ˆ๋˜ ์—„์ฒญ ๋งŽ์€ ๋””์ž์ธํŒจํ„ด๋“ค์ด ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์•Œ์ง€๋งŒ ์ผ๋‹จ ๋‚ด ์—…๋ฌด์˜ ๋””์ž์ธํŒจํ„ด์€ ์•Œ์•„์•ผ๊ฒ ๋‹ค. ์–ด์ฐจํ”ผ ๊ฐ๋™์—†๋Š” ๋ฐฐ์›€์€ ๊ธˆ๋ฐฉ ์žŠํ˜€์ง€๊ธฐ ๋•Œ๋ฌธ..1. VO( Value Obejct ) ๋Š” ๋ฌด์—‡์ผ๊นŒVO ์˜ ๊ทธ ์‚ฌ์ „์ ์ธ ์˜๋ฏธ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค. VO(Value Object)๋Š”  ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๋ฐ์ดํ„ฐ์˜ ์ผ๊ด€์„ฑ๊ณผ ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ์ค‘์š”ํ•œ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. VO๋Š” ๊ฐœ๋ณ„์ ์œผ๋กœ ์‹๋ณ„๋  ํ•„์š” ์—†์ด, ๊ทธ ๋‚ด๋ถ€ ๊ฐ’๋งŒ์œผ๋กœ ์ •์˜ ๋˜๋Š” ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค. ์ฆ‰, ๋‘ VO..

Develop/Design Pattern 2024. 10. 31. 22:10