๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป develop

[spring] ์Šคํ”„๋ง์œผ๋กœ ๋กœ๊ทธ์ธ ๋ฐ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๊ธฐ๋Šฅ ๋งŒ๋“ค๊ธฐ

jcowwk 2024. 4. 11. 18:47

์Šคํ”„๋ง์œผ๋กœ ๋กœ๊ทธ์ธ ๋ฐ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๊ธฐ๋Šฅ ๋งŒ๋“ค๊ธฐ


์Šคํ”„๋ง ๊ณต๋ถ€ํ•˜๋ฉด์„œ ์ •๋ฆฌํ•œ ๋‚ด์šฉ ์ž…๋‹ˆ๋‹ค !

์˜ค๋ฅ˜๊ฐ€ ์žˆ๋‹ค๋ฉด ๋Œ“๊ธ€๋กœ ๋‚จ๊ฒจ์ฃผ์„ธ์š” :)

 

1. ๋“ค์–ด๊ฐ€๊ธฐ ์ „

2. Controller

3. Service

4. joinForm.html

 

https://jcowwk.tistory.com/123

 

[spring] ์Šคํ”„๋ง์œผ๋กœ ํšŒ์›๊ฐ€์ž… ๊ธฐ๋Šฅ ๋งŒ๋“ค๊ธฐ

์Šคํ”„๋ง์œผ๋กœ ํšŒ์›๊ฐ€์ž… ๊ธฐ๋Šฅ ๋งŒ๋“ค๊ธฐ ์Šคํ”„๋ง ๊ณต๋ถ€ํ•˜๋ฉด์„œ ์ •๋ฆฌํ•œ ๋‚ด์šฉ ์ž…๋‹ˆ๋‹ค ! ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋‹ค๋ฉด ๋Œ“๊ธ€๋กœ ๋‚จ๊ฒจ์ฃผ์„ธ์š” :) 1. ๋กœ์ปฌ์„œ๋ฒ„ ์—ฐ๊ฒฐ ๋ฐ ํŒŒ์ผ ๊ตฌ์„ฑ 2. Controller 3. DTO 4. Entity 5. Service 6. Repository ๋ณธ ํฌ

jcowwk.tistory.com

 

๋ณธ ํฌ์ŠคํŒ…์€ ์œ„์˜ ํฌ์ŠคํŒ…๊ณผ ์ด์–ด์ง‘๋‹ˆ๋‹ค.


1. ๋“ค์–ด๊ฐ€๊ธฐ ์ „

์•ž์„  ํฌ์ŠคํŒ…์—์„œ๋Š” ๋กœ๊ทธ์ธ ํผ ๋งŒ๋“ค๊ธฐ, ํšŒ์›๊ฐ€์ž… ์ฐฝ์œผ๋กœ ์ด๋™, ๊ฐ€์ž…์™„๋ฃŒ๋ฅผ ๋ˆŒ๋ €์„ ๋•Œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ •๋ณด ์ €์žฅ๊นŒ์ง€ ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ํšŒ์›๊ฐ€์ž… ์‹œ์— id์˜ ์ค‘๋ณต ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๊ณ  id๊ฐ€ ์ค‘๋ณต๋˜์ง€ ์•Š์„ ๊ฒฝ์šฐ์—๋งŒ ๊ฐ€์ž…์™„๋ฃŒ๊ฐ€ ๋˜๋„๋ก ํ•˜๊ณ , ๋กœ๊ทธ์ธ ์‹œ์— ์•„์ด๋””์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ์ผ์น˜ํ•˜๋Š”์ง€ ํŒ๋‹จํ•˜์—ฌ ๋กœ๊ทธ์ธํ•˜๋Š” ๊ธฐ๋Šฅ๊นŒ์ง€ ๋‹ค๋ค„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

2. Controller

- ํšŒ์›๊ฐ€์ž… ์‹œ id ์ค‘๋ณต ์ฒดํฌ controller

 

์ „์˜ ํฌ์ŠคํŒ…๊ณผ ๋น„๊ตํ•˜์—ฌ controller์—์„œ ๋‹ฌ๋ผ์ง„ ๋ถ€๋ถ„์€ ์ด ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค.

์ „์—๋Š” ํ•จ์ˆ˜์˜ ๋งค๊ฐœ๋ณ€์ˆ˜ ๋ถ€๋ถ„์ด @ModelAttribute MemberDTO memberDTO๋กœ ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค.

 

๊ทธ ๋ถ€๋ถ„์„ ๋˜‘๊ฐ™์ด ๋”ฐ๋ผํ•˜์…จ๊ฑฐ๋‚˜ ์™œ ์ด๋ ‡๊ฒŒ ์“ด์ง€ ๋ชจ๋ฅด๊ฒ ๋‹ค ํ•˜์‹œ๋Š” ๋ถ„์€ ์ง€๊ธˆ๋ถ€ํ„ฐ ํ•˜๋Š” ์„ค๋ช…์„ ์ž˜ ๋“ค์–ด์ฃผ์„ธ์š”.

์ €๋„ ํ—ท๊ฐˆ๋ ธ์œผ๋‹ˆ๊นŒ์š”ใ…Žใ…Ž

 

๋งค๊ฐœ๋ณ€์ˆ˜ ๋ถ€๋ถ„์ด @ModelAttribute MemberDTO memberDTO ํ˜•์‹์œผ๋กœ ๋œ ํ•จ์ˆ˜๋„ ์žˆ๊ณ ,

@RequestParam("memberEmail") String memberEmail๋กœ ํ˜•์‹์œผ๋กœ ๋œ ํ•จ์ˆ˜๋„ ๋ณด์…จ์„ ๊ฒ๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ์‹ถ์„ ๋•Œ GET ๋ฐฉ์‹์œผ๋กœ ์š”์ฒญ์„ ๋ฐ›์•˜๋ƒ, POST ๋ฐฉ์‹์œผ๋กœ ์š”์ฒญ์„ ๋ฐ›์•˜๋ƒ์— ๋”ฐ๋ผ์„œ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿฌ๋ฉด GET๊ณผ POST ๋ฐฉ์‹์€ ์–ด๋–ค ์ฐจ์ด๊ฐ€ ์žˆ๊ธฐ์— ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋‹ค๋ฅด๊ฒŒ ํ•˜๋ƒ ๋ผ๋Š” ์˜๋ฌธ์ด ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ„๋‹จํžˆ ์„ค๋ช…ํ•˜์ž๋ฉด POST๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ์ •๋ณด๋ฅผ ํผ์— ๋‹ด์•„์„œ ์ฃผ๊ณ , GET์€ url์˜ ๋์— ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’์œผ๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.

์œ„์˜ ์ฝ”๋“œ๋Š” GET ๋ฐฉ์‹์œผ๋กœ ์š”์ฒญ์„ ๋ฐ›์•˜๊ธฐ ๋•Œ๋ฌธ์— @RequestParam("memberEmail") String memberEmail๋ฅผ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

 

- ๋กœ๊ทธ์ธ ์‹œ ์•„์ด๋”” ๋น„๋ฐ€๋ฒˆํ˜ธ ์ค‘๋ณต ์ฒดํฌ controller

 

์œ„์˜ ์ฝ”๋“œ์™€ ๋น„์Šทํ•˜๊ฒŒ loginCheck()์—์„œ ์•„์ด๋””์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ์ผ์น˜ํ•˜๋ฉด true, ์•„๋‹ˆ๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ํ•ด์„œ ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค.

3. Service

๋‹ค์Œ์€ controller์—์„œ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ด์„œ ๋‹ด๋Š” ๋ณ€์ˆ˜์˜ ์œ ํ˜•์ด ๋‹ฌ๋ผ์กŒ๊ธฐ ๋•Œ๋ฌธ์— service ํด๋ž˜์Šค ์•ˆ์˜ ๋ฉ”์†Œ๋“œ๋„ ๋ณ€๊ฒฝํ•ด์ฃผ๊ฒ ์Šต๋‹ˆ๋‹ค.

 

- ํšŒ์›๊ฐ€์ž… ์‹œ id ์ค‘๋ณต ์ฒดํฌ service

 

์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ์•„์ด๋””๊ฐ€ ์ด๋ฏธ ์กด์žฌํ•˜๋ฉด true๋ฅผ return ํ•˜๊ณ , ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด false๋ฅผ return ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

 

- ๋กœ๊ทธ์ธ ์‹œ ์•„์ด๋”” ๋น„๋ฐ€๋ฒˆํ˜ธ ์ค‘๋ณต ์ฒดํฌ service

 

์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ์•„์ด๋””๊ฐ€ ์กด์žฌํ•˜๋ฉด ํ•ด๋‹น entity๋ฅผ dto๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ์™€ ์ผ์น˜ํ•˜๋Š”์ง€ ๋น„๊ตํ•˜๊ณ , ์ผ์น˜ํ•˜๋ฉด true ๋ถˆ์ผ์น˜ํ•˜๋ฉด false๋ฅผ return ํ•ฉ๋‹ˆ๋‹ค.

 

4. joinForm.html

์˜ค๋Š˜์˜ ํ•ต์‹ฌ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค.

 

- html ๋ถ€๋ถ„

 

์ „์˜ ํฌ์ŠคํŒ…์—์„œ๋Š” ํšŒ์›๊ฐ€์ž… ์‹œ idCheck()๋ฅผ ํ•˜๋ฉด id์˜ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ํ•ด์ฃผ๋Š” ๋ถ€๋ถ„์€ ์กด์žฌํ–ˆ์œผ๋‚˜, ์ด๋ฏธ ์กด์žฌํ•˜์—ฌ๋„ ๊ฐ€์ž…์€ ๊ฐ€๋Šฅํ–ˆ์Šต๋‹ˆ๋‹ค.

์•„์ด๋””์˜ ์ค‘๋ณต ์—ฌ๋ถ€๋ฅผ ์ฒดํฌ๋ฅผ ํ•˜์ง€ ์•Š๊ณ  ๊ฐ€์ž…์™„๋ฃŒ๋ฅผ ๋ˆŒ๋Ÿฌ๋„ ๊ฐ€์ž…์ด ๋˜๋„๋ก ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๊ทธ ๋ถ€๋ถ„์„ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•  ๊ฒƒ์ธ๊ฐ€์— ๋Œ€ํ•ด์„œ ๊ณ ๋ฏผํ•ด๋ดค์Šต๋‹ˆ๋‹ค.

 

์šฐ์„  ์ฒ˜์Œ๋ถ€ํ„ฐ ์•„์ด๋”” ์ฒดํฌ๋ฅผ ํ•˜๊ณ  ๋‹ค์Œ ์นธ์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

ํ™•์ธ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์„œ ์ด๋ฏธ ์ค‘๋ณต๋œ ์•„์ด๋””์ธ์ง€, ์•„๋‹Œ์ง€ ํ™•์ธํ•˜๊ธฐ ์ „๊นŒ์ง€ ๋น„๋ฐ€๋ฒˆํ˜ธ์™€ ์ด๋ฆ„์€ ์ž…๋ ฅํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

 

์‚ฌ์šฉ์ž์˜ ์ž…์žฅ์—์„œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋‚˜ ์ด๋ฆ„์„ ๋จผ์ € ์ž…๋ ฅํ•˜๋ ค๊ณ  ํ–ˆ๋Š”๋ฐ ์นธ์ด ๋ˆŒ๋Ÿฌ์ง€์ง€ ์•Š์œผ๋ฉด ๋‹นํ™ฉํ•  ๊ฐ€๋Šฅ์„ฑ์„ ๊ณ ๋ คํ•˜์—ฌ

์นธ์„ ํด๋ฆญํ–ˆ์„ ๋•Œ readonly๊ฐ€ true์ผ ๊ฒฝ์šฐ ์•„์ด๋”” ํ™•์ธ ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๋ฅผ ๋„์šฐ๋Š” ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

 

์•„์ด๋””๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ์ž…๋ ฅํ•œ ์•„์ด๋””๊ฐ€ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋ฉด ์‚ฌ์šฉํ•  ๊ฒƒ์ธ์ง€ ๋ฌป๋Š” ๊ฒฝ๊ณ  ์ฐฝ์„ ๋„์šด ํ›„,

ํ™•์ธ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ๋น„๋ฐ€๋ฒˆํ˜ธ์™€ ์ด๋ฆ„์„ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๊ณ  ์•„์ด๋”” ์นธ์€ readonly true๋กœ ๋ฐ”๋€Œ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

์ด๋Ÿฐ ๋กœ์ง์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด๋ดค์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ๋ณด๋‹ค ๋” ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์ด ์žˆ์„ํ…๋ฐ ์ถ”ํ›„์— ์œ ์ง€๋ณด์ˆ˜ํ•  ๋•Œ ํ•œ๋ฒˆ ๋” ๊ณ ๋ คํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

- script ๋ถ€๋ถ„์˜ idCheck()

 

- script ๋ถ€๋ถ„์˜ checkInputs(), idCheckMessage()


๋‹ค์Œ ํฌ์ŠคํŒ…์—์„œ ๋งŒ๋‚˜์‹œ๋‹ค ~