๐Ÿ“… ์ฃผ๊ฐ„ ํšŒ๊ณ (221107 ~ 221114)

  • ~ ์ž๋ฐ” ๋งˆ์ง€๋ง‰ ๋ถ€๋ถ„
  • ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ

๐Ÿ“š ๊ณต๋ถ€ํ•œ ๊ฒƒ ์ •๋ฆฌ


๐Ÿ“‹ ์ž๋ฐ”

์ž๋ฐ” ๊ฐ•์˜์˜ ๋งˆ์ง€๋ง‰ ๋ถ€๋ถ„๊นŒ์ง€ ๋๋‚ด๋Š” ๋ฐ์— ์ดˆ์ ์„ ๋’€๊ธฐ์— ์ž๋ฐ”๋งŒ ๊ณต๋ถ€ํ–ˆ๋‹ค.
์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์‹œ์ž‘ํ•จ.

โœ๏ธ ๊ฐœ๋…

๐Ÿ“„ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ

  • ์ž…/์ถœ๋ ฅ ๋˜๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€๋กœ ์ƒ๊ธฐ๋Š” ์˜ค๋ฅ˜์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๋ฅผ ๋‹ค๋ฃจ๋Š” ๋‚ด์šฉ์œผ๋กœ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋”๋ผ๋„ ๊ณ„์†ํ•ด์„œ ํ”„๋กœ๊ทธ๋žจ์„ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ์‹ ๊ธฐํ–ˆ๋‹ค. ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๊ทธ ๋ถ€๋ถ„์„ ๋„˜๊ฒจ์„œ ์ง„ํ–‰ํ•ด๋ฒ„๋ฆฌ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์–˜๊ธฐ๋“ค๋กœ ๋ชจ๋“  ์˜ค๋ฅ˜๋ฅผ ๋‚ด๊ฐ€ ์•Œ๊ธฐ๋Š” ๋ฌด๋ฆฌ๊ฐ€ ์žˆ์—ˆ๋‹ค.

  • throwsํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์ง€๋งŒ try - catch๋ฅผ ํ•ด์•ผํ•˜๋Š” ์ƒํ™ฉ์ด ๋งŽ์„ ๊ฒƒ ๊ฐ™๋‹ค. ์ผ๋‹จ 3๊ฐ€์ง€์˜ ๋ฐฉ๋ฒ•์ด ์žˆ๋Š”๋ฐ 3๊ฐ€์ง€ ์ค‘์— 3๋ฒˆ์ด ๊ฐ€์žฅ ์ข‹์€ ๊ฒƒ ๊ฐ™๋‹ค.

  1. try - catch
try {
	์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ ๋ถ€๋ถ„
} cathc(์ฒ˜๋ฆฌํ•  ์˜ˆ์™ธ ํƒ€์ž… e) { // e๋Š” ์ธ์Šคํ„ด์Šค๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ํŽธํ•จ, ์‹ค์ œ๋กœ e.toString()์ฒ˜๋Ÿผ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
	try ๋ธ”๋ก ์•ˆ์—์„œ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ถ€๋ถ„
}
  1. try - catch - finally
try {
	์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ ๋ถ€๋ถ„
} cathc(์ฒ˜๋ฆฌํ•  ์˜ˆ์™ธ ํƒ€์ž… e) { // e๋Š” ์ธ์Šคํ„ด์Šค๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ํŽธํ•จ, ์‹ค์ œ๋กœ e.toString()์ฒ˜๋Ÿผ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
	try ๋ธ”๋ก ์•ˆ์—์„œ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ถ€๋ถ„
}finally{
 ๋ฐ˜๋“œ์‹œ ์‹คํ–‰๋จ
 }
  1. try - with - resources
try (FileInputStream fis = new FileInputStream("a.txt")){
			// ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ ๋ถ€๋ถ„
            
		} catch (FileNotFoundException e) { // ๋ฆฌ์†Œ์Šค ํ˜ธ์ถœ์‹œ ์ƒ๊ธฐ๋Š” ์˜ˆ์™ธ ์ฒ˜๋ฆฌ
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) { // ๋ฆฌ์†Œ์Šค ํ•ด์ œ์‹œ ์ƒ๊ธฐ๋Š” ์˜ˆ์™ธ ์ฒ˜๋ฆฌ
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
  • ๊ฐ€์žฅ ์–ด๋ ค์› ๋˜ ๋ถ€๋ถ„์€ ๋‚ด๊ฐ€ ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฅผ ๋งŒ๋“œ๋Š” ๋ถ€๋ถ„์ด์—ˆ๋‹ค. ์˜ˆ์™ธ์ฒ˜๋ฆฌ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒ์†๋ฐ›์€ ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค๊ณ  ๋ฉ”์„œ๋“œ ๋ถ€๋ถ„์—์„œ throws๋กœ ์—๋Ÿฌ๋ฅผ ๋ฐœ์ƒ์‹œ์ผœ ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์ด์—ˆ๋‹ค. ํฐ ํ‹€์—์„œ ๋ณด๋ฉด ๊ฐ์ฒด์ง€ํ–ฅ์˜ ํ•œ ๊ฐ์ฒด์— ๋ถˆ๊ณผํ•˜๊ฒ ์ง€๋งŒ ๋‹ค์–‘ํ•œ ์“ฐ์ž„์ƒˆ๋กœ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•  ๊ฒƒ ๊ฐ™๊ธฐ์— ์ƒ๊ฐ์ด ๋งŽ์•„์ง€๋Š” ๋ถ€๋ถ„์ด๋‹ค.
public class PasswordException extends Exception { // Exception์„ ์ƒ์†

	public PasswordException(String message) { // Constructor๋กœ message๋ฅผ ๋ฐ›์Œ
		super(message); // Exception์— ์žˆ๋Š” ์ƒ์„ฑ์ž์— ์žˆ๋Š” ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ฒ ๋‹ค.
	}
	
}
public void setPassword(String password) throws PasswordException{
		// setPassword ์‹œ์— ๋ฐœ์ƒํ•  ์ˆ˜์žˆ๋Š” ์˜ค๋ฅ˜๋ฅผ throwsํ•˜๊ฒ ๋‹ค.	
	 
		if(password == null) { // 1๋ฒˆ ๊ฒฝ์šฐ
			throw new PasswordException("๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ null์ผ ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค.");
		} 
		else if(password.length() < 5) { // 2๋ฒˆ ๊ฒฝ์šฐ
			throw new PasswordException("๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ 5์ž๋ฆฌ ์ด์ƒ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.");
		} else if(password.matches("[a-zA-Z]+")) { // 3๋ฒˆ ๊ฒฝ์šฐ
			throw new PasswordException("๋น„๋ฐ€๋ฒˆํ˜ธ๋Š” ์ˆซ์ž๋‚˜ ํŠน์ˆ˜๋ฌธ์ž๋ฅผ ํฌํ•จํ•˜์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.");
		}
		
		this.password = password; // ๋ชจ๋‘ ์•„๋‹Œ ๊ฒฝ์šฐ password๋ฅด setํ•จ
	
	}

๋น„๋ฐ€๋ฒˆํ˜ธ์˜ ๊ทœ์น™์„ ๋งŒ๋“ค๊ณ  ์ด๋ฅผ ๋ฐ˜์˜ํ•˜๋Š” ์˜ˆ์™ธ์ฒ˜๋ฆฌ์˜ ์‚ฌ์šฉ์ธ๋ฐ ๋‹จ์ˆœ ๋ฉ”์„ธ์ง€๋งŒ ๋ณด๋‚ด๋Š” ๋‚ด์šฉ์˜ ์˜ˆ์™ธ์ฒ˜๋ฆฌ๊ฐ€ ์•„๋‹ˆ๊ณ  ๋ณ€์ˆ˜์˜ ์ฒ˜๋ฆฌ ๋ถ€๋ถ„๊นŒ์ง€ ๊ตฌํ˜„ํ•œ๋‹ค๋ฉด ์ƒ๋‹นํžˆ ๋ณต์žกํ•œ ๋‚ด์šฉ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค.

๐Ÿ“„ ์ž…์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ

  • ์ด์ „์˜ ์ŠคํŠธ๋ฆผ๊ณผ ๋น„์Šทํ•˜๋‚˜ ๋ง์”Œ์šฐ๋Š” ๋ณด์กฐ ์ŠคํŠธ๋ฆผ์„ ์ž”๋œฉ ๋งŒ๋“œ๋Š” ๋ฐฉ์‹์—๋Œ€ํ•ด ๊ณต๋ถ€ํ•˜์˜€๋‹ค. ์ฒ˜์Œ์—๋Š” ์™œ ๋ณด์กฐ์ŠคํŠธ๋ฆผ์„ ์‚ฌ์šฉํ•˜๋Š”๋ฐ new๋ฅผ ํ•ด์•ผํ•˜๋Š”์ง€ ์ดํ•ด๋ฅผ ๋ชปํ–ˆ๋‹ค. ๊ทธ์ € ๋ฉ”์„œ๋“œ์˜ ํ•˜๋‚˜๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ด์ „์— ์ŠคํŠธ๋ฆผ์€ ํ•˜๋‚˜์˜ ์ปค์„œ์™€ ๊ฐ™๊ณ  ์ด๋Š” ํ•˜๋‚˜์˜ ๋™์ž‘์„ ์œ„ํ•œ ์ปค์„œ์ผ ๋ฟ์ด๋‹ค ๋ผ๊ณ  ์ดํ•ดํ–ˆ๋˜ ๋‚ด์šฉ์„ ์žŠ์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ํ•˜๋‚˜์˜ ์ปค์„œ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๊ทธ ์ปค์„œ๋ฅผ ๋•๋Š” ๋˜ ๋‹ค๋ฅธ ์ปค์„œ๋ฅผ ๋งŒ๋“ ๋‹ค๊ณ  ๋‚˜๋Š” ์ƒ๊ฐ ํ•˜์˜€๋‹ค.

  • ๋‚ด๊ฐ€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ•˜๋Š” ๊ณผ์ •์—์„œ ํŒŒ์ผ์— ์ง์ ‘์“ฐ๊ฑฐ๋‚˜ ํ•˜๋Š” ๊ณผ์ •์ด ์—†๊ธฐ์— ์ง€๊ธˆ ๋‹น์žฅ ์—ฐ์Šตํ•  ์ผ์ด ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ๊ทธ๋ž˜๋„ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ๋ถ€๋ถ„์—์„œ ์‚ฌ์šฉํ•  ์ผ์ด ๋งŽ๊ธฐ์— ์ง‘์ค‘ํ•ด์„œ ๊ณต๋ถ€ํ•˜์˜€๋‹ค. ํŠนํžˆ Buffered ์ŠคํŠธ๋ฆผ์ด ์‹ ๊ธฐํ•œ๋ฐ ์ฝ”๋”ฉ ์‚ฌ์ดํŠธ์—์„œ ์ด ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉด ์ฝ”๋“œ์˜ ๊ธธ์ด๋Š” ๊ธธ์–ด์ง€๋”๋ผ๋„ ์†๋„๊ฐ€ ์ฐจ์›์ด ๋‹ค๋ฅด๋‹ค. ํ•˜๋‚˜์˜ buffer๋กœ ์ฃผ๊ณ  ๋ฐ›๋Š” ๋ฐฉ์‹์˜ ์ค‘์š”์„ฑ์„ ํฌ๊ฒŒ ๊นจ๋‹ฌ์•˜๋‹ค.

โœ๏ธ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ

  • ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋ฅผ ์ œ๋Œ€๋กœ ์‹œ์ž‘ํ•˜์˜€๋‹ค. ์‚ฌ์‹ค ์‹œ์ž‘ํ•˜๋Š” ๋ถ€๋ถ„์„ ๋งŽ์ด ํ•˜์˜€๋‹ค. ์ž…์ถœ๋ ฅ์ด๋‚˜ ์ž๋ฃŒํ˜• ๋ณ€ํ™˜ ์ด๋Ÿฐ ๋ถ€๋ถ„์„ ์ •๋ฆฌํ•˜๊ณ ์ž ํ•œ๋‹ค.

๐Ÿ“„ Scanner

  • ๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ์‹์œผ๋กœ ๋Œ€๋ถ€๋ถ„ ์ด ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค. " ", \n ๋“ฑ ๊ณต๋ฐฑ์ด ์˜ค๊ธฐ์ „ ๊นŒ์ง€์˜ ๋‚ด์šฉ์„ ์ž…๋ ฅ ๋ฐ›๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ฐ€์žฅ ๊ฐ„๋‹จํ•˜์ง€๋งŒ ์ดํ•ด๊ฐ€ ์•ˆ๊ฐ€๋Š” ๋ถ€๋ถ„์ด ์žˆ์—ˆ๋‹ค. ์˜ˆ์™ธ์ฒ˜๋ฆฌ์˜ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜์˜ค์ง€ ์•Š๋Š” ๊ฒƒ์ด๋‹ค. ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋‹ค๋ฅธ ๋ฐฉ์‹์€ ์ฃ„๋‹ค ์˜ˆ์™ธ์ฒ˜๋ฆฌํ•˜๋ผ๊ณ  ๋นจ๊ฐ„์ค„์„ ๋ณด์—ฌ ์ฃผ๋Š” ๋ฐ˜๋ฉด์— Scanner๋Š” ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ฃผ์ง€ ์•Š์•„๋„ ๋œ๋‹ค. ์™œ??? ์ž˜ ๋ชจ๋ฅด๊ฒ ๋‹ค. ์‹ฌ์ง€์–ด ์ž…๋ ฅ์„ int๋„ ๋ฐ›๊ณ  string๋„ ๋ฐ›๊ณ  ํ•˜๋Š”๋ฐ ์™œ ์˜ค๋ฅ˜์ฒ˜๋ฆฌ๋ฅผ ํ•˜์ง€ ์•Š์•„๋„ ์—๋Ÿฌ๊ฐ€ ๋‚˜์˜ค์ง€ ์•Š๋Š” ๊ฒƒ์ธ์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ๋‹ค.
import java.io.*;
public class Main { // ์™œ ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฅผ ์•ˆํ•ด๋„ ๋ ๊นŒ??
    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        int a = scanner.nextInt();
        int b = scanner.nextInt();

        System.out.println(a+b);


    }
}

๐Ÿ“„ Buffer

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

public class Main01 {
    public static void main(String[] args) {
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        try {
            int count = Integer.parseInt(bf.readLine());

            for (int i = 0; i < count; i++) {
                String str = bf.readLine();
                StringTokenizer tokenizer = new StringTokenizer(str, " ");
                int a = Integer.parseInt(tokenizer.nextToken());
                int b = Integer.parseInt(tokenizer.nextToken());
                String out = (a+b) + "";
                bw.write(out + "\n");
            }
            bf.close();
            bw.flush();

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

๐Ÿ›‘ ์–ด๋ ค์› ๊ฑฐ๋‚˜ ์•„์‰ฌ์› ๋˜ ์ 

๐Ÿ›‘ ๋‚ด๊ฐ€ ์ง€๊ธˆ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ๋‚ด์šฉ์ด ๋งŽ์•˜๊ธฐ์— ๋‚˜์ค‘์— ๋‹ค์‹œ ์ฐพ์•„๋ณผ ๊ฒƒ ๊ฐ™์•„ ์•„์‰ฌ์› ๋‹ค.

๐Ÿ›‘ ๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š”๋ฐ ์ž…์ถœ๋ ฅ ๋ถ€๋ถ„์—์„œ ๋งŽ์ด ํ—ค๋งธ๋‹ค. ์ŠคํŠธ๋ฆผ์„ ์ด์šฉํ•˜๋Š” ๋ฐฉ์‹์„ ๋ฐฐ์šด์ง€ ์–ผ๋งˆ ์•ˆ๋˜์„œ ๋‹ค์‹œ ์‚ฌ์šฉํ•œ ๊ฒƒ์ธ๋ฐ ์ฒ˜์Œ ์“ฐ๋Š” ๊ฒƒ ์ฒ˜๋Ÿผ ์–ด์ƒ‰ํ–ˆ๋‹ค.(new๋ฅผ ๊ณ„์† ๊นŒ๋จน๋Š”๋‹ค.)

โœ… ์ž˜ํ•˜๊ฑฐ๋‚˜ ๊ฐœ์„ ํ•œ์ 

โœ… ์ž๋ฐ”๋ฅผ ๊ทธ๋ž˜๋„ ํ•œ๋ฒˆ ๋‹ค ๋ณด๋Š”๋ฐ ์„ฑ๊ณตํ–ˆ๋‹ค.(์ €๋ฒˆ์—๋Š” ์ค‘๊ฐ„์— ํฌ๊ธฐํ–ˆ์—ˆ๋‹ค.) ๋ฌผ๋ก  ์ „๋ถ€ ๋‹ค ์ดํ•ดํ–ˆ๋‹ค๋Š” ์•„๋‹ˆ์ง€๋งŒ ๊ทธ๋ž˜๋„ ํ•œ๋ฒˆ ๊ฐ€๋ณธ ๊ธธ ๋‹ค์Œ์— ๊ฐˆ ๋•Œ๋Š” ์กฐ๊ธˆ ์‰ฝ์ง€ ์•Š์„ ๊นŒ ๊ทธ๋Ÿฐ ์ƒ๊ฐ์ด๋‹ค. ์ค‘๊ฐ„์ค‘๊ฐ„ ํƒ€ํ˜‘ํ•˜์ง€ ์•Š๊ณ  ๊ผผ๊ผผํ•˜๊ฒŒ ํ•œ๋ฒˆ ๋ณธ ๊ฒƒ์ด ๋งŒ์กฑ์Šค๋Ÿฝ๋‹ค.

โœ… ์ฝ”๋”ฉํ…Œ์ŠคํŠธ๋ฅผ ๋ณธ๊ฒฉ์ ์œผ๋กœ ์‹œ์ž‘ํ–ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š”๋ฐ ํ•„์š”ํ•œ ๊ธฐ๋ณธ์ ์ธ ์ง€์‹์ด๋‚˜ ๊ธฐ์ˆ ์„ ์ตํ˜”๋‹ค. ์ฒ˜์Œ ๊ณต๋ถ€ํ•  ๋•Œ ์ปดํŒŒ์ผ ์—๋Ÿฌ๊ฐ€ 10๋ฒˆ์”ฉ ๋‚˜๋Š” ์ˆ˜๋ชจ๋ฅผ ๊ฒช์—ˆ๋Š”๋ฐ ์ด์ œ๋Š” ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ๋ฐ๋กœ ์ฝ”๋”ฉํ•˜๊ณ  ๋‹ต์ด ํ‹€๋ ธ๋‚˜ ์•ˆํ‹€๋ ธ๋ƒ์˜ ์ฐจ์ด๋งŒ์„ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ์ฝ”๋”ฉ์„ ํ•˜๊ฒŒ ๋˜์—ˆ๊ธฐ์— ๋งŒ์กฑํ•œ๋‹ค.

๐Ÿ™ƒ ๋Š๋‚€์ 

๐Ÿ˜Š ์ž๋ฐ”์˜ ํ•œํŒŒํŠธ๋ฅผ ๋๋‚ด๋ฉด์„œ ์‹œ์›์„ญ์„ญํ•œ ๋งˆ์Œ์ด ๋“ ๋‹ค. ํ•œ๋ฒˆ ๋‹ค ๋ณธ๊ฒƒ์ด ๋งŒ์กฑ์Šค๋Ÿฝ์ง€๋งŒ ๋‚ด๊ฐ€ ์ „๋ถ€๋‹ค ์ฑ„์›Œ๋„ฃ์ง€ ๋ชปํ•œ ์ฐ์ฐํ•จ์ด ํฌ๊ฒŒ ๋‚จ๋Š”๋‹ค.

๐Ÿ˜Š ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋ฅผ ๋ณธ๊ฒฉ์ ์œผ๋กœ ํ•  ์ค€๋น„๋ฅผ ๋๋ƒˆ๋‹ค. ๊ณต๋ถ€ํ•ด์•ผ์ง€ ๋ฏธ๋ฃจ๋˜ ๊ฒƒ์„ ์‹œ์ž‘ํ–ˆ๊ณ  ์–ด๋–ป๊ฒŒ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•ด์•ผํ•˜๋Š” ์ง€์— ๋Œ€ํ•œ ์ „๋ฐ˜์ ์ธ ๋ถ€๋ถ„์„ ์ตํ˜”๋‹ค. ์ด์ œ๋Š” ์ฝ”๋”ฉ๋ฌธ์ œ๋ฅผ ํ–ฅํ•œ ์ง์ง„๋งŒ์ด ๋‚จ์•˜๋‹ค.

๐Ÿ˜ข ์‚ฌ์‹ค ๊ฑฑ์ •์ด ๋งŽ์ด๋œ๋‹ค. ํŠนํžˆ Spring ๋ถ€๋ถ„ ๋ถ€ํ„ฐ๋Š” ์•„์˜ˆ ์ฒ˜์Œ ๋ฐฐ์šฐ๋Š” ๋‚ด์šฉ์ด๋‹ค. Spring์ด ๋ญ”์ง€๋„ ์ œ๋Œ€๋กœ ๋ชจ๋ฅด๋Š” ๋‚ด๊ฐ€ ์ž˜ ํ•ด๋‚ผ ์ˆ˜ ์žˆ์„ ์ง€ ๊ฑฑ์ •์ด ํฌ๋‹ค. ์‚ฌ์‹ค ์•ž๋ถ€๋ถ„์„ ์‚ด์ง ๋“ค์–ด๋ดค๋Š”๋ฐ ๋ญ”์†Œ๋ฆฌํ•˜๋Š”์ง€ ํ•˜๋‚˜๋„ ๋ชจ๋ฅด๊ฒ ์–ด์„œ ๊ฑฑ์ •์ด ๋งŽ์ด ๋œ๋‹ค.

profile
์ฝ”๋”ฉ ์‹œ์ž‘

0๊ฐœ์˜ ๋Œ“๊ธ€