Banner

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

๐Ÿ“‘ 1. ๋ฌธ์ž์—ด ์„ž๊ธฐ ๐Ÿ’ก 1-1. ์ ‘๊ทผ๋ฐฉ์‹โ–  ๋‹จ์ˆœํžˆ ์ฃผ์–ด์ง„ ๋ณ€์ˆ˜๋ช… ๊ทธ๋Œ€๋กœ a + b > b + a ์ด๋ ‡๊ฒŒ ๋น„๊ตํ•˜๋ฉด ๋‘ ์ˆซ์ž๋Š” ์ •์ˆ˜ ๋ง์…ˆ์ด๊ธฐ ๋•Œ๋ฌธ์— ํ•ญ์ƒ a + b == b + a๊ฐ€ ๋œ๋‹ค. ๋ฌธ์ œ์—์„œ ์˜๋„ํ•œ ๊ฒƒ์€ ์ˆซ์ž๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์—ฐ๊ฒฐํ•œ ํ›„, ํฌ๊ธฐ๋ฅผ ๋น„๊ตํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋น„๊ตํ•˜๋ ค๋ฉด String.valueOf(a) + b์™€ String.valueOf(b) + a ๋ฅผ ๋น„๊ตํ•ด์•ผ ํ•œ๋‹ค.  โ–   ๋˜ ๋‚˜๋Š” ์ฒ˜์Œ์— sb.toString()์„ ์จ์„œ int๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ์‹ค์ˆ˜๋ฅผ ํ–ˆ๋Š”๋ฐ,  sb.toString()์€ ๋ฌธ์ž์—ด์ด๊ธฐ ๋•Œ๋ฌธ์—, int ํƒ€์ž…์„ ๋ฐ˜ํ™˜ํ•˜๋Š” solution ๋ฉ”์„œ๋“œ์™€ ํƒ€์ž…์ด ๋งž์ง€ ์•Š๋Š”๋‹ค. ๊ทธ๋ž˜์„œ Integer.parseInt(sb.toString())์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ€ํ™˜ํ•ด์•ผ ํ•œ๋‹ค.  ํ‹€๋ฆฐ ์ฝ”๋“œclas..
๐Ÿ“‘ 1. ๋ฌธ์ œ์„ค๋ช… ๐Ÿ’ก 2. ์ •๋‹ต์ฝ”๋“œ๐Ÿ™…๐Ÿป‍โ™€๏ธ ์ฒซ ๋ฒˆ์งธ ์‹œ๋„ - ํ‹€๋ฆผ โŒํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ˜์†”์ด ์ž๋™์™„์„ฑ์ด ์•ˆ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ƒ๊ฐ๋‚˜๋Š”๋ฐ๋กœ ์จ์„œ ๋งŽ์ด ํ‹€๋ ธ๋‹ค.class Solution {    public String solution(String str1, String str2) {        StringBuilder sb = new StringBuilder();        for(int i = 0; i   ์˜ค๋‹ต ์ •๋ฆฌโญ str1.length → str1.length() length๋Š” ๋ฐฐ์—ด์—์„œ ์‚ฌ์šฉ๋˜๊ณ , ๋ฌธ์ž์—ด์—์„œ๋Š” length() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. โญ  sb.add(...) → sb.append(...)StringBuilder๋Š” add() ๋ฉ”์„œ๋“œ๊ฐ€ ์—†๊ณ , ๋Œ€์‹  append()๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.โญ  st..
๐Ÿ“‘ 1. ๋ฌธ์ œ์„ค๋ช…โญ 2. ์ •๋‹ต์ฝ”๋“œclass Solution { public String solution(String my_string, String overwrite_string, int s) { // ์•ž๋ถ€๋ถ„๊ณผ ๋’ท๋ถ€๋ถ„์„ ์ถ”์ถœํ•œ ํ›„ overwrite_string์„ ์ค‘๊ฐ„์— ์‚ฝ์ž… String before = my_string.substring(0, s); String after = my_string.substring(s + overwrite_string.length()); return before + overwrite_string + after; }} โญ String before = my_string.substring(0, s); ์—์„œ substr..
โœ… 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` ํ•ด ์ค€๋‹ค.  ์—ฌ๊ธฐ๊นŒ์ง€ ํ–ˆ์œผ๋ฉด ์ด์ œ..
์ธ์ ˆ๋ฏธ์˜€๋˜๊ฒƒ
'๋ฉ”์„œ๋“œ' ํƒœ๊ทธ์˜ ๊ธ€ ๋ชฉ๋ก
์ƒ๋‹จ์œผ๋กœ