๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ

    0209 ๊ตญ๋น„ ์ˆ˜์—… HTML ์›น ์ธํ„ฐ๋„ท ๊ธฐ๋ณธ ์šฉ์–ด(Hyper Text HTTP URL) ์›น ์„œ๋ฒ„ Web Container WAS HTML ๋ฌธ์„œ๊ตฌ์กฐ tag ํƒœ๊ทธ ์ฃผ์„

    * ์›น Web - ๋ฌธ์„œ ๊ฒ€์ƒ‰ ์„œ๋น„์Šค -WWW (World Wide Web) : W3 -์ธํ„ฐ๋„ท์—์„œ ๋ฌธ์ž, ๊ทธ๋ฆผ, {๊ทธ๋ž˜ํ”ฝ, ์†Œ๋ฆฌ, ์˜์ƒ - ๋ฉ€ํ‹ฐ๋ฏธ๋””์–ด} ๋“ฑ์„ ํฌํ•จํ•˜๋Š” ๋ฌธ์„œ๋ฅผ HyperText ๊ฐœ๋…์„ ๋„์ž…ํ•˜์—ฌ(๋ฌธ์„œ๋ผ๋ฆฌ ์—ฐ๊ฒฐ) ํŽธ๋ฆฌํ•˜๊ฒŒ(ํด๋ฆญ) ์ „์†กํ•˜๊ณ  ๊ฒ€์ƒ‰ํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ์„œ๋น„์Šค *์ธํ„ฐ๋„ท (inter network) -์ปดํ“จํ„ฐ๋กœ ์—ฐ๊ฒฐํ•˜์—ฌ TCP/IP ํ”„๋กœํ† ์ฝœ์„ ์ด์šฉํ•ด ์ •๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ๋„คํŠธ์›Œํฌ(๋ˆ„๋ฆฌ๋ง) -Hyper Text๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ธํ„ฐ๋„ท์— ์‚ฐ์žฌ๋˜์–ด ์žˆ๋Š” ์ •๋ณด๋ฅผ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ํ”„๋กœ๊ทธ๋žจ 1973๋…„์— TCP/IP๋ฅผ ์ •๋ฆฌํ•œ ๋นˆํŠธ ์„œํ”„(์ธํ„ฐ๋„ท์˜ ์•„๋ฒ„์ง€), ๋กœ๋ฒ„ํŠธ ์นธ์ด ๋„คํŠธ์›Œํฌ์™€ ๋„คํŠธ์›Œํฌ๋ฅผ ํ•˜๋‚˜์˜ ํ†ต์‹ ๋ง์œผ๋กœ ์—ฐ๊ฒฐํ•˜๊ณ ์ž ํ•˜๋Š” ์˜๋„๋กœ ์ด๋ฆ„ ๋ถ€์—ฌ -1989๋…„์— HyperText๋ฅผ ๊ณ ์•ˆํ•œ ํŒ€ ๋ฒ„๋„ˆ์Šค๋ฆฌ(์›น์˜ ์•„๋ฒ„์ง€), UR..

    0209 ๊ตญ๋น„ ์ˆ˜์—… JDBC SQLInjection ๊ณต๊ฒฉ union์„ ์‚ฌ์šฉํ•œ ํ•ดํ‚น SQL Injection ๋ฐฉ์–ด ์ฝ”๋“œ

    * SQL Injection - ์•…์˜์ ์ธ ๋ชฉ์ ์˜ ์‚ฌ์šฉ์ž๊ฐ€ ์ •๋ณดํƒˆ์ทจ๋ฅผ ์œ„ํ•ด ์ž‘์„ฑ๋œ ์ฟผ๋ฆฌ๋ฌธ์„ ์˜ˆ์ƒํ•˜๊ณ , ํ”„๋กœ๊ทธ๋žจ ์™ธ๋ถ€์—์„œ ๋‚˜๋จธ์ง€ ์ฟผ๋ฆฌ๋ฌธ์„ ์ž‘์„ฑํ•˜์—ฌ ์ž…๋ ฅํ•˜์—ฌ ์ •๋ณด๋ฅผ ํƒˆ์ทจํ•˜๋Š” ํ•ดํ‚น ๊ธฐ๋ฒ• ์ฟผ๋ฆฌ๋ฅผ ์˜ˆ์ƒํ•ด์„œ 1. ํ…Œ์ด๋ธ”๋ช… ์–ป์–ด๋‚ด๊ณ  2. ์ปฌ๋Ÿผ๋ช… ์–ป๊ณ  3. ๋ฐ์ดํ„ฐ๋ฅผ ํƒˆ์ทจ ์˜ˆ์‹œ) --์šฐํŽธ๋ฒˆํ˜ธ ๊ฒ€์ƒ‰ ์ฟผ๋ฆฌ๋ฌธ StringBuilder sql= new StringBuilder(); squl.append(" select zipcode,sido,gugun,dong,bunji") .append(" from zipcode ") .append(" where dong like ' ").append(dong).append("% ' "); ์ƒ๋„๋™ ์ž…๋ ฅ > ์ƒ์„ฑ๋œ ์ฟผ๋ฆฌ๋ฌธ select zipcode,sido,gugun,dong,bunji // ์ปฌ..

    0208 ๊ตญ๋น„ ์ˆ˜์—… JDBC CallableStatement๋กœ SYS_REFCURSOR ๋ฐ›๊ธฐ

    *SYS_REFCURSOR - PL/SQL์—์„œ ์—ฌ๋Ÿฌ ํ–‰์„ ์กฐํšŒํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ์ฒด => CURSOR ( ๋ช…์‹œ์  ์ปค์„œ ) - PL/SQL์—์„œ๋Š” select์ฟผ๋ฆฌ๋กœ ํ•œ ํ–‰๋งŒ ์กฐํšŒ ํ•  ์ˆ˜ ์žˆ์Œ ๋ฌธ๋ฒ•) select ์ปฌ๋Ÿผ๋ช…,,,, into ๋ณ€์ˆ˜๋ช…,,, ์—๋Ÿฌ ๋ณด๊ธฐ show error ํ˜ธ์ถœ) 1. ๋ฐ”์ธ๋“œ ๋ณ€์ˆ˜ ์„ ์–ธ var cur REFCUSOR 2. ํ”„๋กœ์‹œ์ € ํ˜ธ์ถœ exec ํ”„๋กœ์‹œ์ €๋ช…( :cur ) 3. ์ถœ๋ ฅ print cur ์—ด๊ธฐ -> ์ธ์ถœ -> ๋‹ซ๊ธฐ *SYS_REFCURSOR๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ƒ๋ช…์ฃผ๊ธฐ์˜ ๊ด€๋ฆฌ๋ฅผ ResultSet์—์„œ ๋Œ€์‹  ๋ฐ›์•„์„œ ์ˆ˜ํ–‰ --cp_emp๋ฅผ ๋ชจ๋‘ ์กฐํšŒํ•˜๋Š” procedure create or replace procedure select_all_cp..

    0207 ๊ตญ๋น„ ์ˆ˜์—… JDBC transaction์ฒ˜๋ฆฌ procedure ์ž‘์„ฑ CallableStatement

    *transaction ์ฒ˜๋ฆฌ (DB์—…๋ฌด์ฒ˜๋ฆฌ์˜ ๋‹จ์œ„ – insert, update, delete๋กœ ๊ตฌ์„ฑ) - java.sql.Connection์€ auto commit์ด ๊ธฐ๋ณธ ์„ค์ • Connection.setAutoCommit( true ); => ์ฟผ๋ฆฌ๋ฌธ ํ•˜๋‚˜๋กœ Transaction์ด ์™„๋ฃŒ๋จ - ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ฟผ๋ฆฌ๋ฌธ์ด (insert, update, delete) ํ•˜๋‚˜์˜ Transaction์„ ๊ตฌ์„ฑํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ setAutoCommit( false )๋กœ ๋ฐ”๊ฟ” ์„ค์ •ํ•˜๊ณ , ์ฟผ๋ฆฌ ์ˆ˜ํ–‰ํ•œ ํ–‰์ˆ˜๋ฅผ ๋น„๊ตํ•ด์„œ commit() ๋˜๋Š” rollback()์„ ์ˆ˜ํ–‰ - Connection์ด close๊ฐ€ ๋œ๋‹ค๋ฉด(์ •์ƒ ์ข…๋ฃŒ) commit์„ ์ˆ˜ํ–‰ํ•œ ํ›„ ์—ฐ๊ฒฐ์ด ๋Š์–ด์ง ( ์ฟผ๋ฆฌ๋ฌธ ์ˆ˜ํ–‰ ์ค‘ Connection์ด close ๋˜๋ฉด ์•ˆ๋จ – ์—ฌ๋Ÿฌ ๊ฐœ..

    0206 JDBC like ์‚ฌ์šฉ ResultSetMetaData CLOB(Character Large Object) ๋ฐ์ดํ„ฐ ํ˜•์˜ ์‚ฌ์šฉ

    *like ์‚ฌ์šฉ : ๋ฌธ์ž์—ด์˜ ์ผ๋ถ€๋ถ„์„ ์•Œ๊ณ  ๊ฒ€์ƒ‰ํ•  ๋•Œ like ์ปฌ๋Ÿผ๋ช… ?% > ๋ฐ”์ธ๋“œ ๋ณ€์ˆ˜๋ฅผ ์ธ์‹ํ•˜์ง€ ๋ชปํ•จ >>๋ฐ”์ธ๋“œ ๋ณ€์ˆ˜์™€ %๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด %๋ฅผ ์ผ๋ฐ˜ ๋ฌธ์ž๋กœ ๋ณ€ํ™˜ ํ›„ ||๋กœ ๋ฐ”์ธ๋“œ ๋ณ€์ˆ˜์™€ ๋ถ™์—ฌ ์‚ฌ์šฉํ•จ >> ?||’%’ *ResultSetMetaData - ์กฐํšŒ ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ DD ์—†์ด ์ปฌ๋Ÿผ์˜ ์ •๋ณด(์ปฌ๋Ÿผ๋ช…, ๋ฐ์ดํ„ฐํ˜•, ํฌ๊ธฐ, Nullํ—ˆ์šฉ ์—ฌ๋ถ€)๋ฅผ ์–ป์„ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ์ฒด - ๋ชจ๋“  DBMS์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ ์‚ฌ์šฉ๋ฒ•) // 1. ์ฟผ๋ฆฌ๋ฌธ ์‹คํ–‰๋œ ํ›„์— String select=“select ์ปฌ๋Ÿผ๋ช…,,,,, “; PreparedStatement pstmt=con.prepareStatement( select ); ResultSet rs=pstmt.executeQuery(); //2. ResultSet์—์„œ Resul..

    0203 ๊ตญ๋น„ ์ˆ˜์—… PreparedStatement ์ž‘์—…์ˆœ์„œ bind ๋ณ€์ˆ˜ Singleton Pattern

    *PreparedStatement ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•œ CRUD *์กฐํšŒ ๊ฒฐ๊ณผ๊ฐ€ n๊ฐœ์˜ ํ–‰์ผ ๋•Œ (๋ช‡ ๊ฐœ์˜ ํ–‰์ด ๋ฐ˜ํ™˜๋ ์ง€ ๋ชจ๋ฅผ ๋•Œ) ๊ฐ’์ด ๋ช‡๊ฐœ์ธ์ง€ ๋ชจ๋ฅด๊ฒ ๋Š”๋ฐ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๊ณ„์† ์ €์žฅํ•˜๋ ค๋ฉด ์ ์ ˆํ•œ ์ž๋ฃŒ๊ตฌ์กฐ๋Š”? ๊ฐ’ ์ค‘๋ณต ๊ฐ€๋Šฅ > List ๊ฐ’ ์œ ์ผํ•ด์•ผํ•จ > Set ํ…Œ์ด๋ธ”์˜ ๋ ˆ์ฝ”๋“œ ๊ตฌ์„ฑ ์ƒ ๋ช‡ ๊ฐœ์ธ์ง€ ๋ชจ๋ฅด๊ฒ ๋Š”๋ฐ ์ค‘๋ณต๋  ๊ฑฐ ๊ฐ™์œผ๋ฉด > list (๋ช‡๊ฐœ์ธ์ง€ ๋ชจ๋ฅด๋Š”๋ฐ ์ค‘๋ณต ๊ฐ€๋Šฅ) ๋ช‡ ๊ฐœ์ธ์ง€ ๋ชจ๋ฅด๊ฒ ๋Š”๋ฐ ์œ ์ผํ•  ๊ฑฐ ๊ฐ™์œผ๋ฉด > Set (๋ช‡๊ฐœ์ธ์ง€ ๋ชจ๋ฅด๋Š”๋ฐ ์ค‘๋ณต ๋ถˆ๊ฐ€) *๋ถ€์„œ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ์‚ฌ์›๋ช…์„ ์กฐํšŒํ•˜๋Š” ๋ฉ”์„œ๋“œ ์ž‘์„ฑ ๋ถ€์„œ๋ฒˆํ˜ธ ํ•˜๋‚˜์— ์‚ฌ์›๋ช…์ด n๋ช… > 0~n๊ฐœ ๋‚˜์˜ด public List selectJob( int deptno ) ๋‹จ์ผํ˜•, ๋ช‡๊ฐœ์ผ์ง€ ๋ชจ๋ฅด๋Š” ๊ฐ’์„ ๊ฐ’์„ ๋ฌถ์–ด์„œ list๋กœ ๋ฐ˜ํ™˜ ๋‹จ์ผํ˜•: ํ•œ๊ฐœ์˜ ์ปฌ๋Ÿผ๊ฐ’์ด ๋ฐ˜ํ™˜๋  ๊ฒƒ *๋งค๋‹ˆ์ €๋ฒˆํ˜ธ..

    0202 ๊ตญ๋น„ ์ˆ˜์—… JDBC ์ฟผ๋ฆฌ๋ฌธ ์ƒ์„ฑ๊ฐ์ฒด DAO VO Service Statement ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•œ CRUD (insert update delete select)

    *์ฟผ๋ฆฌ๋ฌธ ์ƒ์„ฑ๊ฐ์ฒด - ์ž‘์„ฑ๋œ ์ฟผ๋ฆฌ๋ฌธ์„ ์‹คํ–‰ํ•˜์—ฌ ๊ฒฐ๊ณผ๋ฅผ ์–ป๋Š” ์ผ์„ ์ •์˜ํ•œ interface๋“ค *Statement - ๊ฐ์ฒด๊ฐ€ ์‹คํ–‰ํ•  ์ฟผ๋ฆฌ๋ฌธ์„ ์•Œ์ง€ ๋ชปํ•˜๋Š” ์ƒํƒœ๋กœ ์–ป์–ด์ง (์–ป์–ด์ง€๋Š” ๋‹น์‹œ์— ์ฟผ๋ฆฌ๋ฌธ์„ ๋ชจ๋ฆ„) Statement stmt=con.createStatement(); ์–ป์–ด์ง€๋Š” ๋‹น์‹œ์— ์ฟผ๋ฆฌ๋ฌธ์— ๋Œ€ํ•œ ์ •๋ณด x - ์ฟผ๋ฆฌ๋ฌธ์„ ์‹คํ–‰(executeXxx(“์ฟผ๋ฆฌ๋ฌธ”))ํ•  ๋•Œ ์ƒ์„ฑํ•˜์—ฌ ์‹คํ–‰ - ๊ฐ™์€ ์ฟผ๋ฆฌ๋ฌธ์ด๋”๋ผ๋„ ๋งค๋ฒˆ ์ƒˆ๋กœ ์ƒ์„ฑํ•˜์—ฌ ์‹คํ–‰๋จ (์ฟผ๋ฆฌ๋ฌธ์ด ๋ฐ˜๋ณต์ ์œผ๋กœ ์‹คํ–‰๋  ๋•Œ ํšจ์œจ์ด ๋–จ์–ด์ง) - SQLInjection๊ณต๊ฒฉ์— ์ทจ์•ฝ,๋ณด์•ˆ ์•ฝ์  (์™ธ๋ถ€์—์„œ ์ฟผ๋ฆฌ๋ฌธ์„ ์˜ˆ์ƒํ•˜์—ฌ ์กฐ์ž‘ํ•  ์ฟผ๋ฆฌ๋ฌธ์„ ๋„ฃ๋Š” ๊ณต๊ฒฉ) *PreparedStatement -๊ฐ์ฒด๊ฐ€ ์ฟผ๋ฆฌ๋ฌธ์ด ๋“ค์–ด๊ฐ„ ์ƒํƒœ๋กœ ์–ป์–ด์ง (์‹คํ–‰ํ•  ์ฟผ๋ฆฌ๋ฌธ์„ ์•Œ๊ณ  ์žˆ์Œ) PreparedStateme..

    0201 ๊ตญ๋น„ ์ˆ˜์—… JDBC driver DBMS ์ž‘์—…์ˆœ์„œ, DB ์—ฐ๊ฒฐ ์ž‘์—… ์ž๋ฐ” ์ฟผ๋ฆฌ ์‹คํ–‰

    *JDBC(Java DataBase Connectivity) -Java์—์„œ DBMS์™€ ์—ฐ๋™ํ•˜๊ธฐ์œ„ํ•œ ์ €์ˆ˜์ค€ API -java.sql ํŒจํ‚ค์ง€์—์„œ ๊ด€๋ จ ์ธํ„ฐํŽ˜์ด์Šค, ํด๋ž˜์Šค๋ฅผ ์ œ๊ณต -Driver loading ๋ฐฉ์‹ ( Driver๋งŒ ์ œ๊ณต๋œ๋‹ค๋ฉด ๋ชจ๋“  DBMS์™€ ์—ฐ๋™ํ•  ์ˆ˜ ์žˆ์Œ) *Driver: -DB Server์— ์ ‘์†ํ•˜๊ธฐ ์œ„ํ•œ DB Client๋ฅผ .classํŒŒ์ผ๋กœ ๋งŒ๋“  ๊ฒƒ -sun์‚ฌ์—์„œ interface๋กœ ์ž‘์—… ๋ชฉ๋ก์„ ์ œ๊ณตํ•˜๊ณ , DB Vendor์‚ฌ์—์„œ interface์— ํ•ด๋‹นํ•˜๋Š” ์ž‘์—…๋“ค์„ ์ž์ฒด ๊ฐœ๋ฐœํ•˜์—ฌ ์ œ๊ณต ( 4๊ฐ€์ง€ type ) > ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์“ฐ๋ฉด ์˜ค๋ผํด ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ตฌํ˜„ํ•ด๋†“์€ ํด๋ž˜์Šค๋ฅผ ์“ฐ๊ฒŒ ๋จ -Driver๋Š” .jarํŒŒ์ผ๋กœ ๋ฌถ์–ด์„œ ๋ฐฐํฌ๋จ * type 1( JDBC-ODBC Bridge Driver ) : - ..