๊ฐœ๋ฐœ์ผ์ง€-10 [๐Ÿ ๊ฐ€๊ฒŒ ๋„๋ฉ”์ธ ๊ตฌํ˜„ ์ค€๋น„]

๊น€์„ฑ์ธยท2023๋…„ 9์›” 11์ผ
0

๐Ÿ  ๊ฐ€๊ฒŒ ์„œ๋น„์Šค(Stores)

0. ๊ธฐ๋Šฅ ์ •์˜

1-2) ๊ฐ€๊ฒŒ ๋“ฑ๋ก

  • ๊ฐ€๊ฒŒ ์ด๋ฆ„ ์ค‘๋ณต ํ™•์ธ
  • ๊ฐ€๊ฒŒ ๋“ฑ๋ก ์‹ ์ฒญ, ๊ฐ€๊ฒŒ ์ •๋ณด ์กฐํšŒ, ๊ฐ€๊ฒŒ ์ •๋ณด ์ˆ˜์ •
  • ์˜์—… ์ข…๋ฃŒ

1. ๊ฐ€๊ฒŒ ๋“ฑ๋ก ํ™”๋ฉด

ํŒ๋งค์ž์˜ ๊ฐ€๊ฒŒ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•˜๊ณ , ๊ด€๋ฆฌ์ž๊ฐ€ ์Šน์ธ ์ˆ˜๋ฝ์„ ํ•˜๋ฉด ๊ฐ€๊ฒŒ ๋“ฑ๋ก์ด ์™„๋ฃŒ๋œ๋‹ค!


2. ๋„๋ฉ”์ธ ์ •์˜(DB ํ…Œ์ด๋ธ”)

Stores ํ…Œ์ด๋ธ”

2-1) ํŒ๋งค์ž์˜ ๊ฐ€๊ฒŒ ์ž…๋ ฅ ์ •๋ณด

1. ๊ฐ€๊ฒŒ์˜ ๊ธฐ๋ณธ ์ •๋ณด๋“ค (๊ธฐ์—…๋ช…, ์ง€์ ๋ช…, ์—…์ข…)
2. ์‚ฌ์—…์ž์— ๊ด€๋ จ๋œ ์ด๋ฏธ์ง€ ์ •๋ณด๋“ค (ํœด๋Œ€๋ฒˆํ˜ธ, ์ด๋ฉ”์ผ, ์‚ฌ์—…์ž/์˜์—…์ž ๋“ฑ๋ก์ฆ, ํ†ต์žฅ์‚ฌ๋ณธ)
3. ๊ฐ€๊ฒŒ ์šด์˜ ์ •๋ณด๋“ค(ํœด๋ฌด์ผ, ์šด์˜ ์‹œ๊ฐ„, ๊ฐ€๊ฒŒ ์ „ํ™”๋ฒˆํ˜ธ, ๊ฐ€๊ฒŒ ์ฃผ์†Œ)
4. ๊ฐ€๊ฒŒ ๋กœ๊ณ , ๋งค์žฅ ๊ฐ„ํŒ ์‚ฌ์ง„
  • ์œ„์— ๊ฐ ๊ฐ€๊ฒŒ์— ๋Œ€ํ•œ ์ฃผ์†Œ๋ฅผ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•œ ๊ฒฝ/์œ„๋„ ์ขŒํ‘œ ๊ฐ’์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๊ฐ€๊ฒŒ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋Š” ํ…Œ์ด๋ธ”์„ ๊ตฌ์„ฑํ•˜์˜€๋‹ค.
  • ๊ฐ€๊ฒŒ Idx๋Š” ์ฃผ๋ฌธ ์ •๋ณด, ๋ฉ”๋‰ด, ์˜ค๋Š˜์˜ ๋ฉ”๋‰ด, ๋ฆฌ๋ทฐ, ์ฐœ ๋ชฉ๋ก ๋“ฑ ๋‹ค์–‘ํ•œ ํ…Œ์ด๋ธ”์˜ ์™ธ๋ž˜ํ‚ค๋กœ ์ฐธ์กฐ๋œ๋‹ค.

Category ํ…Œ์ด๋ธ”


3. ๊ธฐ๋Šฅ ํ๋ฆ„

  1. ๋กœ๊ทธ์ธ ํ›„, ๊ฐ€๊ฒŒ ๋“ฑ๋ก์ด ์•ˆ๋œ ์‚ฌ์šฉ์ž๋ผ๋ฉด ๊ฐ€๊ฒŒ ๋“ฑ๋ก ํŽ˜์ด์ง€๋กœ ์ด๋™
  2. ๊ฐ€๊ฒŒ ๋“ฑ๋ก์„ ์œ„ํ•œ ๋ชจ๋“  ์ •๋ณด๋ฅผ ์ž…๋ ฅ
  3. ๊ฐ€๊ฒŒ์˜ ์œ„์น˜ ์ขŒํ‘œ๋Š” ๋“ฑ๋ก์‹œ ๋ณด๋‚ธ ์ฃผ์†Œ๋ฅผ ํ†ตํ•ด์„œ ์™ธ๋ถ€ API ์š”์ฒญ
  4. ๊ฐ€๊ฒŒ ๋“ฑ๋ก ์š”์ฒญ ํ›„ ๊ด€๋ฆฌ์ž ์Šน์ธ ์‹œ, ๋ฉ”๋‰ด ๋“ฑ๋ก ๋ฐ ์›์‚ฐ์ง€ ๋“ฑ๋ก๊ณผ ๋–จ์ด๋ฉ”๋‰ด ๋“ฑ๋ก, ํŒ๋งค ์„œ๋น„์Šค ์ด์šฉ ๊ฐ€๋Šฅ

4. "/jat/stoers~"

  • ๋กœ๊ทธ์ธ ํ›„ ์„œ๋น„์Šค API๋Š” ๋ชจ๋‘ ๋กœ๊ทธ์ธ ์‹œ ๋ฐœํ–‰๋ฐ›์€ JWT ํ† ํฐ์„ ๋ฐ˜๋“œ์‹œ ํ—ค๋”์— ๋„ฃ์–ด์„œ ์ „์†กํ•˜์—ฌ์•ผํ•œ๋‹ค.
  • ๊ฐ€๊ฒŒ ์„œ๋น„์Šค๋Š” ์š”์ฒญ ํ›„ ๋ฐ˜๋“œ์‹œ ๊ด€๋ฆฌ์ž์˜ ์Šน์ธ ์ดํ›„ ๋ณธ๊ฒฉ์ ์ธ ํŒ๋งค์ž ์„œ๋น„์Šค๋ฅผ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ๊ฐ€๊ฒŒ์—์„œ ๋“ฑ๋ก์ฆ๊ณผ ํ†ต์žฅ์‚ฌ๋ณธ, ๊ฐ„ํŒ์‚ฌ์ง„ ๋“ฑ์€ ๋ชจ๋‘ ์ด๋ฏธ์ง€ ํŒŒ์ผ๋กœ ์„œ๋ฒ„์— ์ „์†กํ•œ๋‹ค.
- ๊ฐ€๊ฒŒ ๋“ฑ๋ก ํ•˜๊ธฐ ์ „ ์ƒํ˜ธ๊ฐ€ ๊ฒน์น˜์ง€ ์•Š๋„๋กœ ๊ฐ€๊ฒŒ ์ด๋ฆ„ ์ค‘๋ณต ํ™•์ธ
- ํŒ๋งค์ž์˜ ๊ฐ€๊ฒŒ ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•˜๊ธฐ ์œ„ํ•ด DB์— ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ€๊ฒŒ ์ •๋ณด ์‹ ์ฒญ
- ๋“ฑ๋ก ์™„๋ฃŒ ํ›„ ์„œ๋น„์Šค ์‚ฌ์šฉ ๋„์ค‘ ๊ฐ€๊ฒŒ์ •๋ณด๋ฅผ ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•œ ์กฐํšŒ, ์ˆ˜์ • ๊ธฐ๋Šฅ

๋“ฑ์ด ํ•ด๋‹น ๋„๋ฉ”์ธ์—์„œ ์š”๊ตฌํ•˜๋Š” ๊ธฐ๋Šฅ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์—ฌ API๋ฅผ ์ž‘์„ฑํ•˜์˜€๋‹ค.


5. ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

jatdauree/src/main/java/com/jatdauree/src/domain/web/store

  • StoreController.java : ํŒ๋งค์ž์˜ ๊ฐ€๊ฒŒ ๋„๋ฉ”์ธ์š”์ฒญ API ์ปจํŠธ๋กค๋Ÿฌ ํด๋ž˜์Šค
  • service/StoreService.java : ์ปจํŠธ๋กค๋Ÿฌ๋กœ ์š”์ฒญ ๋“ค์–ด์˜จ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ๋กœ์ง์ฒ˜๋ฆฌ ํด๋ž˜์Šค
  • dao/SellerDao.java : ํŒ๋งค์ž์˜ ๊ฐ€๊ฒŒ ๋„๋ฉ”์ธ DB ์•ก์„ธ์Šค ํด๋ž˜์Šค (JdbcTemplate)

5-1) StoreController.java

  • /jat/stores ๋ผ๋Š” ๋„๋ฉ”์ธ์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ์ปจํŠธ๋กค๋Ÿฌ
  • @RestController๋ฅผ ํ†ตํ•ด Spring Controller์— ๋Œ€ํ•œ Bean ์ฃผ์ž…์„ ํด๋ž˜์Šค์— ์™„๋ฃŒํ•˜๊ณ ,
  • @Autowired๋ฅผ ํ†ตํ•ด์„œ ํ”„๋กœ์ ํŠธ ๋‚ด์— ์กด์žฌํ•˜๋Š” Service ํด๋ž˜์Šค(Stores ๋„๋ฉ”์ธ ์„œ๋น„์Šค, Jwt ์ธ๊ฐ€ ํ† ํฐ ์„œ๋น„์Šค)์˜ ๋นˆ ์ฃผ์ž…ํ•˜์˜€๋‹ค.
  • ๋นˆ์ฃผ์ž…์„ ์œ„ํ•ด ๊ฐ ํด๋ž˜์Šค์— ๋Œ€ํ•œ ํ•„๋“œ๋ฅผ ์ƒ์„ฑ์ž๋ฅผ ํ†ตํ•ด์„œ ์ฑ„์›Œ์ฃผ์—ˆ๋‹ค.

5-2) StoreService.java

  • ํŒ๋งค์ž ๊ฐ€๊ฒŒ ์„œ๋น„์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์ „, ๊ฐ€๊ฒŒ ๋“ฑ๋ก์— ์ด๋ฏธ์ง€๋ฅผ ์ฒ˜๋ฆฌํ•ด์•ผํ•˜๋ฏ€๋กœ AWS S3 ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•˜์˜€๋‹ค.
  • ์นด์นด์˜ค ์œ„์น˜ API๋ฅผ ์ด์šฉํ•˜๊ธฐ ์œ„ํ•œ ํด๋ž˜์Šค๋กœ LocationValue ํด๋ž˜์Šค๋ฅผ ํ•„๋“œ๋กœ ์„ ์–ธํ•˜์—ฌ ์‚ฌ์šฉํ•˜์˜€๋‹ค.
  • ์นด์นด์˜ค ์œ„์น˜ API ํฌ์ŠคํŒ…, S3 ๊ด€๋ จ ํฌ์ŠคํŒ…

5-3) StoreDao.java

  • JdbcTemplate ํด๋ž˜์Šค๋ฅผ ํ†ตํ•ด์„œ DB์•ก์„ธ์Šค๋ฅผ ํ•˜์˜€๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€