Common ํ๋ก์ ํธ ๋ด์์ ๊ณตํต์ผ๋ก ์ฌ์ฉํ ๋ฉ์๋ ๊ตฌํ package com.kh.jdbc.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class Common { final static String ORACLE_URL = "jdbc:oracle:thin:@localhost:1521:xe"; final static String ORACLE_ID = "SCOTT"; final static String ORACLE_PWD = "TIGER"; final static String ORACLE_DRV = "oracle.jdbc.driv..

JDBC Java ์ธ์ด๋ฅผ ์ด์ฉํด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผํ๊ธฐ ์ํ API JDBC๋ฅผ ์ด์ฉํ์ฌ Java ์ธ์ด๋ฅผ ์ด์ฉํด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ํ๊ณ SQL๋ฌธ์ ์ด์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ๊ฑฐ๋ ์์ JDBC API ์ด์ฉ์ DBMS ์ข ๋ฅ์ ์๊ด์์ด ํ๋์ ๋ฐฉ๋ฒ์ผ๋ก ์์ ์งํ ๊ฐ๋ฅ JDBC ์ฌ์ฉ ๊ฐ์ฒด ๋๋ผ์ด๋ฒ ๋ก๋ ๐ ๋ฐ์ดํฐ ์๋ณธ์ JDBC ๋๋ผ์ด๋ฒ๋ฅผ ํตํ์ฌ ์ปค๋ฅ์ ์ ๋ง๋๋ ์ญํ ๐ Class.forName() ๋ฉ์๋๋ฅผ ํตํด ์์ฑ๋๋ฉฐ ๋ฐ๋์ ์์ธ์ฒ๋ฆฌ ํด์ผํจ. ๐ ์ง์ ๊ฐ์ฒด ์์ฑ์ด ๋ถ๊ฐ๋ฅํ๊ณ getConnection() ๋ฉ์๋๋ฅผ ์ฌ์ฉํด์ผ ํจ. Class.forName() : ์ฌ์ฉํ๊ณ ์ ํ๋ JDBC ๋๋ผ์ด๋ฒ๋ฅผ ์ง์ , ํด๋น ๋๋ผ์ด๋ฒ ๋ด๋ถ์ ์๋ ํด๋์ค๋ค์ ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค(D/B) ์ฐ๊ฒฐ ํน์ ๋ฐ์ดํฐ ์๋ณธ๊ณผ ์ฐ๊ฒฐ๋ ์ปค๋ฅ์ ์..
์ผ์ ์ Map์ ์ด์ฉํด์ ์นดํ ๋ฉ๋ด ๋ง๋ค๊ธฐ ์์ ๋ฅผ ๋ง๋ค์์๋๋ฐ, ํ ๋จ๊ณ ์ ๊ทธ๋ ์ด๋ ํ์ฌ ์ธ๋ถ ํ์ผ์ ์ ์ฅํ๋ ๊ฒ์ ์ถ๊ฐ(๊ฐ์ฒด์ง๋ ฌํ) ๐ก ๊ฐ์ฒด ์ง๋ ฌํ(Serializable) ํ๋ ์ด์ ? ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋์คํฌ์ ์ ์ฅํ๊ฑฐ๋ ๋คํธ์ํฌ ํต์ ์ ์ฌ์ฉํ๊ธฐ ์ํ ํ์์ผ๋ก ๋ณํํ๋ ๊ฒ ๐ถ ๋์คํฌ์ ์ ์ฅ/๋คํธ์ํฌ ํต์ ์ ์ฌ์ฉํ๋ ค๋ฉด ๊ฐ์ฒด ์ฐธ์กฐํ์ ์ ์๋๋๊ฑด๊ฐ? ๋์คํฌ์ ์ ์ฅํ๊ฑฐ๋ ๋คํธ์ํฌ ํต์ ์ ์ฌ์ฉํ๋ ค๋ฉด ๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์ ์ฆ, ๊ฐ ํ์ ๋ฐ์ดํฐ๋ง ๊ฐ๋ฅํจ. ๐ถ ์, ์ฐธ์กฐ ํ์ ๋ฐ์ดํฐ๋ ๊ฐ์ด ์๋ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ ์๋๋๊ฑฐ๊ตฌ๋. ๐ธ ๋ง์. ์ด๋ฌํ ์ฐธ์กฐ ํ์ ๋ฐ์ดํฐ(๊ฐ์ฒด)๋ฅผ ์ง๋ ฌํ ํ๊ฒ ๋๋ฉด ๊ฐ ํ์ ๋ฐ์ดํฐ๋ก ๋ณํํด์ค. ๐ก ํ ์ค ์ ๋ฆฌ!! ์ฌ์ฉํ๊ณ ์๋ ๋ฐ์ดํฐ๋ค์ ํ์ผ ์ ์ฅ ํน์๋คํธ์ํฌ/๋ฐ์ดํฐ ํต์ ์์ parsin..
๋ฌธ์ ์์์ ์์น์ ์๋ ๋ด์ฉ์ด ๋ด๊ธด ํ ์คํธ ํ์ผ์ ๋ง๋ค๊ณ , ํด๋น ํ์ผ์ ์ฝ์ด ์ด์ ์ ๊ตฌํ๊ณ ์ด์ ์ด ๋์ ์ฌ๋ ์์ผ๋ก ์ด๋ฆ๊ณผ ์ด์ ์ถ๋ ฅํ๊ธฐ (๋จ, ์ด์ ์ด ๊ฐ์ ๊ฒฝ์ฐ์๋ ์ด๋ฆ ์์ผ๋ก ์ ๋ ฌ) .txt ์์ ์ง 99 78 45 ์ด์์ง 34 56 100 ์ด์ค์ง 56 78 34 ์ฐ์์ฐ 99 98 97 ์ ๋ช ์ 96 99 98 ์ด์คํธ 77 87 88 ๊ถ๋ฏผ์ฐ 96 93 90 ์ต์์ฐ 97 88 87 ๋๊ทธ๋ผ๋ฏธ 45 34 67 ๋ฏธ๋ฏธ 45 56 78 ๐ธ : ๋ฌธ์ ๋ฅผ ํ์ ํ ๋ค์๋ ํด๋น ์ฒ๋ฆฌ ์์๋ฅผ ๋จผ์ ์ ํด๋๋ ๊ฒ์ด ์ข๋ค. (1) ํ์ผ์ ์ฝ์ด์จ๋ค. โScanner (2) ์ ๋ณด๋ฅผ ๋จ์๋ณ๋ก ์ชผ๊ฐ ๋ค. โnextLine() : ์ค๋ฐ๊ฟ ๊ธฐ์ค์ผ๋ก ๋๋ , split() : ๊ณต๋ฐฑ ๊ธฐ์ค์ผ๋ก ๋๋๋ฉด ๋ ๊ฒ ๊ฐ์ (3) ๊ทธ ์ ๋ณด๋ฅผ ๊ฐ์ฒด์ ๋ด๋๋ค...

์ ์ถ๋ ฅ(I/O)? Input๊ณผ Output์ ์ฝ์ ์ปดํจํฐ ๋ด๋ถ ๋๋ ์ธ๋ถ ์ฅ์น์ ํ๋ก๊ทธ๋จ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๊ฒ ์ฅ์น์ ์ ์ถ๋ ฅ์ ์ํด์๋ ํ๋์จ์ด ์ฅ์น์ ์ง์ ์ ๊ทผ์ด ํ์ํ๋ฐ ๋ค์ํ ๋งค์ฒด์ ์กด์ฌํ๋ ๋ฐ์ดํฐ๋ค์ ์ฌ์ฉํ๊ธฐ ์ํด ์ ์ถ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ๊ณตํต์ ์ธ ๋ฐฉ๋ฒ์ผ๋ก ์คํธ๋ฆผ์ ์ด์ฉํจ. ์คํธ๋ฆผ ์๋ฐ์์๋ ํ์ผ์ด๋ ์ฝ์์ ์ ์ถ๋ ฅ์ ์ง์ ๋ค๋ฃจ์ง ์๊ณ , ์คํธ๋ฆผ์ด๋ผ๋ ํ๋ฆ์ ํตํด ์ ์ด ์ค์ ์ ์ ๋ ฅ์ด๋ ์ถ๋ ฅ์ด ํํ๋ ๋ฐ์ดํฐ์ ์ด์ํ๋ ํ๋ฆ ์ฆ, ์คํธ๋ฆผ์ ์ด์์ฒด์ ์ ์ํด ์์ฑ๋๋ ๊ฐ์์ ์ฐ๊ฒฐ ๊ณ ๋ฆฌ๋ฅผ ์๋ฏธํ๋ฉฐ, ์ค๊ฐ ๋งค๊ฐ์ ์ญํ ์ ํจ ์คํธ๋ฆผ ํน์ง FIFO๊ตฌ์กฐ ๐ถ ๋จผ์ ๋ค์ด๊ฐ ๋ฐ์ดํฐ๊ฐ ๋จผ์ ๋์ค๋ ํํ๋ก ๋ฐ์ดํฐ์ ์์๊ฐ ๋ฐ๋์ง ์๋๋ค ๋จ๋ฐฉํฅ ๐ถ ํ๋์ ์คํธ๋ฆผ์์ ์ ์ถ๋ ฅ์ด ๋์์ ์ด๋ฃจ์ด ์ง์ง ์๋๋ค ์ ๋ ฅ๊ณผ ์ถ๋ ฅ์ ๊ฐ๊ฐ ..
์คํธ๋ฆผ(Stream)? ํจ์ํ ํ๋ก๊ทธ๋จ์ ์ด์ฉํด ๋ค์ํ ๋ฐ์ดํฐ ์์ค(๋ฐฐ์ด, ํ๋ ์ ์ํฌ ๋ฑ)๋ฅผ ํ์คํ๋ ๋ฐฉ๋ฒ์ผ๋ก ๋ค๋ฃจ๊ธฐ ์ํ ๊ฒ Stream์ Collection ์์ ์์. ์คํธ๋ฆผ์ ์ฐ๋ ์ด์ ? ์ฝ๋๊ฐ ๊ฐ๊ฒฐํด์ง๊ณ ์ผ๊ด์ฑ ์ ์ง๊ฐ ๊ฐ๋ฅํด์ง. โก๏ธ ๋งฅ๋๋ ๋ ๊ฐ๋จ ์ง์ ์ด๋ ๋ถ์ฐ ์ง์ ์ด๋ ํ๋ฒ๊ฑฐ ๋ง์ด ๋๊ฐ์ ๊ฒ ์ฒ๋ผ ๋๊ฐ ์ฝ๋๋ฅผ ์์ฑํ๋ ๋์ผํ ํ์์ด ๋์ฌ ์ ๋ฐ์ ์๊ธฐ ๋๋ฌธ์ ์ฝ๋์ ์ ๋ขฐ๋๊ฐ ๋์์ง๊ณ ๋ฒ๊ทธ๊ฐ ์๊ธฐ์ง ์์. ์คํธ๋ฆผ ํน์ง ์๋ฃ์ ๋์๊ณผ ๊ด๊ณ์์ด ๋์ผํ ์ฐ์ฐ ์ํ ์ธ๋ถ ๋ฐ๋ณต์ ํตํด ์์ ํ๋ ์ปฌ๋ ์ ๊ณผ ๋ฌ๋ฆฌ ๋ด๋ถ ๋ฐ๋ณต์ ํตํด ์์ ์ํ ( ๋ฐ๋ณต๋ฌธ ๋ฐฐ์ ) ์คํธ๋ฆผ์ ํ๋ฒ ์์ฑ ๋ ํ ์ต์ข ์ฐ์ฐ์ ํตํด ์๋ชจ๋๋ฉด ์ฌ์ฌ์ฉ ๋ถ๊ฐ (์ต์ข ์ฐ์ฐ์ ํ ๋ฒ๋ง ๊ฐ๋ฅ!!) ์๋ณธ ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํ์ง ์์ ์ง์ฐ ์ฐ์ฐ ์ง์ ๋ณ๋ ฌ ์ฒ..
ํจ์ํ ํ๋ก๊ทธ๋๋ฐ? ์์ํจ์ ๋์ผํ ์ ๋ ฅ์๋ ํญ์ ๊ฐ์ ๊ฐ์ ๋ฐํํด์ผ ํ๋ ํจ์ ํจ์์ ์คํ์ด ํ๋ก๊ทธ๋จ์ ์คํ์ ์ํฅ์ ๋ฏธ์น์ง ์์์ผ ํ๋ ํจ์ ํจ์์ ๋ด๋ถ์์ ์ธ์๊ฐ์ ๋ณ๊ฒฝํ๊ฑฐ๋ ํ๋ก๊ทธ๋จ์ ์ํ๋ฅผ ๋ณ๊ฒฝํ๋ Side Effect๊ฐ ์๋ ๊ฒ ๋น์ํ, ๋ถ๋ณ์ฑ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์์์ ๋ฐ์ดํฐ๋ ๋ณํ์ง ์๋ ๋ถ๋ณ์ฑ์ ์ ์งํด์ผ ํ๋ค. ์ ์ธํ ํจ์ if, for, switch์ ๊ฐ์ ์กฐ๊ฑด๋ฌธ/๋ฐ๋ณต๋ฌธ ์ฌ์ฉ ๊ธ์ง 1๊ธ ๊ฐ์ฒด์ ๊ณ ์ฐจ ํจ์ ๊ฐ์ฒด๋ฅผ ๋งค๊ฐ๋ณ์๋ก ์ ๋ฌํ ์ ์๋ค. ๋๋ค(Lambda) ๋๋ค ํํ์ ์์ฑ ์๋ฐ์์๋ ํ์ดํ(->)๊ธฐํธ๋ฅผ ์ฌ์ฉํ์ฌ ๋๋ค ํํ์์ ์์ฑํ ์ ์์ต๋๋ค. ๋งค๊ฐ๋ณ์์ ํ์ ์ ์ถ๋ก ํ ์ ์๋ ๊ฒฝ์ฐ, ํ์ ์๋ต ๊ฐ๋ฅ ๋งค๊ฐ๋ณ์๊ฐ ํ๋์ธ ๊ฒฝ์ฐ ๊ดํธ() ์๋ต ๊ฐ๋ฅ ํจ์์ ๋ชธ์ฒด๊ฐ ํ๋์ ๋ช ๋ น๋ฌธ๋ง์ผ๋ก ์ด๋ฃจ์ด์ง..

์์ธ ํด๋์ค? ์คํ์ค์ธ ํ๋ก๊ทธ๋จ์ด ์๋ํ์ง ์์ ๋์์ ํ๊ฑฐ๋ ํ๋ก๊ทธ๋จ์ด ์ค์ง๋๋ ๊ฒ์ ๋ง๊ธฐ ์ํด ์์ธ ์ฒ๋ฆฌ๋ฅผ ํ๋ค. ํ๋ก๊ทธ๋จ์์ ์ฒ๋ฆฌํ๋ ์์ธ ํด๋์ค์ ์ต์์ ํด๋์ค๋ Exception ํด๋์ค ์ด๋ค. ์์คํ ์ค๋ฅ & ์์ธ 1. ์์คํ ์ค๋ฅ(Error) : ๊ฐ๋ฐ์๊ฐ ์ ์ด ํ ์ ์์ 2. ์์ธ(Exception) : ํ๋ก๊ทธ๋จ์์ ์ ์ด ๊ฐ๋ฅ (try ~ catch ~ finally ๋ธ๋ก) ์) ํ๋ก๊ทธ๋จ์์ ํ์ผ์ ์ฝ์ ์ ์๋ ๊ฒฝ์ฐ, ๋คํธ์ํฌ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ณ ์ ํ๋๋ฐ ๋คํธ์ํฌ๊ฐ ์ฐ๊ฒฐ์ด ์๋ ๊ฒฝ์ฐ, ๋ฐฐ ์ด ๊ฐ์ ์ถ๋ ฅํ๊ณ ์ ํ๋๋ฐ ๋ฐฐ์ด ์์๊ฐ ์๋ ๊ฒฝ์ฐ ๋ฑ ArrayIndexOutOfBoundException ๋ฐฐ์ด ๋ฒ์ ์ด๊ณผ์ ๋ํ ์์ธ ์ฒ๋ฆฌ public class Main { public static ..
๋ฉํฐ ์ค๋ ๋๋ฅผ ์ด์ฉํ์ฌ ํ ์บ๋ฆญํฐ๊ฐ ์ฃฝ์ ๋ ๊น์ง ์คํํ๋ ํ๋ก๊ทธ๋จ ๋ง๋ค๊ธฐ! ์บ๋ฆญํฐ๋ ์ ์ฌ(warrior)์ ๋ง๋ฒ์ฌ(wizard)๋ฅผ ๋ง๋ค๊ฒ ์ต๋๋ค. ๋ฅ๋ ฅ์น๋ ๊ฐ์ฒด ์์ฑํ ๋ ์ค์ ํ๋๋ก ํ๊ฒ ์ต๋๋ค. ์ค๊ณ ๋ด์ฉ ์์๊ณผ ์ธํฐํ์ด์ค ์ ์ฉ ์ค๋ ๋ ๋์ ํ์ธ ๊ฒ์ ์บ๋ฆญํฐ๋ฅผ ์์ฑํ๊ณ ์ค๋ ๋๋ฅผ ํตํด ์ค์๊ฐ ์ ํฌ ์งํ Main import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("๊ฐ๋ ฅํ ์ฒด๋ ฅ๊ณผ ๋ฌผ๋ฆฌ ๊ณต๊ฒฉ๋ ฅ์ ์ ์ฌ ์ด๋ฆ์ ์ ํ์ธ์ : "); String warriorName = sc.next(); System.out.print..

๋ฉํฐ ์ค๋ ๋(Multi Thread)? ํ๋์ ํ๋ก๊ทธ๋จ์์ ์ฌ๋ฌ๊ฐ์ง ์ผ์ ๋์์ ์ํํ๋ ๊ฒ When code running in some thread creates a new Thread object, the new thread has its priority initially set equal to the priority of the creating thread, and is a daemon thread if and only if the creating thread is a daemon. Main Thread ๐ก๋ชจ๋ ์๋ฐ ์ดํ๋ฆฌ์ผ์ด์ ์ Main Thread๊ฐ main() ๋ฉ์๋๋ฅผ ์คํํ๋ฉด์ ์์๋ฉ๋๋ค. ๐ก์ค๋ ๋๋ ์ด์์ฒด์ ๊ฐ ์คํ์ํค๊ธฐ ๋๋ฌธ์ ์ฝ๊ฐ์ ํ ์ด ์์ ์ฑ๊ธ ์ค๋ ๋๋ ๋ฉ์ธ ์ค๋ ๋๊ฐ ์ข ๋ฃ๋๋ฉด ํ๋ก์ธ..