๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ
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 ) : - ..