์๋ฐ ๊ฐ์์ ๋ง์ง๋ง ๋ถ๋ถ๊น์ง ๋๋ด๋ ๋ฐ์ ์ด์ ์ ๋๊ธฐ์ ์๋ฐ๋ง ๊ณต๋ถํ๋ค.
์ฝ๋ฉํ
์คํธ ๋ฌธ์ ๋ฅผ ํ๊ธฐ ์์ํจ.
์ /์ถ๋ ฅ ๋๋ ์ฌ๋ฌ๊ฐ์ง๋ก ์๊ธฐ๋ ์ค๋ฅ์ ๋ํ ์ฒ๋ฆฌ๋ฅผ ๋ค๋ฃจ๋ ๋ด์ฉ์ผ๋ก ์ค๋ฅ๊ฐ ๋ฐ์ํ๋๋ผ๋ ๊ณ์ํด์ ํ๋ก๊ทธ๋จ์ ์งํํ ์ ์๋ ๊ฒ์ด ์ ๊ธฐํ๋ค. ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด ๊ทธ ๋ถ๋ถ์ ๋๊ฒจ์ ์งํํด๋ฒ๋ฆฌ๋ ๋ฐฉ๋ฒ์ ๋ํ ์๊ธฐ๋ค๋ก ๋ชจ๋ ์ค๋ฅ๋ฅผ ๋ด๊ฐ ์๊ธฐ๋ ๋ฌด๋ฆฌ๊ฐ ์์๋ค.
throwsํ๋ ๋ฐฉ๋ฒ๋ ์์ง๋ง try - catch๋ฅผ ํด์ผํ๋ ์ํฉ์ด ๋ง์ ๊ฒ ๊ฐ๋ค. ์ผ๋จ 3๊ฐ์ง์ ๋ฐฉ๋ฒ์ด ์๋๋ฐ 3๊ฐ์ง ์ค์ 3๋ฒ์ด ๊ฐ์ฅ ์ข์ ๊ฒ ๊ฐ๋ค.
try {
์์ธ๊ฐ ๋ฐ์ํ ์ ์๋ ์ฝ๋ ๋ถ๋ถ
} cathc(์ฒ๋ฆฌํ ์์ธ ํ์
e) { // e๋ ์ธ์คํด์ค๋ผ๊ณ ์๊ฐํ๋ฉด ํธํจ, ์ค์ ๋ก e.toString()์ฒ๋ผ ์ฌ์ฉ ๊ฐ๋ฅ
try ๋ธ๋ก ์์์ ์์ธ๊ฐ ๋ฐ์ํ์ ๋ ์์ธ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ถ๋ถ
}
try {
์์ธ๊ฐ ๋ฐ์ํ ์ ์๋ ์ฝ๋ ๋ถ๋ถ
} cathc(์ฒ๋ฆฌํ ์์ธ ํ์
e) { // e๋ ์ธ์คํด์ค๋ผ๊ณ ์๊ฐํ๋ฉด ํธํจ, ์ค์ ๋ก e.toString()์ฒ๋ผ ์ฌ์ฉ ๊ฐ๋ฅ
try ๋ธ๋ก ์์์ ์์ธ๊ฐ ๋ฐ์ํ์ ๋ ์์ธ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ถ๋ถ
}finally{
๋ฐ๋์ ์คํ๋จ
}
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();
}
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๋ก ์ฃผ๊ณ ๋ฐ๋ ๋ฐฉ์์ ์ค์์ฑ์ ํฌ๊ฒ ๊นจ๋ฌ์๋ค.
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);
}
}
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์ด ๋ญ์ง๋ ์ ๋๋ก ๋ชจ๋ฅด๋ ๋ด๊ฐ ์ ํด๋ผ ์ ์์ ์ง ๊ฑฑ์ ์ด ํฌ๋ค. ์ฌ์ค ์๋ถ๋ถ์ ์ด์ง ๋ค์ด๋ดค๋๋ฐ ๋ญ์๋ฆฌํ๋์ง ํ๋๋ ๋ชจ๋ฅด๊ฒ ์ด์ ๊ฑฑ์ ์ด ๋ง์ด ๋๋ค.