728x90
๋ฐ˜์‘ํ˜•

์ „์ฒด ๊ธ€ 1179

[HTML] <label> ํƒœ๊ทธ +

ํƒœ๊ทธ๋ž€? - ํƒœ๊ทธ๋Š” ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค(UI) ์š”์†Œ๋ฅผ ์„ค๋ช…ํ•  ๋•Œ ์‚ฌ์šฉ - ๋ณดํ†ต ํƒœ๊ทธ์™€ ํ•จ๊ป˜ ์“ฐ์ธ๋‹ค. - for ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ์š”์†Œ์™€ ๊ฒฐํ•ฉํ•  ์ˆ˜ ์žˆ๋‹ค. - for ์†์„ฑ๊ฐ’์€ ๊ฒฐํ•ฉํ•˜๊ณ ์ž ํ•˜๋Š” ์š”์†Œ์˜ id ์†์„ฑ๊ฐ’๊ณผ ๊ฐ™์•„์•ผ ํ•œ๋‹ค. ( name๋„ ๊ฐ€๋Šฅ! ) - ๊ฒฐํ•ฉํ•˜๊ณ ์ž ํ•˜๋Š” ์š”์†Œ ๋‚ด๋ถ€์— ์š”์†Œ๋ฅผ์œ„์น˜์‹œํ‚ค๋ฉด for ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋”๋ผ๋„ ํ•ด๋‹น ์š”์†Œ์™€ ๊ฒฐํ•ฉ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. + ์ถ”๊ฐ€ : labelํƒœ๊ทธ์˜ for ๋ผ๋Š” ์†์„ฑ์„ ์‚ฝ์ž…ํ•ด์„œ ์˜ id๊ฐ’๊ณผ ์ผ์น˜ ์‹œํ‚ค๋ฉด ์ฒดํฌ ๋ฐ•์Šค์˜ ํด๋ฆญ ๋ฒ”์œ„๋ฅผ ์ฆ๊ฐ€์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. label์— ์ ์€ ๋ฌธ์ž๋ฅผ ๋ˆŒ๋Ÿฌ๋„ input ์•ˆ์— ์ปค์„œ๊ฐ€ ๋“ค์–ด๊ฐ„๋‹ค !!!!!! checkbox์™€ ๊ฐ™์ด ๋ˆŒ๋Ÿฌ์•ผํ•˜๋Š” ๋ถ€๋ถ„์ด ์ž‘์€๊ฒฝ์šฐ ๋”์šฑ ์œ ์šฉํ•˜๊ฒŒ ์“ฐ์ธ๋‹ค. Ex) ์—ฌ๋Ÿฌ๋ถ„์˜ ๋‚˜์ด๋Œ€๋ฅผ ๊ณจ๋ผ๋ณด์„ธ์š”. ๋‚จ์ž 20๋Œ€

Front/HTML 2022.01.07

[Mybatis] parameter๋ฅผ Mapํ˜•์‹์œผ๋กœ ๋ณด๋‚ด๊ธฐ

ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’์ธ int b_no๋Š” Board๋ชจ๋ธ ํŒŒ์ผ์˜ ๋ณ€์ˆ˜์ด๊ณ , String m_id๋Š” ์„ธ์…˜์—์„œ ๊ฐ€์ ธ์˜ค๋Š” id๊ฐ’์ธ๋ฐ ๋‘ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋‹ค ๋„˜๊ฒจ์ค˜์•ผํ•ด์„œ Map ์— ๋‹ด์•„์„œ ๋ณด๋‚ด๊ธฐ๋กœ ํ•œ๋‹ค. Map accept = new HashMap(); ์•ž์˜ ๊ฐ’์€ String ์ด๊ณ , ๋’ค์˜ ๊ฐ’์€ int/ String ๋‘๊ฐ€์ง€๋ผ์„œ Object๋กœ ๋„ฃ์–ด์ฃผ์—ˆ๋‹ค. ์„œ๋ธŒ์ฟผ๋ฆฌ ๋งคํ•‘ ํŒŒ์ผ์—์„œ parameterType ์„ Map์œผ๋กœ ์„ค์ •ํ•ด์ฃผ์—ˆ๋‹ค.

Error 2022.01.06

[Spring] No mapping found for HTTP request with URI ์—๋Ÿฌ

์—๋Ÿฌ๋‚ด์šฉ No mapping found for HTTP request with URI [/project/requestList.do] in DispatcherServlet with name 'appServlet' ํ•ด๊ฒฐ๊ณผ์ • ๊ฒ€์ƒ‰ํ•ด๋ณด๋‹ˆ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ํ™•์ธ ๋ฐฉ๋ฒ•์ด ๋‚˜์™€์žˆ์–ด์„œ 1. web.xml ์—์„œ DispatcherServlet ์„ ์–ธ์ด ์ œ๋Œ€๋กœ ๋˜์–ด์žˆ๋Š”์ง€ ํ™•์ธ 2. servlet-context.xml ์— ์„ค์ • ํ™•์ธ : ์ด ์“ฐ์—ฌ์žˆ๋Š”์ง€ 3. ์ปจํŠธ๋กค๋Ÿฌ์—์„œ URL Mapping์ด ์ž˜ ๋˜์–ด์žˆ๋Š”์ง€ ํ™•์ธ ๋ช‡๋ฒˆ์„ ํ™•์ธํ•ด๋ณด๊ณ ๋„ ๋ฌธ์ œ๊ฐ€ ์—†๋Š”๋ฐ ์™œ ์•ˆ๋ผ์ง€ ํ–ˆ๋Š”๋ฐ .... requestList.do๋กœ ์š”์ฒญํ•ด๋†“๊ณ  ์ปจํŠธ๋กค๋Ÿฌ์—์„œ url mapping์ด request๋กœ๋งŒ ์ ํ˜€์ ธ์žˆ์—ˆ๋‹ค....... ์ •๋ง ์ปดํ“จํ„ฐ๋Š” ์‹œํ‚จ๋Œ€๋กœ ์ž˜ํ•˜๋Š”๋ฐ ํ•ญ์ƒ ๋‚ด๊ฐ€ ์ œ๋Œ€๋กœ..

JAVA/SPRING 2022.01.06

[GitHub] gitignoreํŒŒ์ผ ๋งŒ๋“ค๊ธฐ

github๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ด€๋ฆฌํ•˜๊ฒŒ ๋˜๋ฉด ์—ฌ๋Ÿฌ๋ช…์ด์„œ commit์„ ํ•˜๊ฒŒ๋œ๋‹ค. ์ด๋Ÿด ๋•Œ ์„ค์ •ํŒŒ์ผ๋“ค๊นŒ์ง€ commitํ•˜๊ฒŒ ๋˜๋ฉด ๊ฐ์ž PC์˜ ์„ค์ •์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ํ›„์— ์‹คํ–‰ํ• ๋•Œ ๋ฌธ์ œ๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋ถˆํ•„์š”ํ•œ ํŒŒ์ผ๋“ค์€ commit๋Œ€์ƒ์—์„œ ์ œ์™ธ์‹œํ‚ค๊ธฐ ์œ„ํ•ด '.gitignore' ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด์„œ .gitํŒŒ์ผ์ด ์ƒ์„ฑ๋œ ํŒŒ์ผ์•ˆ์— ๋„ฃ์–ด์ฃผ๊ธฐ๋กœํ•œ๋‹ค. https://www.toptal.com/developers/gitignore gitignore.io Create useful .gitignore files for your project www.toptal.com ์ด ์‚ฌ์ดํŠธ์— ๋“ค์–ด๊ฐ€์„œ ์ž์‹ ์˜ ์šด์˜์ฒด์ œ, ์‚ฌ์šฉ์–ธ์–ด, ์‚ฌ์šฉํˆด์„ ์ž…๋ ฅํ•˜์—ฌ ์ƒ์„ฑ์„ ๋ˆ„๋ฅธ๋‹ค. # Created by https://www.toptal.com/develop..

GIT 2022.01.05

[Spring][Annotation] @RequestParam & @PathVariable

์ฝ”๋“œ๋ฅผ ๋ณด๋‹ค๊ฐ€ @RequestParam ๊ณผ @PathVariable์˜ ์ฐจ์ด๊ฐ€ ์ •ํ™•ํ•˜๊ฒŒ ์•Œ๊ณ ์‹ถ์–ด์„œ ๊ฒ€์ƒ‰ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ์œ„์˜ ์ฝ”๋“œ๋กœ ์„ค๋ช…์„ ํ•˜๋ฉด @RequestParam - ์ฒซ๋ฒˆ์งธ ์‚ฌ์ง„์—์„œ @RequestParam ์–ด๋…ธํ…Œ์ด์…˜์˜ ๊ด„ํ˜ธ ์•ˆ์˜ "file"์€ ํŒŒ๋ผ๋ฏธํ„ฐ ๋ช…์„ ๊ฐ€์ ธ์˜จ ๊ฒƒ์ด๋‹ค. - URL์— ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๊ฐ™์ด ์ „๋‹ฌ ํ• ๋•Œ upload.do?file=file.jsp ์ด๋Ÿฐ์‹์œผ๋กœ ์ „๋‹ฌํ•  ๋•Œ ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค. @PathVariable - ์œ„์˜ @PathVariable ์–ด๋…ธํ…Œ์ด์…˜ ์˜†์˜ 'bno'์€ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’์„ ๊ฐ€์ ธ์˜จ ๊ฒƒ์ด๋‹ค. - URL์— ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๊ฐ™์ด ์ „๋‹ฌ ํ• ๋•Œ / replyList/ bno/ 1{bno} ์ด๋Ÿฐ์‹ ( rest๋ฐฉ์‹ )์œผ๋กœ ์ „๋‹ฌํ•  ๋•Œ ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค.

JAVA/SPRING 2022.01.04

[MyBatis] #{} ๊ณผ ${} ์˜ ์ฐจ์ด

#{ } - ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ String ํ˜•ํƒœ๋กœ ๋“ค์–ด์™€์„œ 'ํŒŒ๋ผ๋ฏธํ„ฐ' ํ˜•ํƒœ๊ฐ€ ๋œ๋‹ค. ex) id๊ฐ’์ด aaa์ด๋ฉด id = #{id} ๊ฐ€ id='aaa' ๋กœ ๋“ค์–ด๊ฐ„๋‹ค. - ์ฟผ๋ฆฌ ์ฃผ์ž…์„ ์˜ˆ๋ฐฉํ•  ์ˆ˜ ์žˆ์–ด ๋ณด์•ˆ์ธก๋ฉด์—์„œ ์œ ๋ฆฌํ•˜๋‹ค. ${ } - ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ๋ฐ”๋กœ ์ถœ๋ ฅ๋œ๋‹ค. - ํ•ด๋‹น ์ปฌ๋Ÿผ์˜ ์ž๋ฃŒํ˜•์— ๋งž์ถฐ ํŒŒ๋ผ๋ฏธํ„ฐ ์ž๋ฃŒํ˜•๋„ ๋ณ€๊ฒฝ๋œ๋‹ค. - ์ฟผ๋ฆฌ ์ฃผ์ž…์„ ์˜ˆ๋ฐฉํ•  ์ˆ˜ ์—†์–ด ๋ณด์•ˆ์ธก๋ฉด์—์„œ๋Š” ๋ถˆ๋ฆฌํ•˜๋‹ค. ๊ทธ๋ฆฌํ•˜์—ฌ ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ์„ ์ „๋‹ฌํ•  ๋•Œ๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ๋‚ซ๋‹ค. - ํ…Œ์ด๋ธ”์ด๋‚˜ ์ปฌ๋Ÿผ๋ช…์„ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ „๋‹ฌํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ์ฟผ๋ฆฌ์ฃผ์ž… (SQL Injection)์ด๋ž€? - ์•…์˜์ ์ธ ์‚ฌ์šฉ์ž๊ฐ€ ๋ณด์•ˆ์ƒ์˜ ์ทจ์•ฝ์ ์„ ์ด์šฉํ•˜์—ฌ, ์ž„์˜์˜ SQL ๋ฌธ์„ ์ฃผ์ž…ํ•˜๊ณ  ์‹คํ–‰๋˜๊ฒŒ ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ๋น„์ •์ƒ์ ์ธ ๋™์ž‘์„ ํ•˜๋„๋ก ์กฐ์ž‘ํ•˜๋Š” ํ–‰์œ„. - ์ธ์ ์…˜ ๊ณต๊ฒฉ์€ OWA..

JAVA/SPRING 2022.01.03

[HTML] <label> ํƒœ๊ทธ

- ํƒœ๊ทธ๋Š” ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค(UI) ์š”์†Œ์˜ ๋ผ๋ฒจ(label)์„ ์ •์˜ํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. - ์š”์†Œ๋Š” for ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ์š”์†Œ์™€ ๊ฒฐํ•ฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋•Œ ์š”์†Œ์˜ for ์†์„ฑ๊ฐ’์€ ๊ฒฐํ•ฉํ•˜๊ณ ์ž ํ•˜๋Š” ์š”์†Œ์˜ id ์†์„ฑ๊ฐ’๊ณผ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ( ์š”์†Œ๋ฅผ ๊ฒฐํ•ฉํ•˜๊ณ ์ž ํ•˜๋Š” ์š”์†Œ ๋‚ด๋ถ€์— ์œ„์น˜์‹œํ‚ค๋ฉด for ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋”๋ผ๋„ ํ•ด๋‹น ์š”์†Œ์™€ ๊ฒฐํ•ฉ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ) - ์ด๋Ÿฌํ•œ ์š”์†Œ๋Š” ๋ธŒ๋ผ์šฐ์ €์— ์˜ํ•ด ์ผ๋ฐ˜์ ์ธ ํ…์ŠคํŠธ๋กœ ๋žœ๋”๋ง๋˜์ง€๋งŒ, ์‚ฌ์šฉ์ž๊ฐ€ ๋งˆ์šฐ์Šค๋กœ ํ•ด๋‹น ํ…์ŠคํŠธ๋ฅผ ํด๋ฆญํ•  ๊ฒฝ์šฐ ์š”์†Œ์™€ ์—ฐ๊ฒฐ๋œ ์š”์†Œ๋ฅผ ๊ณง๋ฐ”๋กœ ์„ ํƒํ•  ์ˆ˜ ์žˆ์–ด ์‚ฌ์šฉ์ž์˜ ํŽธ์˜์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. - ์š”์†Œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์š”์†Œ : , , , , , ,

Front/HTML 2022.01.03

[Spring][Spring Security]BCryptPasswordEncoder

BCryptPasswordEncoder์ด๋ž€? - ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ(Spring Seurity) ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ์ œ๊ณตํ•˜๋Š” ํด๋ž˜์Šค ์ค‘ ํ•˜๋‚˜๋กœ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์•”ํ˜ธํ™”ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ๊ฐ€์ง„ ํด๋ž˜์Šค ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ๋ž€? ์ž๋ฐ” ์„œ๋ฒ„ ๊ฐœ๋ฐœ์„ ์œ„ํ•ด ํ•„์š”๋กœ ํ•œ ์ธ์ฆ, ๊ถŒํ•œ ๋ถ€์—ฌ ๋ฐ ๊ธฐํƒ€ ๋ณด์•ˆ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ (ํด๋ž˜์Šค์™€ ์ธํ„ฐํŽ˜์ด์Šค ๋ชจ์ž„) - PasswordEncoder ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ํด๋ž˜์Šค - BCryptPasswordEncoder๋Š” BCrypt ํ•ด์‹ฑ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ธ์ฝ”๋”ฉ ํ•ด์ฃผ๋Š” ๋ฉ”์„œ๋“œ์™€ ์‚ฌ์šฉ์ž์— ์˜ํ•ด ์ œ์ถœ๋œ ๋น„๋ฐ€๋ฒˆํ˜ธ์™€ ์ €์žฅ์†Œ์— ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๋น„๋ฐ€๋ฒˆํ˜ธ์™€์˜ ์ผ์น˜์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•ด์ฃผ๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณต - ์ƒ์„ฑ์ž์˜ ์ธ์ž ๊ฐ’(verstion, strength, SecureRandom instance)์„ ..

JAVA/SPRING 2022.01.03

[spring][mybatis] ๋ถ€์ ํ•ฉํ•œ ์—ด ์œ ํ˜• error

์‹ฌ๊ฐ: ๊ฒฝ๋กœ [/mbti]์˜ ์ปจํ…์ŠคํŠธ ๋‚ด์˜ ์„œ๋ธ”๋ฆฟ [appServlet]์„(๋ฅผ) ์œ„ํ•œ Servlet.service() ํ˜ธ์ถœ์ด, ๊ทผ๋ณธ ์›์ธ(root cause)๊ณผ ํ•จ๊ป˜, ์˜ˆ์™ธ [Request processing failed; nested exception is org.springframework.jdbc.UncategorizedSQLException: Error setting null for parameter #1 with JdbcType OTHER . Try setting a different JdbcType for this parameter or a different jdbcTypeForNull configuration property. Cause: java.sql.SQLException: ๋ถ€์ ํ•ฉํ•œ ์—ด..

JAVA/SPRING 2021.12.31
728x90
๋ฐ˜์‘ํ˜•