MapleStory Finger Point

๐ŸŸค JAVA 102

๐Ÿ’ข[JSP] JDBC vs Mybatis (๋งˆ์ด๋ฐ”ํ‹ฐ์Šค)

JDBC์˜ ๋ถˆํŽธํ•จ…JDBC๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ row level๋ถ€ํ„ฐ ORM์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ์žฅ์ ์„ ๊ฐ€์ง„๋‹ค.ํ•˜์ง€๋งŒ, ๋„ˆ๋ฌด ๋งŽ์€ ์ฝ”๋“œ๊ฐ€ ๋ฐ˜๋ณต๋˜๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค.Persistence Framework๋ž€?์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ์™€ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ(์˜ˆ: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค) ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ๊ด€๋ฆฌํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋‚˜๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.Persistence Framework๋Š” ๋‘ ์ข…๋ฅ˜๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค. ๋งˆ์ด๋ฐ”ํ‹ฐ์Šค๋ž€?MyBatis ๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง€์ •ํ•œ SQL, ๊ณ ๊ธ‰ ๋งคํ•‘์„ ์ง€์›ํ•˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค.MyBatis ๋Š” JDBC ์ฝ”๋“œ์™€ ์ˆ˜๋™์œผ๋กœ ์…‹ํŒ…ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ์™€ ๊ฒฐ๊ณผ ๋งคํ•‘์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.MyBatis ๋Š” ๋ณต์žกํ•œ JDBC์ฝ”๋“œ๋ฅผ ๊ฑท์–ด๋‚ด๋ฉฐ ๊น”๋”ํ•œ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.MyBatis ๋Š”  DAO๊ณ„์ธต์„ ๋Œ€์‹ ํ•ฉ๋‹ˆ๋‹ค.MyBatis ๋Š” ๊ธฐ์กด DAO์˜ Interfa..

[JSP] Connection Pool (์—ฐ๊ฒฐ ํ’€)

[ Connection Pool (์—ฐ๊ฒฐ ํ’€) ]๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ํ’€์€ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์š”์ฒญ์ด ๋ฐœ์ƒํ•˜๋ฉด ์žฌ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ(๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ˆ˜ํ–‰ ๋Šฅ๋ ฅ ํ–ฅ์ƒ)(๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ์ปค๋„ฅ์…˜ ๊ฐ์ฒด๋ฅผ ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด๋‘”๋‹น) - ์—ฐ๊ฒฐ ํ’€์—์„œ ํ•˜๋‚˜์˜ ์—ฐ๊ฒฐ์ด ์ƒ์„ฑ๋˜์–ด ํ’€์— ๋ฐฐ์น˜๋˜๋ฉด ์ƒˆ๋กœ์šด ์—ฐ๊ฒฐ์ด ๋งŒ๋“ค์–ด์ง€์ง€ ์•Š๋„๋ก ์žฌ์‚ฌ ์šฉํ•˜์ง€๋งŒ, ๋งŒ์•ฝ ๋ชจ๋“  ์—ฐ๊ฒฐ์ด ์‚ฌ์šฉ ์ค‘์— ์žˆ์œผ๋ฉด ์ƒˆ๋กœ์šด ์—ฐ๊ฒฐ์ด ๋งŒ๋“ค์–ด์ ธ ํ’€์— ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค.- ์—ฐ๊ฒฐ ํ’€์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ์„ ์œ„ํ•ด ๊ธฐ๋‹ค๋ฆฌ๋Š” ์‹œ๊ฐ„์„ ์ถ•์†Œ์‹œ์ผœ์ค๋‹ˆ๋‹ค [ Data Source ] DB ์— ์ด์šฉ๋˜๋Š” url , id , pw, DriverClass ๋ฅผ ๋ฏธ๋ฆฌ ์ •์˜ํ•ด๋†“๊ณ  ์‚ฌ์šฉํ•˜๋Š” ๊ฐ์ฒด    [ Connection Pool (์—ฐ๊ฒฐ ํ’€)  CODE ์ž‘์„ฑ ] [ Connection Pool (์—ฐ๊ฒฐ ํ’€) ์‚ฌ์šฉ ]

[JSP] MVC 2

[ MVC 1 ]  [ MVC 2 ] MVC2 ํŒจํ„ด ๊ตฌ์กฐํ™”  ๋ชจ๋“  ๊ฒƒ์€ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ๊ฑฐ์ณ๊ฐ„๋‹ค!Client → Controller → Service (Service pl ) → DAO → (DTO) → DB ๋ชจ๋ธ(Model)์€ ๋น„์ฆˆ๋‹ˆ์Šค์™€ ๊ด€๋ จ๋œ ๋กœ์ง๋งŒ ์ฒ˜๋ฆฌํ•˜๋ฉด ๋˜๋ฉฐ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์ผ ํ™”๋ฉด์ด๋‚˜ ์š”์ฒญ์˜ ํ๋ฆ„ ์ œ์–ด์— ๋Œ€ํ•ด์„œ๋Š” ์ „ํ˜€ ์ฒ˜๋ฆฌํ•˜ ์ง€ ์•Š์œผ๋ฉฐ๋ทฐ(View)๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ์•Œ๋งž์€ ํ™”๋ฉด์„ ๋ณด์—ฌ์ฃผ๋Š” ์—ญํ• ๋งŒ ์ˆ˜ํ–‰ํ•  ๋ฟ, ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์ด๋‚˜ ์š”์ฒญ ํ๋ฆ„ ์ œ์–ด ๋“ฑ์„ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค (ํ™”๋ฉด์— ๋Œ€ํ•œ ์ฝ”๋“œ๋งŒ HTML ) ์ปจํŠธ๋กค๋Ÿฌ(Controller)๋Š” ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์— ๋Œ€ํ•ด์„œ ์•Œ๋งž์€ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜๊ณ  ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์ค„ ๋ทฐ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. mvc ๊ฐ€ ์ •ํ™•ํžˆ ๋‚˜๋ˆ ์ ธ์„œ ์ผํ•จํ™•์žฅ์ž ํŒจํ„ด ์œผ๋กœ ๋ฐ”๊พผ๋‹ค..do ๋กœ ๋๋‚˜๋Š” ๊ฒƒ๋“ค์€ ์„œ๋ธ”๋ฆฟ์œผ๋กœ ์‹คํ–‰co..

[JSP] JSTL (JSP Standard Tag Library)

[ JSTL (JSP Standard Tag Library) ]์ž๋ฐ” ์ œ์–ด๋ฌธ์„ ํƒœ๊ทธํ™” ์‹œํ‚จ๋‹ค. => ์ž๋ฐ” ์ฝ”๋“œ๊ฐ€ ๋‹ค ์‚ฌ๋ผ์ง„๋‹ค.( JSP์˜ ๊ฒฝ์šฐ HTMLํƒœ๊ทธ์™€ ๊ฐ™์ด ์‚ฌ์šฉ๋˜์–ด ์ „์ฒด์ ์ธ ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ์ด ๋–จ์–ด์ง.)๋ณ„๋„์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„ค์น˜ ํ•ด์ค˜์•ผํ•จ java // ์กฐ๊ฑด๋ฌธ ์˜ˆ์‹œ if ((Integer) request.getAttribute("age") >= 18) { request.setAttribute("status", "You are an adult."); } else { request.setAttribute("status", "You are not an adult."); }  jsp  fruits ..

[JSP] EL (Expression Language)

[ EL  (Expression Language) ]์ž๋ฐ”์ฝ”๋“œ๋ฅผ ํ‘œํ˜„์‹์„ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ๋‹ค (๋ณต์žกํ•œ ์ฝ”๋“œ๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•ด์คŒ)JSP์—์„œ ์ €์žฅ๊ฐ์ฒด๋ฅผ ์ถœ๋ ฅํ• ๋•Œ ์Šคํฌ๋ฆฝํŒ…์„ ์ „ํ˜€ ์“ฐ์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋Š” ๊ธฐ์ˆ ์ผ์ข…์˜ ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด๋กœ ์ž๋ฃŒ ํƒ€์ž…, ์ˆ˜์น˜ ์—ฐ์‚ฐ์ž, ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž, ๋น„๊ต ์—ฐ์‚ฐ์ž ๋“ฑ์„ ์ œ๊ณตํ•˜๋ฉฐ ํ‘œํ˜„์‹์„ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ ์Šต๋‹ˆ๋‹ค.  ------->   ${value} ๋กœ ์‚ฌ์šฉ๊ฐ€๋Šฅ    Hello, ! Your age is: fruits = (List) request.getAttribute("fruits"); for (String fruit : fruits) { %>   el Hello, ${userName}..

[JSP] MVC 1 ๊ตฌ์กฐ

[PreparedStatement ๋ž€]์ฟผ๋ฆฌ๋ฌธ์„ ์‹คํ–‰ํ•˜๋Š” ๊ธฐ๋Šฅ (Statement ๊ฐ์ฒด๋ฅผ ๋Œ€์‹ ํ•œ๋‹ค.)๊ฐ’ ๋ณ€ํ™˜์„ ์ž๋™์œผ๋กœ ํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•จPreparedStatement ๊ฐ์ฒด๋Š” ๊ฐ’์„ ์ง€์ •ํ•  ๋•Œ ๊ฐ’ ๋ถ€๋ถ„์„ ๋ฌผ์Œํ‘œ(?)๋กœ ์ฒ˜๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ„๋‹จํžˆ ๊ฐ’์„ ์ง€์ •๊ฐ€๋Šฅ์ฒซ๋ฒˆ์งธ ๋ฌผ์Œํ‘œ์˜ ์ธ๋ฑ์Šค๋Š” 1์ด๋‹ค ์ดํ›„ ๋ฌผ์Œํ‘œ๋Š” ์ˆœ์„œ๋Œ€๋กœ ๊ฐ’์ด 1์”ฉ ์ฆ๊ฐ€ํ•œ๋‹ค.  [Model ์— ๋Œ€ํ•˜์—ฌ]   DAO : db ์ ‘๊ทผ,์ž‘์—… ํด๋ž˜์ŠคVO (DTO) : ๊ฐ’์„ ๋“ค๊ณ ๋‹ค๋‹ˆ๋Š” ํด๋ž˜์Šค   [DAO (Data Access Object) ํด๋ž˜์Šค]DB ์ ‘๊ทผ,์ž‘์—… ํด๋ž˜์Šค DAO ๋ถˆํ•„์š”ํ•˜๊ฒŒ ์—ฌ๋Ÿฌ๊ฐœ ๋งŒ๋“ค ํ•„์š”๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ์ฒด๊ฐ€ ํ•œ๊ฐœ๋งŒ ์ƒ์„ฑ๋˜๋„๋ก ์‹ฑ๊ธ€ํ†ค ํ˜•์‹์œผ๋กœ ์„ค๊ณ„ํ•œ๋‹ค.๋‚˜์ž์‹ ์˜ ๊ฐ์ฒด๋ฅผ 1๊ฐœ ์ƒ์„ฑ , private ๋ถ™์ž„ private static Department..

[JSP] JDBC (Java Database Connectivity)

[ JDBC ๋ž€? ] Java Database Connectivity์˜ ์•ฝ์ž๋กœ ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์—์„œ SQL๋ฌธ์„ ์‹คํ–‰ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ JAVA API [ ์—ฐ๊ฒฐ API connector ] MYSQL , ORACLE ์— ๋”ฐ๋ผ ์ „์šฉ JDBC ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. [ SQL ์‹คํ–‰ ํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ• ] 1. MyBatis (Spring์—์„œ ํ•™์Šต) 2. ํ•˜์ด๋ฒ„๋„ค์ดํŠธ JPA ๋“ฑ [ ๊ธฐ๋ณธ ์…‹ํŒ… ] ๋”๋ณด๊ธฐ์˜ค๋ผํด hr์Šคํ‚ค๋งˆ ์ดˆ๊ธฐํ™”0. ์ ‘์† ํ•ด์ œ.1. Run sql commandline์ ‘์†=> conn sys as sysdba2. @?/demo/schema/human_resources/hr_main.sql3. HR4. users5. temp6. 12347. C:/oraclexe/app/oracle/product/11.2.0/..

[JSP] JSP Action Tag ์ฃผ์š”ํƒœ๊ทธ

[JSP Action Tag ๋ž€?] JSP ํŽ˜์ด์ง€ ๋‚ด์—์„œ ์–ด๋–ค ๋™์ž‘์„ ํ•˜๋„๋ก ์ง€์‹œํ•˜๋Š” ํƒœ๊ทธ์ด๋‹ค.   [JSP Action Tag ์ข…๋ฅ˜]     [forward]  ์š”์ฒญ ๋ฐ›์€ ์š”์ฒญ๊ฐ์ฒด(request)๋ฅผ ์œ„์ž„ํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ์— ์š”์ฒญ ๊ฐ์ฒด๊ฐ’์„ ๋™์ผํ•˜๊ฒŒ ์ „๋‹ฌ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•จ๊ณผ ๋™์‹œ์— ํ•ด๋‹น ๊ฒฐ๊ณผ๋ฅผ ๋ฐ”๋กœ ๋ณด์—ฌ์ค˜์•ผ ํ•˜๋Š” ๊ฒฝ์šฐex) ๊ฒŒ์‹œํŒ ๋ชฉ๋ก์—์„œ ๊ธ€ ์ œ๋ชฉ์„ ํด๋ฆญํ–ˆ์„ ๋•Œ ๋ฐ”๋กœ ๋‚ด์šฉ์„ ๋ณด์—ฌ์ค˜์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ.[sendRedirect] ์š”์ฒญ ๋ฐ›์€ ์š”์ฒญ๊ฐ์ฒด๋ฅผ(request) ์œ„์ž„ํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ์— ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ,  ์ƒˆ๋กœ์šด ์š”์ฒญ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•œ ๋‹ค์Œ ์ƒˆ๋กœ์šด ์š”์ฒญ์œผ๋กœ ์ž‘์—…์„ ํ•ด์•ผํ•  ๊ฒฝ์šฐ์— ์‚ฌ์šฉex) ๊ฒŒ์‹œํŒ ๊ธ€ ์“ฐ๊ธฐ ์™„๋ฃŒ ์ดํ›„ ํ•ด๋‹น ๊ธ€์˜ ๋‚ด์šฉ์ด ์•„๋‹Œ ๊ธ€ ๋ชฉ๋ก์„ ๋ณด์—ฌ์ค˜์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ   [forward vs sendRedirect..

[JSP] Java Servlet

[์„œ๋ธ”๋ฆฟ servlet] ์ž๋ฐ” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์ด์šฉํ•˜์—ฌ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ๋•Œ ์„œ๋ฒ„์ธก์—์„œ ์‹คํ–‰๋˜๋Š” ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์„ ๋œปํ•œ๋‹ค. ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ณ , ๋™์  ์›น ์ฝ˜ํ…์ธ ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.[์„œ๋ธ”๋ฆฟ servlet ํŠน์ง•]1. ๋™์  ์›น์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ปดํฌ๋„ŒํŠธ (์ˆœ์ˆ˜ ์ž๋ฐ”์ฝ”๋“œ) 2. .java ํ™•์žฅ์ž 3. ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์— ๋™์ ์œผ๋กœ ์ž‘๋™ํ•˜๊ณ , ์‘๋‹ต์€ html์„ ์ด์šฉ. 4. java thread๋ฅผ ์ด์šฉํ•˜์—ฌ ๋™์ž‘. 5. MVCํŒจํ„ด์—์„œ Controller๋กœ ์ด์šฉ๋จ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType(..

[JSP] JSP : Java Server Pages (๊ฐœ๋…)

[ JSP ๋ž€? ] JavaServer Pages ์˜ ์ค„์ž„๋ง๋กœ ๋™์ ์ธ ์›น ํŽ˜์ด์ง€๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๊ธฐ์ˆ ์ด๋‹ค. ์ž๋ฐ”๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋ฉฐ, HTML ์ฝ”๋“œ์— java ์ฝ”๋“œ๋ฅผ ์‚ฝ์ž…ํ•˜์—ฌ ๋™์  ์ฝ˜ํ…์ธ ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. [ JSP ํŠน์ง• ] ๋™์  ์›น์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ปดํฌ๋„ŒํŠธ (์ž๋ฐ” ์ฝ”๋“œ ์‚ฌ์šฉ๊ฐ€๋Šฅ) .jsp ํ™•์žฅ์ž jsp๋Š” ์›น์„œ๋ฒ„์™€ ํ†ต์‹ ํ•˜๋ฉด ์ž๋™์œผ๋กœ Servlet ์œผ๋กœ ๋ณ€ํ™˜๋œ๋‹ค. MVC ํŒจํ„ด์—์„œ View ๋กœ ์ด์šฉ๋œ๋‹ค. [ JSP ํƒœ๊ทธ ๊ฐœ๋… ์ดํ•ด ] Servlet ์€ java ์–ธ์–ด๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฌธ์„œ๋ฅผ ์ž‘์„ฑํ•จ PrintWriter ์ถœ๋ ฅ ๊ฐ์ฒด๋ฅผ ์ด์šฉํ•ด html ์ฝ”๋“œ๋ฅผ ์‚ฝ์ž…ํ•จjsp ๋Š” Servlet ๊ณผ ๋ฐ˜๋Œ€๋กœ html ์ฝ”๋“œ๋ฅผ ์‚ฝ์ž…ํ•˜๊ธฐ์œ„ํ•ด jsp ํƒœ๊ทธ๋ฅผ ์ด์šฉํ•œ๋‹ค.   [JSP ์•„ํ‚คํ…์ณ] .jsp ํŒŒ์ผ์„ ์‹คํ–‰(์š”์ฒญ)ํ•˜๋ฉด ์›น์„œ๋ฒ„(tomc..