MapleStory Finger Point

โ˜… 567

๐Ÿ’ข[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..

[PL/SQL] ํŠธ๋ฆฌ๊ฑฐ trigger

[ํŠธ๋ฆฌ๊ฑฐ]ํ…Œ์ด๋ธ”์— ๋ถ€์ฐฉํ•œ ํ˜•ํƒœ๋กœ์จ, insert, update, delete ์ž‘์—…์ด ์ˆ˜ํ–‰๋  ๋•Œ ํŠน์ • ์ฝ”๋“œ๊ฐ€ ์ž‘๋™๋˜๋„๋ก ํ•˜๋Š” ๊ตฌ๋ฌธ= ์—ฐ์‡„์ ์ธ ๋™์ž‘ ํŠธ๋ฆฌ๊ฑฐ ์ƒ์„ฑ > ๋ถ€์ฐฉ   > ๋™์ž‘ > DML ์ˆ˜ํ–‰set SERVEROUTPUT on; -- ์ถœ๋ ฅ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋„๋ก ์˜จCREATE OR REPLACE TRIGGER ํŠธ๋ฆฌ๊ฑฐ๋ช… AFTER DELETE OR UPDATE --์‚ญ์ œ, ์ˆ˜์ • ์ดํ›„์— ๋™์ž‘ ON ๋ถ€์ฐฉํ• ํ…Œ์ด๋ธ” FOR EACH ROW -- ๊ฐํ–‰์— ์ ์šฉBEGIN DBMS_OUTPUT.PUT_LINE('ํŠธ๋ฆฌ๊ฑฐ๊ฐ€ ๋™์ž‘ํ•จ'); -- ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ๋ฅผ begin~end์— ๋„ฃ์ŒEND; [ ์ž๋™ ์—ฐ๊ด€  ](์ฃผ๋ฌธ ์ƒํ’ˆ)์ฃผ๋ฌธ์ด ๋“ค์–ด์˜ค๋ฉด ์ƒํ’ˆ์ด ์ค„์–ด๋“ค์–ด์•ผํ•˜๋Š”๋ฐ์ด๋•Œ ํŠธ๋ฆฌ๊ฑฐ๋ฅผ ํ†ตํ•ด์„œ ๊ด€๋ฆฌํ•˜๋ฉด ํŽธํ•˜๊ฒŒ ๊ด€๋ฆฌ ๊ฐ€๋Šฅ์ฃผ..

#2798 - python ๋ธ”๋ž™์žญ

์ฒด๊ฐ Level : โ˜… โ˜… โ˜… Review: ๋ธŒ๋ฃจํˆฌํฌ์Šค๋Š” ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๋”ฐ์ ธ๋ณด๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค.  (์™„์ „ ํƒ์ƒ‰) ๐Ÿ’ก์ œํ•œ๋œ ์‹œ๊ฐ„ ์•ˆ์— N์žฅ์˜ ์นด๋“œ ์ค‘์—์„œ 3์žฅ์˜ ์นด๋“œ๋ฅผ ๊ณจ๋ผ์•ผ ํ•œ๋‹ค. ๋ธ”๋ž™์žญ ๋ณ€ํ˜• ๊ฒŒ์ž„์ด๊ธฐ ๋•Œ๋ฌธ์—, ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๊ณ ๋ฅธ ์นด๋“œ์˜ ํ•ฉ์€ M์„ ๋„˜์ง€ ์•Š์œผ๋ฉด์„œ M๊ณผ ์ตœ๋Œ€ํ•œ ๊ฐ€๊น๊ฒŒ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค. N์žฅ์˜ ์นด๋“œ์— ์จ์ ธ ์žˆ๋Š” ์ˆซ์ž๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, M์„ ๋„˜์ง€ ์•Š์œผ๋ฉด์„œ M์— ์ตœ๋Œ€ํ•œ ๊ฐ€๊นŒ์šด ์นด๋“œ 3์žฅ์˜ ํ•ฉ์„ ๊ตฌํ•ด ์ถœ๋ ฅ  ๐Ÿ’ฌ 3์ค‘ for ๋ฌธ์„ ํ†ตํ•ด์„œ ์กฐ๊ฑด์— ๋ถ€ํ•ฉํ•˜๋Š” ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅ  [์ฝ”๋“œ ์ฐธ๊ณ ]N, M = map(int, input().split()) #์นด๋“œ ๊ฐœ์ˆ˜์™€, ์ฃผ์–ด์ง„ ์ˆ˜ arr = list(map(int, input().split())) #๋ฐ›์•„์˜จ๊ฐ’ ๋ฆฌ์ŠคํŠธ์— ๋„ฃ๊ธฐresult = 0 #๊ฒฐ๊ณผ๊ฐ’for i in ra..

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค java - ์ฝœ๋ผ ๋ฌธ์ œ

์ฒด๊ฐ Level : โ˜… โ˜… โ˜…  Review:  ์žฌ๊ท€์ ์œผ๋กœ ํ‘ธ๋Š” ๊ฑด ์•Œ์•˜์ง€๋งŒ ์ฝ”๋“œ์ž‘์„ฑ์—์„œ ๋ง‰๋ง‰ํ•ด์กŒ๋‹ค.. ์ˆ˜ํ•™์  ์‚ฌ๊ณ ๊ฐ€ ๋ถ€์กฑํ–ˆ๋‹ค ใ… ใ…  ๐Ÿ’ก์ฝœ๋ผ๋ฅผ ๋ฐ›๊ธฐ ์œ„ํ•ด ๋งˆํŠธ์— ์ฃผ์–ด์•ผ ํ•˜๋Š” ๋ณ‘ ์ˆ˜ a, ๋นˆ ๋ณ‘ a๊ฐœ๋ฅผ ๊ฐ€์ ธ๋‹ค ์ฃผ๋ฉด ๋งˆํŠธ๊ฐ€ ์ฃผ๋Š” ์ฝœ๋ผ ๋ณ‘ ์ˆ˜ b, ์ƒ๋นˆ์ด๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋นˆ ๋ณ‘์˜ ๊ฐœ์ˆ˜ n์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ์ƒ๋นˆ์ด๊ฐ€ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ์ฝœ๋ผ์˜ ๋ณ‘ ์ˆ˜๋ฅผ returnhttps://school.programmers.co.kr/learn/courses/30/lessons/132267#  [์ฐธ๊ณ  ์ฝ”๋“œ]n์€ a๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™์„ ๋•Œ (a ๋ฏธ๋งŒ๊นŒ์ง€ ๋œ๋‹ค๊ณ  ํ‘œ๊ธฐ๋˜์–ด์žˆ๋”ฐ.)( ์ฆ‰, ๋‹ค์Œ์— ๋‚˜๋ˆ ์งˆ n ๊ฐ’์— ๋‚˜๋จธ์ง€๊ฐ’์„ ๋„ฃ์–ด์„œ ์žฌ๊ท€์  ์—ฐ์‚ฐ ์ˆ˜ํ–‰)class Solution { public int solution(int a, int..

[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/..