Banner

My Tech Blog (๋ฉ”์„œ๋“œ)

โœ… 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 ์ ‘์†ํ•˜๊ธฐ..
์œˆ๋„์šฐํ‚ค > MYSQL Command Line Client MySQL ๊ณ„์ • ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž…๋ ฅํ•œ ๋’คCREATE DATABASE BBS;USE BBS; BBS๋ผ๋Š”  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋งŒ๋“ค์–ด ์คŒ ์ด์ œ ํ…Œ์ด๋ธ” ์ƒ์„ฑํ•  ์ฐจ๋ก€ CREATE TABLE USER ๋กœ ์œ ์ € ์•„์ด๋””, ๋น„๋ฐ€๋ฒˆํ˜ธ, ์ด๋ฆ„, ์„ฑ๋ณ„, ์ด๋ฉ”์ผ ์ปฌ๋Ÿผ 5๊ฐœ ๋งŒ๋“ค์–ด ์ฃผ๊ณ  USERID๋ฅผ PK๋กœ ์ง€์ •ํ•ด์ฃผ์—ˆ์Œ.SHOW TABLES; ์œ„ ๋ช…๋ น์–ด๋กœ ํ…Œ์ด๋ธ” ๋ณด๊ธฐ  DESC USER; `DESC + ํ…Œ์ด๋ธ”๋ช…`์œผ๋กœ ํ˜„์žฌ ํ…Œ์ด๋ธ” ํ˜•ํƒœ ๋ณด์—ฌ์คŒ            ํ…Œ์ŠคํŠธ๋กœ ํ™๊ธธ๋™์ด๋ผ๋Š” ์œ ์ €์˜ ์ •๋ณด๋ฅผ ํ…Œ์ด๋ธ”์— ํ•œ ์ค„ ๋„ฃ์–ด ์คŒ ์ฐธ๊ณ ๋กœ ํ…Œ์ด๋ธ”์— ๋ฐ์ดํ„ฐ๊ฐ€ ์ž˜ ๋“ค์–ด๊ฐ”๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด `select * from user;`  ๋ฐ์ดํ„ฐ๊ฐ€ ์ž˜ ๋“ค์–ด์™”์œผ๋ฉด `commit` ํ•ด ์ค€๋‹ค.  ์—ฌ๊ธฐ๊นŒ์ง€ ํ–ˆ์œผ๋ฉด ์ด์ œ..
์ผ๋ฐ˜์ ์œผ๋กœ ๋ฐฐ์—ด ์ •๋ ฌํ• ๋•Œ ์“ฐ๋Š” ๋ฉ”์„œ๋“œ `Arrays.sort()` ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ๋œ๋‹ค. ํ•˜์ง€๋งŒ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๊ณ  ์‹ถ์„ ๋•Œ `Arrays.sort()`์— `Comparator` ๊ฐ์ฒด๋ฅผ ์ธ์ž๋กœ ๋ฐ›์•„์„œ ๋งž์ถคํ˜• ์ •๋ ฌ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.  ๊ธฐ๋ณธ `Arrays.sort()`์‚ฌ์šฉimport java.util.Arrays;public class Main { public static void main(String[] args) { Integer[] arr = {5, 2, 9, 1, 3}; // ๊ธฐ๋ณธ ์ •๋ ฌ (์˜ค๋ฆ„์ฐจ์ˆœ) Arrays.sort(arr); System.out.println(Arrays.toString(arr));..
์ „๋ถ€ํ„ฐ ํฌ์ŠคํŒ… ํ•ด์•ผ ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ ๋ฏธ๋ฃจ๋‹ค๊ฐ€ ํ•˜๋Š” ํฌ์ŠคํŒ… ์ž๋ฃŒ์กฐ์‚ฌ ํ•˜๋ ค๋ฉด ๋„ˆ๋ฌด ์˜ค๋ž˜๊ฑธ๋ ค์„œ ๋‹ค์Œ์— ํ•˜๋ ค๋‹ค๊ฐ€ ์ง€๊ธˆ ์งฌ๋‚ด์„œ ํ›„๋”ฑ ํ•ด ๋ฒ„๋ฆฌ์ž  1. Map๊ณผ Set Map๊ณผ Set์€ ์ž๋ฐ”์—์„œ ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ(Collection Framework)์— ์†ํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. ๋‘˜ ๋‹ค java.utilํŒจํ‚ค์ง€์— ํฌํ•จ๋˜์–ด ์žˆ๋‹ค. ๊ธฐ๋ณธ ์ž๋ฃŒํ˜•์€ ์•„๋‹ˆ๊ณ  ๊ฐ์ฒด๋กœ ๋‹ค๋ฃจ์–ด์ง€๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ธ๋ฐ, Map์€ key-value ํ˜•ํƒœ๋กœ ๋น ๋ฅธ ๊ฒ€์ƒ‰์ด ํ•„์š”ํ•œ ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃฐ ๋•Œ ์œ ์šฉํ•˜๊ณ , Set์€ ์ค‘๋ณต ์—†๋Š” ๋ฐ์ดํ„ฐ ์ง‘ํ•ฉ์ด ํ•„์š”ํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค.   2. Map ์ด๋ž€? ์‚ฌ๋žŒ์„ ‘์ด๋ฆ„ = ์ตœ๋‹ค์ธ’, 'ํ‚ค = 165' ๋“ฑ์œผ๋กœ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋“ฏ์ด ๋งต(Map) ์€ ๋Œ€์‘ ๊ด€๊ณ„๋ฅผ ์‰ฝ๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ์ž๋ฃŒํ˜•์ด๋‹ค. ๋งต์˜ ๊ตฌํ˜„์ฒด ์ค‘์— ๊ฐ€์žฅ ์œ ๋ช…ํ•œ ๊ฑด ..
1. ์ œ๋„ค๋ฆญ์Šค(Generics) ์ œ๋„ค๋ฆญ์Šค๋ž€?์ œ๋„ค๋ฆญ์Šค(generics)๋Š” ์ž๋ฐ” J2SE 5.0 ๋ฒ„์ „ ์ดํ›„์— ๋„์ž…๋œ ๊ฐœ๋…์œผ๋กœ, ์ž๋ฃŒํ˜•์„ ์•ˆ์ „ํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์–ด ์ฃผ๋Š” ๊ธฐ๋Šฅ์ด๋‹ค. ์ œ๋„ค๋ฆญ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ž๋ฃŒํ˜•์„ ๊ฐ•์ œ๋กœ ๋ฐ”๊ฟ€ ๋•Œ ์ƒ๊ธธ ์ˆ˜ ์žˆ๋Š” ์บ์ŠคํŒ…(Casting) ์˜ค๋ฅ˜๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค. ArrayList๋Š” ์ž๋ฐ”์˜ **์ œ๋„ค๋ฆญ์Šค(Generics)**๋ฅผ ํ™œ์šฉํ•˜๋Š” ๋Œ€ํ‘œ์ ์ธ ์ปฌ๋ ‰์…˜ ํด๋ž˜์Šค์ด๋‹ค. ์ œ๋„ค๋ฆญ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ArrayList์— ์ €์žฅํ•  ์š”์†Œ์˜ ํƒ€์ž…์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๊ณ , ๋•๋ถ„์— ํ˜• ๋ณ€ํ™˜ ์—†์ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•œ๋‹ค. (ํƒ€์ž… ์•ˆ์ •์„ฑ ๋ณด์žฅ) ArrayList๋Š” ArrayList ํ˜•ํƒœ๋กœ ์ •์˜ํ•˜๋Š”๋ฐ, ์—ฌ๊ธฐ์„œ E๋Š” ์ €์žฅํ•  ์š”์†Œ์˜ ํƒ€์ž…์„ ๋‚˜ํƒ€๋‚ด๋Š” ํƒ€์ž… ๋งค๊ฐœ๋ณ€์ˆ˜์ด๋‹ค. ArrayList,ArrayList์ฒ˜๋Ÿผ ์ œ๋„ค๋ฆญ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŠน์ •..
์ธ์ ˆ๋ฏธ์˜€๋˜๊ฒƒ
'๋ฉ”์„œ๋“œ' ํƒœ๊ทธ์˜ ๊ธ€ ๋ชฉ๋ก
์ƒ๋‹จ์œผ๋กœ