๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ ˆ๊ฑฐ์‹œ

2022.1.2์˜ ๊ธฐ๋ก (25์‚ด์˜ ์ฒซ ์ผ์š”์ผ)

by GroovyArea 2022. 1. 2.

์–ด์ œ ์ €๋…์œผ๋กœ ๋จน์€ ๋‚˜๊ฐ€์‚ฌ๋ผ ์งฌ๋ฝ• ใ…Žใ…Ž.

- ์˜ค๋Š˜์˜ ํ‰๊ฐ€ ๋ฐ ๋Š๋‚€ ์  - 

=> ์–ด์ œ๋Š” ๊ฐ•๋‚จ์—ญ ์Šคํ„ฐ๋””๋ฃธ์—์„œ ์„ธ๋ฏธ ํŒ€ํ”„๋กœ์ ํŠธ ์กฐ์›๋“ค๊ณผ ํšŒ์˜ ๋ฐ ๊ณต๋ถ€๋ฅผ ํ–ˆ๋‹ค. JDBC ์ˆ™์ œ๋ฅผ ๋‚ด์ฃผ์—ˆ๋”๋‹ˆ ์•„์‰ฝ๊ฒŒ ์™„์„ฑ๊นŒ์ง„ ์•„๋‹ˆ๋”๋ผ๋„ ์–ด๋Š์ •๋„ ํ•ด์˜จ ๊ฑฐ์— ์นญ์ฐฌ์„ ํ•ด์ฃผ๊ณ  ์‹ถ์—ˆ๋‹ค. ์‹ฌ์ง€์–ด ์ž๊ธฐ๊ฐ€ ๋ง‰ํžŒ ๋ถ€๋ถ„์—์„œ ์งˆ๋ฌธ์„ ์ค€๋น„ ํ•ด ์˜จ๊ฒƒ์ด ์•„์ฃผ ๊ธฐํŠนํ–ˆ๋‹ค. sh ํ˜•๋„ ํ™•์‹คํžˆ ํ•˜์‹œ๋ ค๋Š”๊ฒŒ ๋ณด์ด๊ธฐ ๋•Œ๋ฌธ์— ๋งˆ์Œ์ด ํ•œ๊ฒฐ ํŽธํ•ด์กŒ๋‹ค. ์ด๋Œ€๋กœ๋งŒ ํ•ด์ฃผ์‹œ๋ฉด ์ข‹๊ฒ ๋‹ค. DAO ํด๋ž˜์Šค ๋ฉ”์†Œ๋“œ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์„ ์–ด๋Š์ •๋„ ์‹œํ‚จ ํ›„์— ๋‹ค์‹œ ์ „์ฒด์ ์ธ ํ”„๋กœ๊ทธ๋žจ์˜ ํ๋ฆ„์„ ์„ค๋ช…ํ•ด ์ฃผ๋ฉด์„œ ์งˆ๋ฌธ์„ ์ฝ•์ฝ• ๋˜์ง€๋‹ˆ ๋Œ€๋‹ต์„ ์ž˜ํ•˜๋Š” ๋ถ€๋ถ„๊ณผ ๋…ธํŠธ์— ๋ฐ›์•„ ์ ๋Š” ๋ชจ์Šต์ด ์•„์ฃผ ๋งŒ์กฑ์Šค๋Ÿฌ์› ๋‹ค. ์ด์ œ์•ผ ์ดํ•ด๊ฐ€ ๋˜์—ˆ๋‹ค๋Š” ๋ง์„ ๋“ค์œผ๋‹ˆ ์šฐ๋ฆฌ ํŒ€ํ”„๋กœ์ ํŠธ๋„ ํฌ๋ง์ด ์žˆ๋‹ค๋Š” ๋Š๋‚Œ์„ ๋ฐ›์•˜๋‹ค. ์ด๋Œ€๋กœ๋งŒ ํ•ด์ฃผ๋ฉด ์ข‹๊ฒ ๋‹ค. JDBC๋ฅผ ๋งˆ์น˜๊ณ  ์ „์ฒด์ ์ธ ํŒ€ํ”„๋กœ์ ํŠธ ํšŒ์˜์— ๋“ค์–ด๊ฐ”๋‹ค. ์šฐ๋ฆฌํŒ€์€ ํƒ€๊ณ ๋‚œ ์‹ค๋ ฅ์ž๋Š” ์—†์ง€๋งŒ ์ •๋ณด๊ฐ€ ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ ๊ฒƒ์„ ๋ฌด๊ธฐ์‚ผ์•„ ์ž„ํ•  ๊ฒƒ์ด๋‹ค. ๋Œ€๋žต์ ์ธ ๋ฉ”์ธ ํŽ˜์ด์ง€์˜ ๊ตฌ์„ฑ๊ณผ ์‚ฌ์ดํŠธ์˜ ์ด๋ฆ„๊ณผ ๋””์ž์ธ์„ ์ •ํ•˜๊ธฐ๋กœ ํšŒ์˜ํ–ˆ๊ณ , ์–ด๋–ค ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•  ๊ฒƒ์ธ์ง€ ํšŒ์˜๋ฅผ ํ–ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  DB ์„ค๊ณ„๋„๋ฅผ ๋ณด๋ฉฐ ์–ด๋–ค ํ๋ฆ„์ธ์ง€ ๋ถ„์„์„ ๋งˆ์ณค๋‹ค. 

ํฌ์˜๊ฐ€ ๋๋‚˜๊ณ  ์šด๋™์„ ๋งˆ์นœ ํ›„ ๋‚˜๊ฐ€์‚ฌ๋ผ ์งฌ๋ฝ•์„ ๋จน๊ณ  ์ง‘์— ์™€์„œ ์•„์‰ฝ๊ฒŒ ์ฐธ์„ํ•˜์ง€ ๋ชปํ•œ ์ƒˆ๋กœ์šด ํŒ€์› kb์—๊ฒŒ ํšŒ์˜ ๋‚ด์šฉ์„ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด ๋””์Šค์ฝ”๋“œ ์Œ์„ฑ ํ†ตํ™”๋ฅผ ์ง„ํ–‰ํ–ˆ๋‹ค. ์ด ์นœ๊ตฌ๋Š” ์‹ค๋ ฅ์ด ์–ด๋Š์ •๋„ ์ธ์ง€ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ์ž์‹ ๊ฐ์žˆ๊ฒŒ ํ•˜๋Š” ๋ชจ์Šต์ด ์•„์ฃผ ๋งˆ์Œ์— ๋“ค์—ˆ๋‹ค. shํ˜•๋„ ์ฐธ์„์„ ํ•ด์ฃผ์…”์„œ ๊ณต๋ถ€๋ฅผ ํ•˜์‹œ๋Š” ๋ชจ์Šต์ด ์ธ์ƒ์ ์ด์—ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ํ•˜๋ฃจ์ข…์ผ ์ •์‹  ์—†๊ฒŒ ํŒ€์›๋“ค ์ฑ™๊ธฐ๋ฉฐ ํฌ์˜์™€ ๊ณต๋ถ€๋ฅผ ํ•˜๋‹ค๋ณด๋‹ˆ ๋ธ”๋กœ๊ทธ ์ž‘์„ฑ์„ ๊นœ๋นกํ–ˆ๋‹ค.. ์ด๋Ÿฐ ๊ฒฝ์šฐ๋Š” ๋˜ ์ฒ˜์Œ์ด๋„ค. 

=> ์•„์นจ 10์‹œ ์นœ๊ตฌ์™€ ๋“ฑ์šด๋™์„ ๋งˆ์น˜๊ณ  ์ง‘์—์™€์„œ 30๋ถ„์„ ์ž๊ณ  ๋‚˜์™€ ๋ฐ”๋กœ ์นดํŽ˜์— ๋„์ฐฉํ•ด์„œ ๋ธ”๋กœ๊ทธ๋ฅผ ์ •๋ฆฌํ•˜๋Š” ์ค‘์ด๋‹ค. 3์‹œ๋ถ€ํ„ฐ kbํŒ€์›๊ณผ ํŒŒ์ผ ์ž…์ถœ๋ ฅ ๊ณต๋ถ€๋ฅผ ์ง„ํ–‰ํ•  ์ƒ๊ฐ์ด๋‹ค. ์˜ค๋Š˜ 10์‹œ์— ํŒŒ์ผ ์ž…์ถœ๋ ฅ ์˜ˆ์ œ์™€ ํŠน๊ฐ•์„ ์ค€๋น„ํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋˜ ์ด์ œ๋ถ€ํ„ฐ ์ง‘์ค‘ํ•˜๊ณ  ๋นก์„ธ๊ฒŒ ์‹œ์ž‘ํ•ด์•ผ๊ฒ ์–ด. 

 


- ์ด๋ฒˆ ์ฃผ ๊ณต๋ถ€ ๊ณ„ํš -

> JS๋กœ Todo List ๋งŒ๋“ค๊ธฐ

> JQuery, Servlet ์ž˜ ๋ณต์Šต

> ํŒ€ํ”„๋กœ์ ํŠธ ์‹œ๋„ ๋•Œ๋„ ์—†์ด ๊ตฌ์ƒ ๋ฐ ํŒ€์›๋“ค ์‹œํ‚ฌ ๊ฑฐ ์ƒ๊ฐํ•˜๊ธฐ


- ๊ณต๋ถ€ ๋‚ด์šฉ - 

์ž…์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ ํ•„๊ธฐ 1
์ž…์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ ํ•„๊ธฐ 2
์ž…์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ ํ•„๊ธฐ 3
์ž…์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ ํ•„๊ธฐ 4

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;

public class FileProgram {
	public void start() throws NumberFormatException, IOException {
		BufferedReader brr = new BufferedReader(new InputStreamReader(System.in));

		while (true) {
			System.out.println("[ํŒŒ์ผ ์ž…์ถœ๋ ฅ ์˜ˆ์ œ ์‹คํ–‰..]");
			System.out.println("1. ํŒŒ์ผ ๋ณต์‚ฌํ•˜๊ธฐ");
			System.out.println("2. ํŒŒ์ผ ์ฝ๊ธฐ");
			System.out.println("3. ํŒŒ์ผ๋กœ ์“ฐ๊ธฐ");
			System.out.println("4. ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ");

			System.out.print("[๋ฉ”๋‰ด ์„ ํƒ] (๋ฒˆํ˜ธ ์ž…๋ ฅํ•  ๊ฒƒ.>");
			int select = Integer.parseInt(brr.readLine());

			switch (select) {
			case 1:
				copy();
				break;
			case 2:
				fileRead();
				break;
			case 3:
				fileWrite();
				break;
			case 4:
				System.exit(0);
			default:
				throw new IllegalArgumentException("Unexpected value: " + select);
			}

		}
	}

	private void fileWrite() {
		try {
			BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
			System.out.println("ํŒŒ์ผ์— ์ž‘์„ฑํ•  ๋‚ด์šฉ์„ ์ž…๋ ฅํ•˜์‹œ์˜ค =>");
			String txt = br.readLine();

			FileWriter fw = new FileWriter();

			fw.write(txt);
			fw.flush(); // ํ˜„์žฌ ๋ฌธ์žฅ์€ ์™„์„ฑ์ด์•ผ ๋ณด๋‚ด
			System.out.println("ํŒŒ์ผ์— ๊ธ€ ์ž…๋ ฅ์ด ์™„๋ฃŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.");

			fw.close();
			// fw.close() ๋ฐ”์ดํŠธ๋Š” ์•ˆํ•ด๋„ ๋˜๋Š”๋ฐ ์บ๋ฆญํ„ฐ๋Š” close()๋ฅผ ํ•ด์ค˜์•ผ ์ž…๋ ฅ์ €์žฅ์ด ๋œ๋‹ค.
		} catch (IOException e) {
			System.out.println("์˜ˆ์™ธ ๋ฐœ์ƒ.");
		}
	}

	private void fileRead() {
		try {
			File f = new File("C:\\JavaFile", "test1.txt");
			FileReader fr = new FileReader(f);

			// ํ•œ ์ค„์”ฉ ์ฝ๊ธฐ
			BufferedReader br = new BufferedReader(fr);
			while (true) {
				String str = br.readLine();
				if (str == null)
					break; // ๋‹ค์Œ ๊ฐ’ ๋„์ด๋ฉด ํ•˜์ง€๋งˆ
				System.out.println(str);
			}

		} catch (FileNotFoundException e) {
			System.out.println("ํŒŒ์ผ์ด ์กด์žฌ x ");
		} catch (IOException e) {
			System.out.println("ํŒŒ์ผ ์ฝ๊ธฐ ์—๋Ÿฌ ๋ฐœ์ƒ");
		}
	}

	private void copy() {
		try {
			File orgFile = new File("C:\\JavaFile/lion.jpg");
			if (orgFile.exists()) {// ๋ณต์‚ฌํ•  ํŒŒ์ผ์ด ์žˆ์œผ๋ฉด ๋ณต์‚ฌํ•˜๊ณ 

				String filename = orgFile.getName(); // ํŒŒ์ผ ์ด๋ฆ„ ๊ฐ€์ ธ์˜ค๊ธฐ
				File tarFile = new File("C:\\python_activity", filename);

				// ๋ณต์‚ฌํ•  ๊ณณ์— tarFile์ด ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธ ํ›„ ์—†์œผ๋ฉด ๋ณต์‚ฌํ•˜๊ณ  ์žˆ์œผ๋ฉด ํŒŒ์ผ๋ช… ๋ณ€๊ฒฝ
				if (tarFile.exists()) { // ํŒŒ์ผ์ด ์กด์žฌํ•˜๋ƒ
					// ํŒŒ์ผ๋ช…์„ ๋ณ€๊ฒฝ
					int point = filename.lastIndexOf("."); // ๋ฌธ์ž์—ด์—์„œ ๋งˆ์ง€๋ง‰ .์˜ ์œ„์น˜
					String fName = filename.substring(0, point); // ํŒŒ์ผ๋ช…(ํ™•์žฅ์ž ์ œ์™ธ)
					String ext = filename.substring(point + 1);// ํ™•์žฅ์ž ๋ฝ‘์•„์˜ค๊ธฐ

					int cnt = 1; // ๋ช‡ ๋ฒˆ์งธ ๋ณต์‚ฌ ํŒŒ์ผ์ธ์ง€
					while (true) {
						String newName = "[" + cnt++ + "๋ฒˆ์งธ ๋ณต์‚ฌ ๋œ]" + fName + "." + ext;
						tarFile = new File("C:\\python_activity", newName);
						if (!tarFile.exists()) {
							System.out.println("ํŒŒ์ผ์ด ์ด๋ฏธ ์žˆ์Šต๋‹ˆ๋‹ค.");
							break; // ์ด๋ฏธ ์žˆ์œผ๋‹ˆ
						}
					}
				}
				FileInputStream fis = new FileInputStream(orgFile); // ์ฝ๊ณ 
				FileOutputStream fos = new FileOutputStream(tarFile);// ์“ฐ๊ธฐ

				byte inData[] = new byte[(int) orgFile.length()]; // ํŒŒ์ผ์—์„œ ์ฝ”๋“œ๋ฅผ์ฝ์–ด์„œ ๋‹ด์„ ๋ฐฐ์—ด์„ ์„ ์–ธ. newbyte์— int ๋ฐ–์— ๋„ฃ์„ ์ˆ˜ ์—†์œผ๋‹ˆ ํ˜•๋ณ€ํ™˜
				fis.read(inData, 0, inData.length);

				fos.write(inData, 0, inData.length); // byte๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋งŒํผ ํ•œ๋ฒˆ์— ์“ฐ๊ธฐ
			} else {
				System.out.println("ํŒŒ์ผ์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค.");
			}

			System.out.println("๋ณต์‚ฌ ์™„๋ฃŒ.");
		} catch (Exception e) {
			System.out.println("์˜ˆ์™ธ ๋ฐœ์ƒ =>" + e.getMessage());
		}

	}
}

=> ์–ด์ œ ๋งŒ๋“  ๊ฐ„๋‹จํ•œ ํŒŒ์ผ ์ž…์ถœ๋ ฅ ์˜ˆ์ œ


- ์„ธ๋ฏธ ํŒ€ํ”Œ -

JDBC

  • 30๋ถ„๊นŒ์ง€๋งŒ
  • ํ๋ฆ„ ๋ฐœํ‘œ

์Šคํ„ฐ๋”” ํšŒ์˜

  1. ์„ธ๋ถ€ ๊ธฐ๋Šฅ ํšŒ์˜ (๋ฒ„ํŠผ ๋ณ„ ์•ก์…˜, ํŽ˜์ด์ง€๋ผ๋˜์ง€.. ๊ฐ„๋žตํ•˜๊ฒŒ)
  2. DB ๋ถ„์„ (๋˜๋ฉด)?
  3. ํŒŒ์ผ ์ž…์ถœ๋ ฅ์€ ํ˜ผ์žํ•ด์•ผ๊ฒ ๋‹ค.

๋ฉ”์ธํŽ˜์ด์ง€

⇒ ์‚ฌ์ดํŠธ ๋กœ๊ณ ๋Š” (DH๋‹˜)

⇒ ์œ„์— ๋น„๋””์˜ค

⇒ ์ค‘๊ฐ„ ๋ผ์ธ ๋ฒ ์ŠคํŠธ 3๊ฐœ ์‚ฌ์ง„ ๋„ฃ๊ณ  ์„ค๋ช… ๋ฐ”๊พธ๊ณ 

⇒ ์ธ์Šคํƒ€ ์—†์• ๊ธฐ

⇒ ๋ฐ‘์— ๊ตฌ๊ธ€์–ด์Šค ์—†์• ๊ธฐ (๊ตฌ๊ธ€ ์ง€๋„๋Š” ์•„์ดํ‹ฐ์œŒ)

⇒ ๋ฐ‘์— ์ด๋ฏธ์ง€ ๋ณ€๊ฒฝ

⇒ ์—ฌ์„ฑ ํ–ฅ์ˆ˜๋นผ๊ณ  ์ค‘์„ฑํ–ฅ๋งŒ

์‚ฌ์ดํŠธ ๋ช… :

muškiMusky (๋‚จ์ž ๋‹ค์šด ํ–ฅ) DH๋‹˜ ์•„์ด๋””์–ด

์‚ฌ์ดํŠธ ์†Œ๊ฐœ :

⇒ ์Šคํ† ๋ฆฌ ์“ธ ๋•Œ ์šด๋™ ํ›„ ์Šคํฌ์ธ  ํ–ฅ ์จ๋„ ๋  ๊ฒƒ ๊ฐ™์Œ.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค :

⇒ ํˆด ์ด์šฉํ•ด์„œ ํ•˜๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์Œ ใ…‡ใ…‹.


- ์Šคํ„ฐ๋”” ๊ณ„ํš ๋ฐ ๊ฒฐ๊ณผ - 

> ํŒŒ์ผ ์ž…์ถœ๋ ฅ ์˜ˆ์ œ ๋ฐ ํŠน๊ฐ• ์ง„ํ–‰ ์˜ˆ์ •

> ์•„์ฃผ ์ž˜ ์ดํ•ด ๋˜์—ˆ์Œ. ์ง๋ ฌํ™” ์ค‘์š”

> ํŒŒ์ผ ์ž…์ถœ๋ ฅ์„ ์„ธ๋ฏธํ”„๋กœ์ ํŠธ์˜ ์–ด๋Š ๋ถ€๋ถ„์— ์‚ฌ์šฉํ•  ๊ฒƒ์ธ์ง€

๋ฐ˜์‘ํ˜•

'๋ ˆ๊ฑฐ์‹œ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

2021.1.4์˜ ๊ธฐ๋ก  (0) 2022.01.04
2022.1.3์˜ ๊ธฐ๋ก  (0) 2022.01.03
2021.12.31์˜ ๊ธฐ๋ก  (0) 2021.12.31
2021.12.30์˜ ๊ธฐ๋ก  (0) 2021.12.30
2021.12.29์˜ ๊ธฐ๋ก  (0) 2021.12.29