๐Ÿ’ป JAVA_

[Controller] ํŒฉํ† ๋ฆฌ ํŒจํ„ด์„ ํ™œ์šฉํ•œ ์•ก์…˜ ๊ด€๋ฆฌ ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ์ ˆ์•ฝ๋ฒ•

CodeLoge 2025. 3. 9. 00:14

โœด๏ธŽ ๋ชจ๋“  ์•ก์…˜์€ 4๋‹จ๊ณ„๋กœ ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ

: ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์•ก์…˜์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋กœ์ง์€ ์•„๋ž˜ 4๋‹จ๊ณ„๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์Œ

• DAO, DTO ์ƒ์„ฑ → USEBEAN

• DTO ์„ธํŒ… → SET PROPERTY

CRUD → selectOne

• ์‘๋‹ต ์ค€๋น„ → ์–ด๋””๋กœ ์–ด๋–ป๊ฒŒ ๋ณด๋‚ผ์ง€

 ์œ„ ๋‹จ๊ณ„๋Š” ๋…๋ฆฝ์ ์ด๋ฉฐ, ์ ์ ˆํ•œ ์„ค๊ณ„๋ฅผ ํ†ตํ•ด ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Œ

 

โœด๏ธŽ DAO์™€ DTO์˜ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜ ์ฒ˜๋ฆฌ

• DAO๋ฅผ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋กœ ๋‘๋Š” ๊ฒƒ์€ ์ข‹์€ ๋ฐฉ์‹

• DTO๋ฅผ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋กœ ๋‘๋Š” ๊ฒƒ์€ ์‹ ์ค‘ํ•ด์•ผ ํ•จ

:  DTO๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์—ญํ• ์ด๋ฉฐ, ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋กœ ๋‘๋ฉด ์ด์ „ ์š”์ฒญ์˜ ์ •๋ณด๊ฐ€ ๋‚จ์•„ ์žˆ์„ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Œ

: ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋กœ ๋‘”๋‹ค๋ฉด ์žฌ์‚ฌ์šฉ์„ ๊ณ ๋ คํ•ด์•ผํ•จ

 

โœด๏ธŽ ๋ฉ”๋ชจ๋ฆฌ ์ตœ์ ํ™” ๊ฐœ๋…

• ๊ฐ์ฒด๋ฅผ NEW ํ•˜๋Š” ๊ฒƒ์€ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ์„ ์ฆ๊ฐ€์‹œํ‚ด

• ์ตœ์ ํ™” ์›์น™

: ๋ฉค๋ฒ„๋ณ€์ˆ˜ = new XX → ๊ฐ์ฒด๋ฅผ ์ž์ฃผ ์ƒ์„ฑํ•˜๋Š” ๊ตฌ์กฐ๋Š” ํ”ผํ•ด์•ผ ํ•จ

: ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๋ฅผ ํ™œ์šฉํ•˜์—ฌ ํšจ์œจ์ ์œผ๋กœ ๊ฐ์ฒด ๊ด€๋ฆฌ

: Spring๊ณผ ๊ฐ™์€ ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ๊ฐ์ฒด ๊ด€๋ฆฌ๋ฅผ ์ž๋™ํ™”

⇒ ๋ถˆํ•„์š”ํ•œ ๊ฐ์ฒด ์ƒ์„ฑ์„ ์ค„์ด๊ณ , ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ตฌ์กฐ๋ฅผ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์ด ํ•ต์‹ฌ

 

โœด๏ธŽ Factory Pattern์„ ํ™œ์šฉํ•œ ์•ก์…˜ ๊ด€๋ฆฌ

• ๊ธฐ๋ณธ ๊ฐœ๋…

1. ํŒฉํ† ๋ฆฌ ๊ฐ์ฒด๋Š” ์„œ๋ฒ„๋‹น ํ•œ๋ฒˆ๋งŒ NEW

2. ์ดˆ๊ธฐ ์ƒ์„ฑ ์‹œ ๋ชจ๋“  Action ๊ฐ์ฒด๋ฅผ NEW

3. ์ดํ›„์—๋Š” ์žฌ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”๋ชจ๋ฆฌ ํšจ์œจ์ด ๊ทน๋Œ€ํ™”๋จ

Action action = ActionFactory.getAction(actionName);

Key-Value ๋งค์นญ์„ ํ†ตํ•ด ์ ์ ˆํ•œ ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ์—ญํ• ์„ ํ•จ

: Key = int, String, boolean // Value = ๊ฐ์ฒด

ActionFactory factory = new ActionFactory();

• ํŒฉํ† ๋ฆฌ๋ฅผ ์ธ์Šคํ„ด์Šคํ™”ํ•˜๋Š” ๋ฐฉ์‹์€ ์œ ์ง€๋˜๋ฉฐ, ๊ฐ์ฒด ์žฌ์‚ฌ์šฉ์„ ํ†ตํ•ด ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ์Œ

<jsp:useBean id="factory" class="controller.common.ActionFactory" scope="application"/>

 

 

• NEW๋ฅผ ํ•œ๋ฒˆ๋งŒ ์ˆ˜ํ–‰, ๋ฉ”๋ชจ๋ฆฌ ํšจ์œจ์ด ๋›ฐ์–ด๋‚จ

 

โœด๏ธŽ ShoppingMall Project Feedback

• ํŽ˜์ด์ง€ ์ด๋™์ด ์—ฌ๋Ÿฌ ๊ฐœ๋ผ๋ฉด, ๊ฐœ๋ณ„์ ์ธ Action ํด๋ž˜์Šค๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Œ

• ํ•˜๋‚˜์˜ ์•ก์…˜์—์„œ ๋ชจ๋“  ์ด๋™์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์šฉ์ด