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

๊ด€๋ฆฌ์ž :: ์ƒํ’ˆ ๋ฆฌ์ŠคํŠธ ์ถœ๋ ฅ

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

์ƒํ’ˆ ๋“ฑ๋กํ•˜๋Š”๋ฐ ์€๊ทผ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ ธ๋‹ค..
(์‚ฌ์ง„ ๋†ˆ .. ๋•Œ๋ฌธ์— .. ์–ด๋ ค์›Œ .....)

์•„์ด๊ณ  ์ด๋ฟŒ๋‹ค ํ‚คํ‚ค

์ด๋ฏธ์ง€๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ๋“ค์–ด๊ฐ€๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ์œผ๋‹ˆ,
์ด์ œ ์•„๋ž˜์— ๋“ฑ๋กํ•œ ์ƒํ’ˆ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ถœ๋ ฅํ•ด๋ณด์ž !!

* ์ด๋ฒˆ์—๋Š” ์‘์šฉ ver.
: ๋ฆฌ์ŠคํŠธ ์œ„์— ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•ด์ฃผ์ž!

ProductMapper.xml

product_info ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ๋“ค๊ณ ์˜ค๋Š”๋ฐ, (์—ฌ๊ธฐ๊นŒ์ง€๋Š” ์ €๋ฒˆ์— ์ง„ํ–‰ํ–ˆ๋˜ ๊ฒƒ๊ณผ ๋˜‘๊ฐ™๋‹ค.)
where ์ ˆ์„ ์ด์šฉํ•ด์„œ ์กฐ๊ฑด์„ ์ถ”๊ฐ€ํ•ด์ค˜์•ผ์ง€!
์ƒํ’ˆ ์ด๋ฆ„์„ ๊ฒ€์ƒ‰ํ•ด์„œ ๊ฐ€์ ธ์˜ฌ ๊ฒƒ์ธ๋ฐ
์—ฌ๊ธฐ์„œ ๊ฒ€์ƒ‰ํ•˜๋Š” ๊ฐ’์„ keyword๋ผ๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋ฐ›์•„์ค„ ๊ฒƒ์ด๋‹ค.
์ผ์น˜ํ•˜๋Š” ๊ฐ’์ด ์•„๋‹Œ ํฌํ•จํ•˜๋Š” ๊ฐ’์„ ๊ฐ€์ ธ์˜ฌ ๊ฒƒ์ด๋‹ˆ LIKE๋กœ ๋ฐ›์•„์ค€๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ์„ ํƒํ•ด์„œ ๊ทธ ์นดํ…Œ๊ณ ๋ฆฌ์— ํฌํ•จ๋˜์–ด์žˆ๋Š” ์ƒํ’ˆ ์ •๋ณด๋“ค์„ ๊ฐ€์ ธ์˜ฌ ๊ฒƒ์ธ๋ฐ,
์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ์„ ํƒํ•˜์ง€ ์•Š์•˜์„ ๊ฒฝ์šฐ์—๋Š” ์ „์ฒด ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์˜ฌ์ˆ˜ ์žˆ๋„๋ก if์ ˆ์„ ์ถ”๊ฐ€ํ•ด์ฃผ์—ˆ๋‹ค.

ProductMapper.java

Mapper.java๋„ ์ž‘์„ฑํ•ด์ฃผ๊ณต

ProductService.java


keyword๋ฅผ ์ž…๋ ฅํ•˜์ง€ ์•Š์•˜์„ ๊ฒฝ์šฐ์—๋Š” ๋ชจ๋“ ๊ฐ’์ด ๋‚˜์˜ฌ์ˆ˜ ์žˆ๋„๋ก %% ์œผ๋กœ ์ฒ˜๋ฆฌํ•ด์ฃผ๊ณ 
keyword๋ฅผ ์ž…๋ ฅํ–ˆ์„ ๊ฒฝ์šฐ์—๋Š” ๊ทธ keyword๋ฅผ ํฌํ•จํ•˜๋Š” ๊ฐ’์„ ๊ฐ€์ง€๋Š” ๊ฐ’์„ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋„๋ก
์•ž ๋’ค๋กœ %๋ฅผ ๋„ฃ์–ด์ค€๋‹ค !

๊ทธ๋ฆฌ๊ณ  ์ด์ œ API๋กœ ๊ฐ€๋ณผ๊นŒ์š”

ProductAPiController.java

๊ฐ’์„ ์กฐํšŒํ•˜๋Š” GetMapping์„ ์‚ฌ์šฉํ•ด์ค€๋‹ค.

API๊นŒ์ง€ ํ•ด์คฌ์œผ๋‹ˆ, ์ด์ œ jsp์—์„œ ๊ฒ€์ƒ‰ํ•ด์ค„ ๊ณต๊ฐ„์ด๋ž‘, ๋ฆฌ์ŠคํŠธ๋ฅผ ์ถœ๋ ฅํ•ด์ค„ ๊ณต๊ฐ„์„ ๋งŒ๋“ค์–ด ์ฃผ์ž

Product.jsp

๊ทธ๋Ÿผ ์ด์ œ js์—์„œ ajax๋กœ ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ฐ€์ ธ์™€์ฃผ์ž

product.js

๋ฆฌ์ŠคํŠธ๊ฐ€ ์ž˜ ์ถœ๋ ฅ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.


+ ์—ฌ๊ธฐ์„œ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ณด๋ฉด,
์นดํ…Œ๊ณ ๋ฆฌ, ์—…์ฒด๋ช…, ๋ฐฐ์†ก์‚ฌ๋ฅผ seq๊ฐ’์œผ๋กœ ๋“ค๊ณ ์˜จ๋‹ค.
์ด ์•„์ด๋“ค์„ seq๊ฐ’์ด ์•„๋‹Œ ์ด๋ฆ„์œผ๋กœ ๋“ค๊ณ ์˜ค๋„๋ก ํ•ด์ฃผ์ž

์šฐ์„  ์ฒซ๋ฒˆ์งธ, ์นดํ…Œ๊ณ ๋ฆฌ ๋จผ์ € ์ง„ํ–‰ํ•ด์ฃผ์ž
์ด ์•„์ด๋Š” seq๊ฐ’์œผ๋กœ ์ด๋ฆ„์„ ๋“ค๊ณ ์™€์ค˜์•ผํ•œ๋‹ค. mapper๋จผ์ € ์ฐจ๋ก€๋Œ€ํ˜ธ ํ•ด๋ณด์ž

CategoryMapper.xml
CategoryMapper.java

์นดํ…Œ๊ณ ๋ฆฌ ์ด๋ฆ„์„ ๊ฐ€์ง€๊ณ  ์˜ฌ ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์–ด์ฃผ๊ณ ,
์นดํ…Œ๊ณ ๋ฆฌ ์ด๋ฆ„์„ ๋ฐ›์•„์ค„์ˆ˜ ์žˆ๋Š” ๋ณ€์ˆ˜๋ฅผ ProductVO์— ์ƒ์„ฑํ•ด์ค€๋‹ค.

ProductVO.java

๊ทธ๋ฆฌ๊ณ  CategoryMapper ์—์„œ ์นดํ…Œ๊ณ ๋ฆฌ ์ด๋ฆ„์„ ๊ฐ€์ง€๊ณ  ์˜ค๋„๋ก ๋งŒ๋“ค์–ด์ฃผ์—ˆ์œผ๋‹ˆ,
๊ทธ๊ฒƒ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ProductService์— CategoryMapper๋ฅผ Autowiredํ•ด์ค€๋‹ค.

ProductService.java

์นดํ…Œ๊ณ ๋ฆฌ seq๋ฅผ ๋ฐ›์•„์™€์„œ CategoryMapper๋ฅผ ํ†ตํ•ด ์นดํ…Œ๊ณ ๋ฆฌ ์ด๋ฆ„์„ ๊ฐ€์ ธ์˜ค๊ณ 
๊ทธ ๊ฐ€์ ธ์˜จ ์ด๋ฆ„์„ ์•„๊นŒ ProductVO์—์„œ ๋งŒ๋“ค์–ด์ค€ ๋ณ€์ˆ˜ category_name์— ๋„ฃ์–ด์ค€๋‹ค!

(์‚ฌ์‹ค ์ด๋ถ€๋ถ„์ด ๋„ˆ๋ฌดํ—ท๊ฐˆ๋ฆฌ๊ณ  ๋ชจ๋ฅด๊ฒ ์–ด์„œ ์˜ˆ์ „์— ์‚ฌ์šฉํ–ˆ๋˜ ์ฝ”๋“œ๋ฅผ ๋งŽ์ด ์ฐธ๊ณ ํ•ด์„œ ์ž‘์„ฑํ–ˆ์ง€๋งŒ ....... ๊ทธ๋ž˜๋„ ํ—ท๊ฐˆ๋ ค ...)

๊ทธ๋Ÿผ ์ด์ œ js์—์„œ ์ถœ๋ ฅํ•ด์ฃผ๋Š” ๊ฐ’์„ category_name์œผ๋กœ ๋ณ€๊ฒฝํ•ด์ฃผ๊ณ 
category_name์„ ์ž˜ ๋ฐ›์•„์˜ค๋Š”์ง€ ํ™•์ธํ•ด๋ณด์ž

product.js

pi_cate_seq๋กœ ๋ฐ›์•„์˜ค๋˜ ์• ๋ฅผ category_name์œผ๋กœ ๋ณ€๊ฒฝํ•ด์ฃผ์—ˆ๋‹ค.

์นดํ…Œ๊ณ ๋ฆฌ ์ด๋ฆ„์„ ์ž˜ ๋ฐ›์•„์™€์„œ ์ถœ๋ ฅํ•ด์ฃผ๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ๋‹ค !!
๊ทธ๋Ÿผ ์ด์ œ ์—…์ฒด๋ช…(ํŒ๋งค์ž)์™€ ๋ฐฐ์†ก์‚ฌ(๋ฐฐ์†ก์—…์ฒด) ๋˜ํ•œ seq๊ฐ’์ด ์•„๋‹Œ, ์ด๋ฆ„์œผ๋กœ ๋ฐ›์•„์˜ฌ์ˆ˜ ์žˆ๋„๋ก ์ž‘์—…ํ•ด๋ณด์ž

์—…์ฒด๋ช…(ํŒ๋งค์ž)

SellerMapper.xml
SellerMapper.java
ProductVO.java

ProductService.java
ProductService.java
product.js

ํŒ๋งค์ž๋„ ์™„์„ฑ~!


๋ฐฐ์†ก์‚ฌ (๋ฐฐ์†ก ์—…์ฒด)

DeliveryMapper.xml
DeliveryMapper.java
ProductVO.java
ProductService.java
ProductService.java
product.js

๋ฐฐ์†ก ์—…์ฒด๊นŒ์ง€ ์ด๋ฆ„์œผ๋กœ ์ถœ๋ ฅํ•˜๋Š” ๊ฒƒ์„ ์™„๋ฃŒํ–ˆ๋‹ค!

++ ์ถ”๊ฐ€๋กœ ๋ฆฌ์ŠคํŠธ์— ์‚ฌ์ง„๋„ ๊ฐ™์ด ์ถœ๋ ฅํ•ด์ฃผ์ž

product.js

js์—์„œ img๋ฅผ ๋„ฃ์–ด์ฃผ์—ˆ๋‹ค.


์งœ์ž”~ ์ด๋ป์ง€๋Š”๊ตฐ ...

์•„์ด ์˜ˆ๋ป๋ผ ....

๋‹ค์Œ ๊ฒŒ์‹œ๋ฌผ์—๋Š” ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•ด์ฃผ์ž!