Banner

My Tech Blog (์ดํด๋ฆฝ์Šค)

์˜ค๋Š˜์˜ ๋ช…์–ธ
" ์ธ์ƒ์˜ ์„ ํƒ์— ํƒ€์ธ์˜ ๋ง์€ ํ•„์š”์—†์–ด! "
- ์€ํ•˜์ฒ ๋„ 999 (-)
Spring ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ์„œ๋น„์Šค ๋ ˆ์ด์–ด์—์„œ ์ธํ„ฐํŽ˜์ด์Šค(*Mgr.java)์™€ ๊ตฌํ˜„ ํด๋ž˜์Šค(*MgrImpl.java)๊ฐ€ ๋ถ„๋ฆฌ๋˜์–ด ์žˆ์–ด, F3(Open Declaration)๋ฅผ ๋ˆŒ๋Ÿฌ๋„ ์ธํ„ฐํŽ˜์ด์Šค๋กœ๋งŒ ์ด๋™ํ•˜๋Š” ๋ถˆํŽธํ•จ์ด ์žˆ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด Open Implementation ๊ธฐ๋Šฅ์„ ํ‚ค๋ณด๋“œ ๋‹จ์ถ•ํ‚ค(Ctrl + F3)๋กœ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌ ํ•ด ๋ณธ๋‹ค. ๐Ÿ”น ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•: Open Implementation ๋‹จ์ถ•ํ‚ค ์„ค์ •ํ•˜๊ธฐ 1. Eclipse ํ™˜๊ฒฝ์„ค์ • Window โ†’ Preferences (๋˜๋Š” Alt + W, P)2. ์ขŒ์ธก ๋ฉ”๋‰ด์—์„œ General โ†’ Keys ์„ ํƒ3. "Open Implementation" ๋‹จ์ถ•ํ‚ค ์ง€์ • type filter text์— Open Implementation ์ž…๋ ฅ Binding(๋‹จ์ถ•..
Java ํ”„๋กœ์ ํŠธ๋ฅผ ์„ค์ •ํ•  ๋•Œ ํ”„๋กœ์ ํŠธ ์šฐํด๋ฆญํ•˜๋ฉด Build Path๊ฐ€ ๋‚˜์˜จ๋‹ค. ์—ฌ๊ธฐ์„œ ์šฐ๋ฆฌ๊ฐ€ Oracle JDBC ๋“œ๋ผ์ด๋ฒ„(ojdbc8.jar) ๊ฐ™์€ ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ๋‹ค. ๋˜ MySQL Connection(mysql-connector-java.jar)์ด๋ผ๋“ ์ง€ Getter์™€ Setter์„ ์ž๋™์ƒ์„ฑํ•˜๋Š” Lombok(lombok.jar) ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋“ฑ๋ก ํ•ด ๋ณธ ์ ์ด ์žˆ์„ ๊ฒƒ์ด๋‹ค.  ํ•„์ž๋Š” ํ•ญ์ƒ ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์„ ์ถ”๊ฐ€ํ• ๋•Œ Classpath, Module Path ์ค‘ ์–ด๋””์— ์ถ”๊ฐ€ํ•ด์•ผ ํ•˜๋Š”์ง€ ํ—ท๊ฐˆ๋ ธ๊ธฐ ๋•Œ๋ฌธ์— ์ด ๊ธ€์„ ์ž‘์„ฑํ•œ๋‹ค. Buildpath๋Š” ์ž๋ฐ”์—์„œ ์ค‘์š”ํ•œ ๊ฐœ๋…์ด๋ฉฐ, ์–ด๋–ค ๊ฒƒ์„ ๋“ฑ๋กํ•ด์•ผ ํ•˜๋Š”์ง€๋Š” ํ”„๋กœ์ ํŠธ ํ™˜๊ฒฝ๊ณผ ์‚ฌ์šฉ ๊ธฐ์ˆ ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง„๋‹ค. ์ด๋ก ์ ์ธ ์„ค๋ช…์€ ๊ฑด๋„ˆ  ๋›ฐ๊ณ  ์–ธ์ œ ModulePath..
โš ๏ธ ๋ฌธ์ œ* ์ œ์ด์œ ๋‹›์€ ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ์ฝ˜์†”์—์„œ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๊ณ  JUnit ํƒญ์—์„œ ํ™•์ธํ•œ๋‹ค. * ์›์น™์ ์œผ๋กœ๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์„ ๋”ฐ๋ฅด๋ฉด ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•  ์ˆ˜์žˆ๋‹ค.JUnit ํ…Œ์ŠคํŠธ ์‹คํ–‰ (Run As โ†’ JUnit Test) Eclipse ํ•˜๋‹จ "JUnit" ํƒญ ํด๋ฆญ ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ ํ™•์ธ (์„ฑ๊ณตํ•˜๋ฉด ๋…น์ƒ‰, ์‹คํŒจํ•˜๋ฉด ๋นจ๊ฐ„์ƒ‰)ํ•˜์ง€๋งŒ ์ œ์ด์œ ๋‹› ํƒญ์—์„œ๋Š” ๊ฒฐ๊ณผ๊ฐ€ ๋œจ์ง€ ์•Š๊ณ   ์ฝ˜์†”์— ์•„๋ž˜์™€ ๊ฐ™์€ ์—๋Ÿฌ ๋ฉ”์„ธ์ง€๊ฐ€ ๋œจ๋Š” ํ˜„์ƒjava.lang.NoClassDefFoundError: org/junit/platform/engine/ConfigurationParameters๐Ÿง ์›์ธ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ ์ด์œ ๋Š” ํ™˜๊ฒฝ์„ค์ •์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค.JUnit์„ ์ถ”๊ฐ€ํ• ๋•Œ Modulepath์— ์ถ”๊ฐ€ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.โšก ํ•ด๊ฒฐ๋ฒ•์ œ์ด์œ ๋‹› ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ Cl..
โš ๏ธ๋ฌธ์ œ๋กœ์ปฌ ์ €์žฅ์†Œ์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์›๊ฒฉ์œผ๋กœ ํ‘ธ์‰ฌํ•˜๋Š” ๊ณผ์ •์—์„œ ํŒจํ‚ค์ง€ ์•ˆ์— ์žˆ๋Š” ํŒŒ์ผ๋“ค์ด ๋‹ค ๋‚ ์•„๊ฐ”๋‹ค.git restore ๋ช…๋ น์–ด๋กœ ํŒŒ์ผ์„ ๋ณต๊ตฌํ–ˆ๋Š”๋ฐ ์ดํด๋ฆฝ์Šค ํŒจํ‚ค์ง€ ์ต์Šคํ”Œ๋กœ๋Ÿฌ์—๋Š” ๋ณต๊ตฌํ•œ ํŒŒ์ผ์ด ์•ˆ ๋œจ๋Š” ๋ฌธ์ œ  ๐Ÿ’ก ํ•ด๊ฒฐ๋ฒ•์ดํด๋ฆฝ์Šค์—์„œ git restore๋กœ ๋ณต๊ตฌํ•œ ํŒŒ์ผ์ด ํŒจํ‚ค์ง€ ์ต์Šคํ”Œ๋กœ๋Ÿฌ์— ๋‚˜ํƒ€๋‚˜์ง€ ์•Š๋Š” ์ด์œ ๋Š” ์ดํด๋ฆฝ์Šค๊ฐ€ ํŒŒ์ผ ๋ณ€๊ฒฝ์„ ๊ฐ์ง€ํ•˜์ง€ ๋ชปํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.  ํŒจํ‚ค์ง€๋ช…์„ ํด๋ฆญ(Ctrl๋กœ ์ผ๊ด„ ํด๋ฆญ ๊ฐ€๋Šฅ) > F5 ๋ˆŒ๋Ÿฌ์„œ Refresh๊ทธ๋ž˜๋„ ์•ˆ ๋ณด์ด๋ฉด Project > Clean...
1. ์ž๋™ ์ž„ํฌํŠธ & ์ •๋ฆฌ ๊ด€๋ จ ๋‹จ์ถ•ํ‚คCtrl + Shift + O : ์ž๋™ ์ž„ํฌํŠธ (Organize Imports) โ†’ ํ•„์š”ํ•œ import ์ถ”๊ฐ€ ๋ฐ ๋ถˆํ•„์š”ํ•œ import ์ •๋ฆฌCtrl + Shift + F : ์ฝ”๋“œ ์ž๋™ ์ •๋ ฌ (Format Code) โ†’ ์ฝ”๋“œ ์Šคํƒ€์ผ์— ๋งž์ถฐ ์ •๋ฆฌCtrl + Shift + S : ๋ชจ๋“  ํŒŒ์ผ ์ €์žฅCtrl + / : ํ•œ ์ค„ ์ฃผ์„ ์ถ”๊ฐ€ ๋ฐ ์ œ๊ฑฐCtrl + Shift + / : ์—ฌ๋Ÿฌ ์ค„์„ ์„ ํƒํ•œ ํ›„ ์ „์ฒด๋ฅผ ๋ธ”๋ก ์ฃผ์„(/* */)์œผ๋กœ ๊ฐ์‹ธ๊ธฐCtrl + Shift + \ : ๋ธ”๋ก ์ฃผ์„ ํ•ด์ œ (/* */ ์‚ญ์ œ)2. ์ฝ”๋“œ ์ด๋™ ๊ด€๋ จ ๋‹จ์ถ•ํ‚คCtrl + Click : ๋ณ€์ˆ˜, ๋ฉ”์„œ๋“œ, ํด๋ž˜์Šค ์ •์˜๋กœ ์ด๋™F3 : ์„ ์–ธ๋œ ๊ณณ์œผ๋กœ ์ด๋™ (Open Declaration)Ctrl + O : ํ˜„์žฌ ํด๋ž˜..
1. ์ฟผ๋ฆฌ์ŠคํŠธ๋ง์ด๋ž€? URL์˜ ๋’ค์— ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ํ•จ๊ป˜ ์ œ๊ณตํ•˜๋Š” ๊ฐ€์žฅ ๋‹จ์ˆœํ•œ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ๋ฐฉ๋ฒ•์ด๋‹ค. ์›น๊ฐœ๋ฐœ์—์„œ ์›นํŽ˜์ด์ง€๋‚˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ  GET๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•  ๋•Œ ์“ฐ์ธ๋‹ค. POST๋ฐฉ์‹์€ ๋ณด์•ˆ์ˆ˜์ค€์ด ์ƒ๋Œ€์ ์œผ๋กœ ๋†’์•„์„œ URL ์— ๋„˜์–ด๊ฐ€๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ํ‘œ์‹œ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.  URL์˜ ๋์— ?๋กœ ์‹œ์ž‘ํ•˜๊ณ , ๊ทธ ๋’ค์— ํ‚ค-๊ฐ’ ์Œ์ด ์ด์–ด์ง€๋Š” ๊ตฌ์กฐ์ด๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„์— ์ถ”๊ฐ€์ ์ธ ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•œ๋‹ค. ๊ฒ€์ƒ‰์ฟผ๋ฆฌ๋‚˜ ํ•„ํ„ฐ๋ง์— ์‚ฌ์šฉ๋œ๋‹ค.  ๋„ค์ด๋ฒ„ ๊ฒ€์ƒ‰์ฐฝ์— '๋ฑ์Šค'๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ณ  ์—”ํ„ฐ ์น˜๋ฉด ์ผ์–ด๋‚˜๋Š” ์ผ โ–ผ URL ์— ?๊ฐ€ ์ƒ๊ธฐ๋ฉด์„œ ๋‚ด๊ฐ€ ์ž…๋ ฅํ•œ ๊ฒ€์ƒ‰์–ด '๋ฑ์Šค'๊ฐ€ ๋์— ์ถ”๊ฐ€๋œ๋‹ค ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๊ตฌ๊ธ€ ๊ฒ€์ƒ‰์ฐฝ์— '์†ํฅ๋ฏผ'์„ ์ž…๋ ฅํ•˜๊ณ  ์—”ํ„ฐ๋ฅผ ์น˜๋ฉด?์•„๋ž˜์ฒ˜๋Ÿผ ์ฃผ์†Œ์ฐฝ์—์„œ url ๋’ค์— ? ์™€ ๊ฐ์ข… ๋ฐ์ดํ„ฐ๊ฐ€ ๋ถ™๋Š”๋‹ค.2. ๊ตฌ์กฐhttps://www...
1. ์„œ๋ก ๊ทธ๋™์•ˆ ๋‚ด๊ฐ€ ์•Œ๋˜ ์ดํด๋ฆฝ์Šค์—์„œ jsp ํŒŒ์ผ์ด ๋“ค์–ด๊ฐ€๋Š” ํด๋”๋Š” /src/main/webapp ์ธ๋ฐ ๋‹ค๋ฅธ ๋ธ”๋กœ๊ทธ๋ฅผ ๋ณด๋‹ค๊ฐ€ webContent๋กœ ๋˜์–ด ์žˆ๋Š” ๊ฑธ ๋ฐœ๊ฒฌํ•ด์„œ ์ฐจ์ด์ ์ด ๊ถ๊ธˆํ•ด ์ฐพ์•„๋ณด๊ฒŒ ๋๋‹ค. 2.  ๊ณตํ†ต์  WebContent์™€ /src/main/webapp๋Š” ๋‘ ๊ฐ€์ง€ ๋‹ค๋ฅธ ๊ตฌ์กฐ์—์„œ ๊ฐ™์€ ์—ญํ• ์„ ํ•˜๋Š” ํด๋”์ด๋‹ค. 3. ์ฐจ์ด์ ๊ธฐ์กด Eclipse ๋ฐฉ์‹์—์„œ๋Š” WebContent ํด๋”๊ฐ€ ์›น ๋ฆฌ์†Œ์Šค๋ฅผ ํฌํ•จํ•˜๋Š” ํด๋”์˜€๊ณ ,์ตœ์‹  Maven/Gradle ๋ฐฉ์‹์—์„œ๋Š” /src/main/webapp๊ฐ€ ํ•ด๋‹น ์—ญํ• ์„ ๋Œ€์‹ ํ•œ๋‹ค.  Why?Maven, Gradle ๊ตฌ์กฐ์—์„œ๋Š” ์†Œ์Šค ์ฝ”๋“œ(src)์™€ ์›น ๋ฆฌ์†Œ์Šค(webapp)๊ฐ€ ๋‚˜๋‰˜์–ด์„œ /src/main ์•„๋ž˜์— ๋”ฐ๋กœ ๋“ค์–ด๊ฐ€๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.  โ–ถ WebContent์˜ˆ์ „ ๋ฐฉ์‹์˜ Dyna..
๋ฌธ์ œ1. web.xml ์ด ์ฝ”๋“œ ์—๋””ํ„ฐ ํ˜•์‹์œผ๋กœ ์—ด๋ฆฌ์ง€ ์•Š์•„์„œ ์ˆ˜์ •์ด ์–ด๋ ค์šด ๋ฌธ์ œ2. Maven Project ์—์„œ pom.xml ํŒŒ์ผ์ด Maven POM Editor ๋กœ ์—ด๋ฆฌ๋Š” ๋ฌธ์ œ Eclipse Dynamic Web Project์—์„œ `jsp`ํŒŒ์ผ ๋˜๋Š” `xml` ํŒŒ์ผ์„ ์—ด์—ˆ๋Š”๋ฐ ํ…์ŠคํŠธ๋ฅผ ํŽธ์ง‘ ํ•  ์ˆ˜ ์žˆ๋Š” ์—๋””ํ„ฐ๋กœ ์—ด๋ฆฌ์ง€ ์•Š๊ณ  ์•„๋ž˜์™€ ๊ฐ™์ด Node ๋ž‘ Content ๊ตฌ์กฐ๋กœ ์—ด๋ฆฌ๋Š” ๋ฌธ์ œ ๋˜ Maven ํ”„๋กœ์ ํŠธ์—์„œ pom.xml ํŒŒ์ผ์ด  xml ํ…์ŠคํŠธ ์—๋””ํ„ฐ ๋Œ€์‹  Maven POM Editor๋กœ ์—ด๋ฆฌ๋Š” ํ˜„์ƒ ๋‚˜๋Š” ์ด๊ฒŒ ๋” ์•Œ์•„๋ณด๊ธฐ ํž˜๋“ค๊ณ  ๋ช…ํ™•ํ•˜์ง€ ์•Š๋‹ค๊ณ  ์ƒ๊ฐํ•ด์„œ xml ์ฝ”๋“œ๋ฅผ ์ง์ ‘ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์„ ์„ ํ˜ธํ•œ๋‹ค.  ์•„๋ž˜์™€ ๊ฐ™์ด ์ผ๋ฐ˜ text Editor ๋กœ ์—ด๋ ค์„œ ํƒœ๊ทธ ์ธ์‹์ด ์•ˆ ๋˜๋Š” ๊ฒฝ์šฐ๋„ ๊ฐ™์€ ํ•ด๊ฒฐ๋ฒ•์„ ์“ฐ๋ฉด..
์ƒ๋‹จ์œผ๋กœ