๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • ๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป ๐ŸŒฎ ๐Ÿ’ฌ
๐ŸŒฎ Personal Project/shoppingmall service

๊ด€๋ฆฌ์ž :: ์ƒํ’ˆ ๋“ฑ๋ก

by ๋ฐ”์ฟ„๋ฆฌ 2021. 9. 19.

๊ด€๋ฆฌ์ž ๋ฉ”๋‰ด ์ค‘์—์„œ ์ด์ œ ์ƒํ’ˆ๊ด€๋ฆฌ์™€ ์ถ”์ฒœ ์ƒํ’ˆ ๊ด€๋ฆฌ๊ฐ€ ๋‚จ์•˜๋‹ค.

์ถ”์ฒœ ์ƒํ’ˆ ๊ด€๋ฆฌ๋Š” ์–ด์งœํ”ผ ์ƒํ’ˆ ๊ด€๋ฆฌ ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ฐ€์ ธ์™€์„œ

์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์—

์ƒํ’ˆ๊ด€๋ฆฌ ๋จผ์ € ์™„๋ฃŒํ•ด์ฃผ๋„๋ก ํ•˜์ž

 

 

์ƒํ’ˆ์„ ๋“ฑ๋กํ•  ๋•Œ, ์ง€๊ธˆ๊นŒ์ง€ ๋“ฑ๋กํ•œ ์นดํ…Œ๊ณ ๋ฆฌ, ํŒ๋งค์ž(์—…์ฒด), ๋ฐฐ์†ก์—…์ฒด ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ฐ€์ ธ์™€์„œ

๊ฑฐ๊ธฐ์„œ ์„ ํƒ์„ ํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ง‘์–ด ๋„ฃ์„ ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ์ž

 

๊ทธ๋ ‡๊ฒŒ ํ•˜๊ธฐ์œ„ํ•ด์„œ๋Š” ์ƒํ’ˆ controller์—์„œ

์นดํ…Œ๊ณ ๋ฆฌ, ํŒ๋งค์ž, ๋ฐฐ์†ก์—…์ฒด ๋ฐ์ดํ„ฐ๋ฅผ autowired๋ฅผ ํ†ตํ•ด ๊ฐ€์ ธ์™€์„œ

model๋กœ ๋‚ด๋ณด๋‚ด์–ด์ฃผ๋„๋ก ๋งŒ๋“ค์–ด์ฃผ์ž

 

๊ทธ๋Ÿผ ์ƒํ’ˆ๊ด€๋ฆฌ ํŽ˜์ด์ง€๋กœ ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” controller๋กœ ๋จผ์ € ๊ฐ€์ž

 

AdminController.java
AdminController.java

์ „์ฒด ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€์„œ list๋กœ ์ถœ๋ ฅํ•ด์ฃผ๋Š” service๋ฅผ ๋ชจ๋‘ ๊ฐ€์ ธ์™€์ค˜์„œ

๊ฐ๊ฐ์˜ ์ด๋ฆ„์œผ๋กœ clist, slist, dlist๋กœ ์ง€์ •ํ•ด์ค€๋‹ค.

 

์ž ๊ทธ๋Ÿผ jsp์—์„œ ์ƒํ’ˆ์„ ๋“ฑ๋กํ•ด์ค„ ์ˆ˜ ์žˆ๋Š” table์„ ๋งŒ๋“ค์–ด์ฃผ์ž

์•„๋ž˜์˜ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค๋ฅผ ์ฐธ๊ณ ํ•ด์„œ

 

product.jsp

์šฐ์„  ์นดํ…Œ๊ณ ๋ฆฌ list๋ฅผ ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ํ•ด์„œ ์ „์ฒด๋ฅผ ๊ฐ€์ ธ์˜ฌ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— 

์ƒ๋‹จ์— taglib๋ฅผ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค (c:forEach๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ์œ„ํ•ด)

 

๊ทธ๋ฆฌ๊ณ  ์šฐ์„  category๊ฐ’์ด ์ž˜ ๋‚˜์˜ค๋Š”์ง€ ํ™•์ธํ•ด์ฃผ์ž

(์•„๊นŒ controller์—์„œ model๋กœ ๊ฐ€์ ธ์˜จ clist๊ฐ€ ์ž˜ ์ถœ๋ ฅ๋˜๋Š”์ง€ !)

 

๋ฐ์ดํ„ฐ๋ฅผ ์ž˜ ๊ฐ€์ ธ์™€์ค€๋‹ค.

๊ทธ๋Ÿผ ๋‚˜๋จธ์ง€๋„ ์ด์–ด์„œ ์ง„ํ–‰ํ•ด์ฃผ์ž

 

product.jsp

์•„๋ž˜์—๋„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž‘์„ฑํ•ด์ฃผ์—ˆ๋‹ค.

 

์ด์ œ ์ƒํ’ˆ์„ ๋“ฑ๋กํ•ด์ค„ ํ‹€์€ ๋งŒ๋“ค์—ˆ๋‹ค

๊ทธ๋Ÿผ ์ด์ œ ์ž…๋ ฅํ•˜๋Š” ๊ฐ’์„ ๋ฐ์ดํ„ฐ๋กœ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค˜์•ผ์ง€

 

์šฐ์„  ์ด ๋ฐ์ดํ„ฐ๋“ค์„ ๋ฐ›์„ vo๋จผ์ € ๋งŒ๋“ค์–ด์ฃผ์ž

 

ProductVO.java

DB๋ฅผ ์ฐธ๊ณ ํ•ด์„œ ๋งŒ๋“ค์–ด์ฃผ์—ˆ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  mapper๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ ํ•ด์ฃผ์ž

 

ProductMapper.xml
ProductMapper.java
ProductService.java

Service๊นŒ์ง€ ์ž‘์„ฑํ–ˆ๋‹ค !

์—ฌ๊ธฐ์„œ ์ƒํ’ˆ ์ •๋ณด ์ค‘์—์„œ null์ด ํ—ˆ์šฉ๋˜์ง€ ์•Š์€ ์• ๋“ค์— ๋Œ€ํ•ด์„œ ์ฒ˜๋ฆฌํ•ด์ฃผ๋„๋กํ•˜์ž!

 

์œ„์— ์žˆ๋Š” DB๋ฅผ ์ฐธ๊ณ ํ•˜๋ฉด, not null์ธ ์ปฌ๋Ÿผ์€

์ƒํ’ˆ๋ช…, ์นดํ…Œ๊ณ ๋ฆฌ, ํŒ๋งค์ž, ์ œ์กฐ์ผ, ๋ฐฐ์†ก์—…์ฒด, ๊ฐ€๊ฒฉ์ด๋‹ค.

๋‚˜๋จธ์ง€ ๋ฐ์ดํ„ฐ๋“ค์„ ์ž…๋ ฅํ•˜์ง€ ์•Š์•˜์„ ๊ฒฝ์šฐ์—๋Š” 0์„ ์ถœ๋ ฅํ•ด์ฃผ๋„๋ก ํ•˜์ž

 

์ฒ˜๋ฆฌ๋ฅผ ํ•ด๋ณด์ž

 

๊ทธ๋Ÿผ ์ด์ œ API๋กœ ๊ฐ€์ž

 

ProductAPIController.java

์ด๋ฒˆ์—๋Š” service์—์„œ ๋‹ค ์ฒ˜๋ฆฌํ•ด์คฌ๊ธฐ์—

API๊ฐ€ ๊น”๋”ํ•ด์กŒ๋‹ค.

 

๊ทธ๋Ÿผ ์ด์ œ js๋กœ ๊ฐ€์„œ ๊ธฐ๋Šฅ์„ ํ•ด์ฃผ๋„๋ก ํ•ด์ค„๊นŒ์š”

js ํŒŒ์ผ์„ ์ƒ์„ฑํ•ด์ฃผ๊ณ , jsp์—์„œ (์ƒˆ๋กœ ๋งŒ๋“ ) js ํŒŒ์ผ ์—ฐ๊ฒฐํ•ด์ค€๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ œ์ด์ฟผ๋ฆฌ๋„ ๊ฐ™์ด ์ถ”๊ฐ€ํ•ด์ฃผ๊ธฐ

 

 

product.js

์ž˜ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ์œผ๋‹ˆ,

 

์ž…๋ ฅํ•˜๊ณ  ์„ ํƒํ•˜๋Š” ๊ฐ’์ด DB์— ์ž˜ ๋“ค์–ด๊ฐ€๋„๋ก ๋งŒ๋“ค์–ด์ฃผ์ž

 

product.js

์šฐ์„  ์—ฌ๊ธฐ๊นŒ์ง€ ํ•ด์ฃผ๊ณ  ์ž˜ ์ž‘๋™ํ•˜๋Š”์ง€ ์ค‘๊ฐ„ ํ™•์ธ

 

์ž˜ ์ž‘๋™ํ•˜๋А๊ตฐ .. ๊ทธ๋Ÿผ ์ด์ œ ๋ฐ์ดํ„ฐ๋ฅผ ์ง„์งœ๋กœ ๋„ฃ์–ด์ฃผ์ž

 

product.js

ajax~! ์ผํ•ด๋ผ~!

 

์ด๋ ‡๊ฒŒ ์ž…๋ ฅํ•ด์ฃผ๊ณ ,

์ž˜ ๋“ฑ๋ก๋˜๋Š”์ง€ ํ™•์ธํ•ด์ฃผ์ž

 

๋ฐ์ดํ„ฐ๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ๋“ค์–ด๊ฑฐ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

(DataBase ์ž˜ ํ™•์ธํ•˜๊ธฐ)

 

์ƒํ’ˆ ๋“ฑ๋ก์€ ์™„๋ฃŒํ–ˆ๋‹ค.

 

๋‹ค์Œ ๊ฒŒ์‹œ๋ฌผ์—์„œ๋Š” ์‚ฌ์ง„์„ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ์ž

(์Œ .. ์‚ฌ์‹ค ์ €๋ฒˆ์— ์‚ฌ์ง„ ๋“ฑ๋กํ•˜๊ธฐ ํ• ๋•Œ ..

์—„์ฒญ ๊ณ ์ƒํ–ˆ๋˜ ๊ธฐ์–ต์ด ์žˆ๋‹ค .. ๋ญ๋“  ์‰ฌ์šด๊ฒŒ ์—†๋‹ค๋งŒ์€ .. ๋งˆ์Œ์˜ ์ค€๋น„๋ฅผ ์ข€ ... ํ•˜๊ณ  ํ•˜๋Š”๊ฑธ๋กœ ...)