Banner

My Tech Blog (๋กœ๊ทธ์ธ)

์˜ค๋Š˜์˜ ๋ช…์–ธ
" ์ฒœ์žฌ๋Š” 1%์˜ ์˜๊ฐ๊ณผ 99%์˜ ๋•€์ด๋‹ค. "
- ํ† ๋งˆ์Šค ์—๋””์Šจ (๋ฏธ๊ตญ ๋ฐœ๋ช…๊ฐ€, ์‚ฌ์—…๊ฐ€)
1. Cookie๋ž€?ํด๋ผ์ด์–ธํŠธ(๋ธŒ๋ผ์šฐ์ €)์— ์ €์žฅ๋˜๋Š” ํ‚ค์™€ ๊ฐ’์ด ๋“ค์–ด์žˆ๋Š” ์ž‘์€ ๋ฐ์ดํ„ฐํŒŒ์ผ!์ค‘๋ณต๋˜์ง€ ์•Š๋Š” name๊ณผ value ํ•œ ์Œ์œผ๋กœ ์ด๋ฃจ์–ด์ง์ˆœ์„œ๊ฐ€ ์—†๋‹ค๋งŒ๋ฃŒ ๊ธฐํ•œ(๋‚˜์ด)๋ฅผ ์ง€์ •ํ•ด ์ค„ ์ˆ˜ ์žˆ๋‹ค, ๋‹จ ์ง€์ •ํ•ด ์ฃผ์ง€ ์•Š์œผ๋ฉด Session ๊ฐ’์œผ๋กœ ์ €์žฅ๋œ๋‹ค.์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋ณด๊ด€ํ•˜๊ณ  ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋กœ, ์›น ์„œ๋ฒ„์— ์š”์ฒญ์„ ๋ณด๋‚ผ ๋•Œ ์ฟ ํ‚ค๋ฅผ ํ—ค๋”์— ๋‹ด์•„ ์ „์†กํ•œ๋‹ค.2. Session์ด๋ž€?Session์€ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„ ์—ฐ๊ฒฐ๋œ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์„œ๋ฒ„์— ์ €์žฅ๋˜๋Š” ๋ฐ์ดํ„ฐ์ด๋‹ค.ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์ ‘์†ํ•˜๋ฉด, ์„œ๋ฒ„๋Š” ๊ณ ์œ ํ•œ Session ID๋ฅผ ์ƒ์„ฑํ•ด ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ „๋‹ฌํ•œ๋‹ค.ํด๋ผ์ด์–ธํŠธ๋Š” Session ID๋ฅผ ์ฟ ํ‚ค์— ์ €์žฅํ•˜๊ฑฐ๋‚˜ URL์— ํฌํ•จํ•ด ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•˜๋ฉฐ, ์„œ๋ฒ„๋Š” ์ด ID๋กœ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‹๋ณ„ํ•œ๋‹ค.์„ธ์…˜ ๋ฐ์ดํ„ฐ๋Š” ์„œ๋ฒ„์˜ ๋ฉ”๋ชจ๋ฆฌ ๋˜๋Š”..
โœ… session ๊ด€๋ฆฌโœ… logout.jspโœ… main.jsp ๋งŒ๋“ค๊ธฐ ์ง€๊ธˆ๊นŒ์ง€ ํšŒ์›๊ฐ€์ž…, ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ๊นŒ์ง€ ๊ตฌํ˜„ํ•ด๋ณด์•˜๋‹ค.์ด์ œ ์„ธ์…˜ ๊ด€๋ฆฌ๋ฅผ ํ•ด ๋ณด์ž. `session` ์ด๋ž€ ํ˜„์žฌ ์ ‘์†ํ•œ ํšŒ์›์—๊ฒŒ ํ• ๋‹นํ•ด์ฃผ๋Š” ๊ณ ์œ ํ•œ ์•„์ด๋””์ด๋‹ค.๋กœ๊ทธ์ธ์— ์„ฑ๊ณตํ•œ ํšŒ์›์—๊ฒŒ ๊ฐ๊ฐ `session`์„ ๋ถ€์—ฌํ•ด์ฃผ๋Š” ๊ณผ์ •์„ ๊ตฌํ˜„ํ•ด๋ณด์ž. `loginAction.jsp`์— `session`์„ ์„ค์ •ํ•ด์ฃผ๋Š” `session.setAttribute()` ์ฝ”๋“œ ํ•œ ์ค„ ํƒ€์ดํ•‘!`joinAction.jsp`์—๋„ ์ฝ”๋“œ ๋ณต๋ถ™ํ•ด์„œ ๋„ฃ์–ด ์ค€๋‹ค.๋กœ๊ทธ์ธ ์„ฑ๊ณตํ•œ ํšŒ์›์—๊ฒŒ ์„ธ์…˜ ๋ถ€์—ฌํ•˜๊ณ  ๋ฉ”์ธ ํŽ˜์ด์ง€๋กœ ๋„˜์–ด๊ฐ€๊ฒŒ๋” ํ•ด ์ค€๋‹ค. ์ด๋ ‡๊ฒŒ ์„ธ์…˜์„ ์„ค์ •ํ•ด ์ฃผ์—ˆ๋‹ค. ์„ธ์…˜์€ ํ•ด์ œ ํ•˜๊ธฐ ์ „๊นŒ์ง€๋Š” ์œ ํšจํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ• ๋‹นํ•œ ์„ธ์…˜์„ ํ•ด์ œํ•  ์ˆ˜ ์žˆ๋Š” ๋กœ๊ทธ์•„์›ƒ ํŽ˜์ด์ง€๋„ ๋งŒ๋“ค์–ด ์ฃผ์ž. `joinAc..
์ €๋ฒˆ์— ํšŒ์›๊ฐ€์ž… ์–‘์‹ `join.jsp` ๊นŒ์ง€ ๋งŒ๋“ค์—ˆ๋‹ค. ์˜ค๋Š˜์€ userDAO ํด๋ž˜์Šค์— ํšŒ์›๊ฐ€์ž…์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ํ•˜๋‚˜ ์ถ”๊ฐ€ํ•ด ์ค„๊ฒƒ์ด๋‹ค.DAO ํด๋ž˜์Šค๋Š” ์‹ค์ œ๋กœ DB์— ์ ‘๊ทผํ•ด์„œ ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ฑฐ๋‚˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ๋Š” ์—ญํ• ์„ ํ•˜๋Š” ๋ฐ์ดํ„ฐ ์ ‘๊ทผ ๊ฐ์ฒด์ด๋‹ค.๊ทธ๋ฆฌ๊ณ  ์ฒ˜๋ฆฌ๋œ ๊ฒฐ๊ณผ๊ฐ’์„ ๊ฐ€์ ธ์™€์„œ View ์ฒ˜๋ฆฌํ•˜๋Š” `join Action.jsp` ๊นŒ์ง€ ๋งŒ๋“ค์–ด ๋ณผ ๊ฒƒ์ด๋‹ค.   ๋จผ์ € userDAO ํด๋ž˜์Šค๋กœ ๊ฐ„๋‹ค.login ๋ฉ”์„œ๋“œ ์•„๋ž˜์— join ๋ฉ”์„œ๋“œ๋ฅผ ๋งŒ๋“ค์–ด ์ค€๋‹ค.// ํšŒ์›๊ฐ€์ž… ์ฒ˜๋ฆฌ ๋กœ์ง public int join(User user) { String SQL = "INSERT INTO USER VALUES(?, ?, ?, ?, ?)"; try { psmt = conn.prepareStatem..
DB ์œ„์ฃผ๋กœ ํ• ๊ฑฐ๋ผ ํ™”๋ฉด์€ ๋ถ€ํŠธ์ŠคํŠธ๋žฉ์œผ๋กœ ํด๋ž˜์Šค๋งŒ ๋จน์—ฌ์„œ ๋งŒ๋“ค๊ณ  ์žˆ์–ด์š”. ๋ฐ์ดํ„ฐ ๋„˜์–ด๊ฐ€๋Š” ๊ฒƒ๋งŒ ๋ณผ ๊ฑฐ๋ผ์„œ ํ™”๋ฉด ๋””์ž์ธ์€ ์‹ ๊ฒฝ ๋ชป ์“ฐ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค!! ์ด์˜๊ฒŒ ๋งŒ๋“ค๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ์€ HTML/CSS ์‹ ๊ฒฝ์“ฐ๋ฉด์„œ ํ•˜์…”๋„ ์ข‹์Šต๋‹ˆ๋‹ค. ์ „ ๋ฐ”๋น ์„œ ๋””์ž์ธ์€ ๋ฒ„๋ ธ์ง€๋งŒ,  ์—ฌ๋Ÿฌ๋ถ„๋“ค์€ ์ด์˜๊ฒŒ ๋งŒ๋“œ์‹œ๋ผ๊ณ  ๊ฐ„๋‹จํ•œ ํšŒ์›๊ฐ€์ž…/๊ฒŒ์‹œํŒ ๋งŒ๋“ค๊ธฐ ์‹ค์Šตํ•ด ๋ณด์‹ค๋งŒํ•œ ๋ฌด๋ฃŒ ํ…œํ”Œ๋ฆฟ ์‚ฌ์ดํŠธ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค. ์ œ๊ฐ€  ์ถ”์ฒœํ•˜๋Š” ํ…œํ”Œ๋ฆฟ์€ Forty์ž…๋‹ˆ๋‹ค. Forty์—์„œ ํšŒ์›๊ฐ€์ž…/๋กœ๊ทธ์ธ/๊ฒŒ์‹œํŒ ๋“ฑ ์‹ค์Šตํ•˜์‹œ๊ธฐ ์ข‹์•„์š”. https://html5up.net/ HTML5 UPResponsive HTML5 and CSS3 site templates designed by @ajlkn and released under the Creative Commons license.ht..
Java Reousrces > user ์— UserDAO ํด๋ž˜์Šค ์ƒ์„ฑํ•˜๊ณ , JDBC ์—ฐ๋™์„ ํ•ด ์ค„ ๊ฒƒ์ด๋‹ค.DAO(Data Access Object) ํด๋ž˜์Šค๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ๋‹ด๋‹นํ•˜๋Š” ๊ฐ์ฒด. ์ฃผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•œ CRUD(Create, Read, Update, Delete) ์ž‘์—…์„ ์บก์Šํ™”ํ•˜๊ณ , ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ จ ์ฝ”๋“œ๋ฅผ ๋ถ„๋ฆฌํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ๋†’์ด๋Š” ๋ฐ ์‚ฌ์šฉ๋จ. 1. MySQL ์ ‘์†ํ•˜๊ธฐ ๋จผ์ € ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ์ฃผ์š” ๊ฐ์ฒด๋“ค `Connection conn`, `PreparedStatement`, `ResultSet` ๋ฅผ ์„ ์–ธ ํ•ด ์ฃผ์ž. package user;public class UserDAO { // MySQL ์ ‘์†ํ•˜๊ธฐ..
1. form ํƒœ๊ทธencrype์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์†์„ฑ๊ฐ’ "name", "method", "actioin", "encrype" ํŒŒ์ผ์ด๋‚˜ ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ๊ฐ€ ์žˆ๋Š” ํผ์€ ๋ฐ˜๋“œ์‹œ enctype="multipart/from-data" ์ด ํƒ€์ž…์œผ๋กœ ์ง€์ •์„ ํ•ด์•ผ ํŒŒ์ผ ์—…๋กœ๋“œ(์ „์†ก)์ด ๋œ๋‹ค. ๊ทธ๋ž˜์•ผ ์„œ๋ฒ„์— ํŒŒ์ผ์„ ์ €์žฅํ•ด์„œ ์ฒ˜๋ฆฌ ํ•  ์ˆ˜ ์žˆ๋‹ค.    ๋ณด์•ˆ๋•Œ๋ฌธ์— ์ž๋™์™„์„ฑ์ด๋‚˜ ์ž…๋ ฅ ๊ฐ’ ์ฒดํฌ๋ฅผ ํ•˜์ง€ ์•Š๋„๋ก ํ•˜๋ ค๋ฉด qutocomoplete="off" ํผ ์†์„ฑ๊ณผ "novalidate" ์†์„ฑ ์‚ฌ์šฉ + +  2. input ํƒœ๊ทธplaceholder="ํ…์ŠคํŠธ"์ž…๋ ฅ ํ•„๋“œ์— ์˜ˆ์ƒ๋˜๋Š” ์ถ”์ฒœ ๊ฐ’์„ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ํ•˜๋Š” ์šฉ๋„ ํƒœ๊ทธ ํฌ์ปค์Šค ๋˜๋ฉด ์‚ฌ๋ผ์ง readonly์ฝ๊ธฐ ์ „์šฉ. ์ž…๋ ฅํ•„๋“œ๊ฐ€ ์‚ฌ์šฉ์ž ์ž…๋ ฅ ๋ถˆ๊ฐ€ํ•œ ์ƒํƒœ๊ฐ€ ๋จ. ..
1. JDBC๋ž€?Java DataBase Connector๋กœ ์ž๋ฐ”์™€ ์˜ค๋ผํด๊ฐ™์€ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค๋ฅผ ์—ฐ๋™ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. JDBC ๋ง๊ณ ๋„ ์ž๋ฐ”์—์„œ๋Š” ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ db์— ์—ฐ๊ฒฐ์„ ํ•  ์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค~ ใ…Žใ…Žใ…Ž Spring JPA๋‚˜ MyBatis ๋“ฑ์˜ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์จ์„œ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ์‹์ด ๊ฐ€์žฅ ์ž˜ ์•Œ๋ ค์ ธ ์žˆ์ฃ . ์‚ฌ์‹ค JDBC๋Š” ์˜ค๋ž˜๋œ ๋ฐฉ์‹ ์ค‘์— ํ•˜๋‚˜์ด๊ณ , ์š”์ฆ˜์— ๋งŽ์ด ์“ฐ์ด์ง€๋Š” ์•Š์ง€๋งŒ, ๊ฐ€์žฅ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ดํด๋ฆฝ์Šค์—์„œ db์—ฐ๋™์„ ์‹ค์Šตํ•ด ๋ณผ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์—์„œ ์ดˆ๋ณด ๊ฐœ๋ฐœ์ž ๋ถ„๋“ค์€ ์•Œ์•„๋‘์‹œ๋ฉด ์ข‹๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ œ๊ฐ€ ํ•ญ์ƒ ๊ฐ•์กฐํ•˜๋Š” ๊ฒƒ์€ '์‹ ๊ธฐ์ˆ ์ด๋‚˜ ํŠธ๋ Œ๋“œ๋ฅผ ์•Œ๋ฉด ์ข‹์ง€๋งŒ, ์ƒˆ๋กœ๋‚˜์˜จ ๊ธฐ์ˆ ์ด ์˜›๋‚  ๊ธฐ์ˆ ๋ณด๋‹ค ํ•ญ์ƒ ๋” ์ข‹์€ ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค' ๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ƒˆ๋กœ ๋‚˜์˜จ ๊ฒƒ๋“ค๋ณด๋‹ค ๊ธฐ์กด์— ์žˆ๋˜ ๋ฐฉ์‹์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ํ”„๋กœ๊ทธ๋žจ๋“ค์ด ์ •๋ง ํ›จ์”ฌ ๋งŽ๊ณ , ..
โœ… ๋ฌธ์ œ & ์ œ์•ฝ์กฐ๊ฑด โœ… ์ž…์ถœ๋ ฅ ์˜ˆ   โœ… ํ’€์ด ๊ณผ์ •์ผ๋‹จ ๋‘ ๊ฐœ์˜ ๋ฐฐ์—ด id_pw, db์— for ๋ฌธ์„ ๋Œ๋ ค์„œ ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ๋ฒ•์„ ์ƒ๊ฐ ํ•ด ๋ดค๋‹ค. id_pw๋Š” 1์ฐจ์› ๋ฐฐ์—ด, db๋Š” 2์ฐจ์› ๋ฐฐ์—ด์ด๋ผ์„œ id_pw์˜ 0๋ฒˆ ์ธ๋ฑ์Šค๊ฐ€ ๋กœ๊ทธ์ธ ์‹œ๋„ํ•œ ์‚ฌ์šฉ์ž์˜ id๊ฐ’์ด ๋˜๊ณ  1๋ฒˆ ์ธ๋ฑ์Šค๊ฐ€ ํŒจ์Šค์›Œ๋“œ์ด๋‹ค. ๋ฐ˜๋ฉด db๋Š” 2์ฐจ์› ๋ฐฐ์—ด์ด๊ธฐ ๋•Œ๋ฌธ์— [ ] [ ] ํ˜•์‹์œผ๋กœ ์ ‘๊ทผ์„ ํ•ด ์ค˜์•ผ ํ•œ๋‹ค. [i][0] ์ด ์•„์ด๋””๊ฐ’์ด๊ณ  [i][1]์ด ํŒจ์Šค์›Œ๋“œ ๊ฐ’์ด๋‹ค. case 1 : id_pw์˜ ์•„์ด๋””๊ฐ’์ด db[i][0]๊ณผ ๊ฐ™๊ณ  id_pw์˜ ํŒจ์Šค์›Œ๋“œ ๊ฐ’์ด db[i][1] ์ด๋ž‘ ๊ฐ™์œผ๋ฉด  answer์— "login" ๊ฐ’ ๋„ฃ๊ธฐcase2 : id_pw์˜ ์•„์ด๋””๊ฐ’์ด db[i][0]๊ณผ ๊ฐ™์œผ๋‚˜ id_pw์˜ ํŒจ์Šค์›Œ๋“œ ๊ฐ’์ด db[i][1] ์ด๋ž‘ ๊ฐ™์ง€ ์•Š์œผ..
์ƒ๋‹จ์œผ๋กœ