๊ด€๋ฆฌ ๋ฉ”๋‰ด

โœ๐Ÿป๊ธฐ๋กํ•˜๋Š” ๋ธ”๋กœ๊ทธ

์˜ˆ์™ธ์ฒ˜๋ฆฌ ๋ณธ๋ฌธ

Language/Java

์˜ˆ์™ธ์ฒ˜๋ฆฌ

์ฉ์‹œํ‚ด 2021. 1. 14. 20:52
728x90

๐Ÿ‘ฉ‍๐Ÿซ ์ž๋ฐ” ๋ผ์ด๋ธŒ ์Šคํ„ฐ๋”” 8์ฃผ ์ฐจ - ์˜ˆ์™ธ์ฒ˜๋ฆฌ

1. ์˜ค๋ฅ˜์˜ ์ข…๋ฅ˜

2. ์ž๋ฐ”์—์„œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ• (try, catch, throw, throws, finally)

  2.1 try-catch๋ฌธ์œผ๋กœ ์˜ˆ์™ธ ์ฒ˜๋ฆฌํ•˜๊ธฐ

  2.2 try - with -resources 

  2.3 ์˜ˆ์™ธ ๋ฐœ์ƒ์‹œํ‚ค๊ธฐ - throw

  2.4 throwsํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฉ”์„œ๋“œ์—์„œ ์˜ˆ์™ธ ์„ ์–ธํ•˜๊ธฐ

  2.5 printStackTrace()์™€ getMessage()

3. ์ž๋ฐ”๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์˜ˆ์™ธ ๊ณ„์ธต ๊ตฌ์กฐ

4. Exception๊ณผ Error์˜ ์ฐจ์ด๋Š”?

 

5. RuntimeException๊ณผ RE๊ฐ€ ์•„๋‹Œ ๊ฒƒ์˜ ์ฐจ์ด๋Š”?

6. ์ปค์Šคํ…€ํ•œ ์˜ˆ์™ธ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•


1. ์˜ค๋ฅ˜์˜ ์ข…๋ฅ˜

  • ์ปดํŒŒ์ผ ์˜ค๋ฅ˜

       ์ฝ”๋“œ ์ž‘์„ฑ ์ค‘ ๋ฌธ๋ฒ•์ ์ธ ์˜ค๋ฅ˜

  • ์‹คํ–‰ ์˜ค๋ฅ˜ (runtime error) 

        ์ปดํŒŒ์ผ์€ ์ •์ƒ์ ์ด์—ˆ์ง€๋งŒ , ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ค‘ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์˜ค๋ฅ˜

 

์ž๋ฐ”๋Š” ๋ฐœ์ƒ ๊ฐ€๋Šฅํ•œ ์˜ค๋ฅ˜์— ๋Œ€ํ•ด ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฅผ ํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ์ด ๋น„์ •์ƒ์ ์œผ๋กœ ์ข…๋ฃŒ๋˜๋Š” ๊ฒƒ์„ ๋ง‰๊ณ  ๋กœ๊ทธ๋กœ ๋‚จ๊ธธ ์ˆ˜ ์žˆ๋‹ค.


2. ์ž๋ฐ”์—์„œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ• (try, catch, throw, throws, finally)

 2.1 try-catch๋ฌธ์œผ๋กœ ์˜ˆ์™ธ ์ฒ˜๋ฆฌํ•˜๊ธฐ

try{
	์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š ์ฝ”๋“œ
}catch(์ฒ˜๋ฆฌํ•  ์˜ˆ์™ธ ํƒ€์ž… e){

	try์—์„œ ์˜ˆ์™ธ ๋ฐœ์ƒ ์‹œ ์—ฌ๊ธฐ์„œ ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌ
    try์˜ ์ฝ”๋“œ๊ฐ€ ๋ชจ๋‘ ์‹คํ–‰๋œ๋‹ค์Œ catch๋กœ ์˜ค๋Š”๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์˜ˆ์™ธ ๋ฐœ์ƒ ํ›„ ๋ฐ”๋กœ ์˜ค๊ฒŒ๋จ
    ๋ฐœ์ƒํ•œ ์˜ˆ์™ธ๊ฐ€ ์ฒ˜๋ฆฌํ•  ์˜ˆ์™ธ ํƒ€์ž…๊ณผ ๋งค์นญ์ด ๋˜์–ด์•ผํ•จ
    
}finally{
	์˜ˆ์™ธ ๋ฐœ์ƒ ์—ฌ๋ถ€์™€ ์ƒ๊ด€์—†์ด ํ•ญ์ƒ ์ˆ˜ํ–‰๋˜์–ด์•ผํ•˜๋Š” ๋ถ€๋ถ„
	์‚ฌ์šฉํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ๋‹ซ๋Š” ๋ถ€๋ถ„
}

try๋ธ”๋ก์—์„œ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด, ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•œ ์œ„์น˜์—์„œ ๋ฐ”๋กœ ํ•ด๋‹น catch ๋ธ”๋ก์œผ๋กœ ์ด๋™ํ•˜์—ฌ try ๋ธ”๋ก์—์„œ exception ์•„๋ž˜ ์ฝ”๋“œ๋Š” ์‹คํ–‰๋˜์ง€ ์•Š๋Š”๋‹ค.

	System.out.println(1);
	System.out.println(2);
try{
	System.out.println(3);
	System.out.println(0/0);//exception ๋ฐœ์ƒ
	System.out.println(4);//์‹คํ–‰๋˜์ง€์•Š๋Š”๋‹ค.
} catch (ArithmeticException ae) {
	System.out.println(5);
} 
    System.out.println(6);

์œ„์˜ ์ฝ”๋“œ์—์„œ 0/0 ArithmeticException์ด ๋ฐœ์ƒํ•˜๋ฏ€๋กœ try-catch ์‹คํ–‰ ์ˆœ์„œ์— ๋”ฐ๋ฅด๋ฉด 4๋Š” ์ถœ๋ ฅ ๊ฒฐ๊ณผ์— ๋‚˜์˜ค์ง€ ์•Š๋Š”๋‹ค.

 

์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๋ฐœ์ƒํ•œ ์˜ˆ์™ธ์— ํ•ด๋‹นํ•˜๋Š” ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค.

  1. catch๋ธ”๋ก์„ ์ฐจ๋ก€๋Œ€๋กœ ๋‚ด๋ ค๊ฐ€๋ฉด์„œ catch๋ธ”๋ก์˜ ๊ด„ํ˜ธ ๋‚ด์— ์„ ์–ธ๋œ ์ฐธ์กฐ ๋ณ€์ˆ˜ ์ข…๋ฅ˜์™€ ์˜ˆ์™ธ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋ฅผ instanceOf์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉํ•ด ๊ฒ€์‚ฌํ•œ๋‹ค.
  2. ํ•ด๋‹น catch๋ธ”๋Ÿญ์„ ์ฐพ์œผ๋ฉด catch ๋ธ”๋ก์„ ์ˆ˜ํ–‰ ํ›„, try-catch๋ฅผ ๋น ์ ธ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค. ๋งŒ์•ฝ ์ฐพ์ง€ ๋ชปํ•œ๋‹ค๋ฉด, ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์Œ
	System.out.println(1);
	System.out.println(2);
try{
	System.out.println(3);
	System.out.println(0/0);//exception ๋ฐœ์ƒ
	System.out.println(4);//์‹คํ–‰๋˜์ง€์•Š๋Š”๋‹ค.
} catch (ArithmeticException ae) {
	if(ae instanceof ArithmeticException){
    System.out.println("ArithmeticException instnace Check");
}
	System.out.println(5);
} 
    System.out.println(6);

2.2 try - with -resources 

fileinputstream(autoCloseable ๊ตฌํ˜„ํ•˜๊ณ  ์žˆ์Œ)๊ณผ ๊ฐ™์ด ๋ฌด์กฐ๊ฑด ๋‹ซ์•„์ค˜์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ

  • ๋ฆฌ์†Œ์Šค๋ฅผ ์ž๋™์œผ๋กœ ํ•ด์ œํ•˜๋„๋ก ์ œ๊ณตํ•˜๋Š” ๊ตฌ๋ฌธ 
  • ์ž๋ฐ” 7๋ถ€ํ„ฐ ์ œ๊ณต
  • ํ•ด๋‹น ๋ฆฌ์†Œ์Šค๊ฐ€ autoCloseable์„ ๊ตฌํ˜„ํ•œ ๊ฒฝ์šฐ close()๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ํ˜ธ์ถœํ•˜์ง€ ์•Š์•„๋„ try {} ๋ธ”๋ก์—์„œ ์˜คํ”ˆ๋œ ๋ฆฌ์†Œ์Šค๋Š” ์ •์‚ฐ์ ์ธ ๊ฒฝ์šฐ๋‚˜ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ ๋ชจ๋‘ ์ž๋™์œผ๋กœ close()๊ฐ€ ํ˜ธ์ถœ๋จ

์ž๋ฐ” 9 ์ดํ›„์—์„œ try- with -resources ๋ฌธ

์™ธ๋ถ€์—์„œ ์„ ์–ธํ•œ ๋ณ€์ˆ˜ ๋ช… ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

 

[์ž๋ฐ” 9 ์ด์ „ ]

AutoCloseObj obj = new AutoCloseObj();
try (AutoCloseObj obj2 = obj){//๋‹ค๋ฅธ ์ฐธ์กฐ ๋ณ€์ˆ˜๋กœ ๋‹ค์‹œ ์„ ์–ธํ•ด์•ผํ•จ
	throw new Exception();
}catch (Exception e){
	System.out.println("์˜ˆ์™ธ ๋ถ€๋ถ„");
}

[์ž๋ฐ” 9 ์ดํ›„]

AutoCloseObj obj = new AutoCloseObj();
try (obj){//์™ธ๋ถ€์—์„œ ์„ ์–ธํ•œ ๋ณ€์ˆ˜๋ฅผ ๊ทธ๋Œ€๋กœ ์“ธ ์ˆ˜ ์žˆ์Œ
	throw new Exception();
}catch (Exception e){
	System.out.println("์˜ˆ์™ธ ๋ถ€๋ถ„");
}

2.3 ์˜ˆ์™ธ ๋ฐœ์ƒ์‹œํ‚ค๊ธฐ - throw

 

 1. ์—ฐ์‚ฐ์ž new ํ‚ค์›Œ๋“œ๋ฅผ ํ†ตํ•ด ์˜ˆ์™ธ ํด๋ž˜์Šค ๊ฐ์ฒด ์„ ์–ธ

Exception e = new Exception("๊ณ ์˜๋กœ ๋ฐœ์ƒํ•œ ์˜ˆ์™ธ");

 2. throwํ‚ค์›Œ๋“œ๋ฅผ ํ†ตํ•ด ์˜ˆ์™ธ ๋ฐœ์ƒ

throw e;

์œ„์˜ ์ฝ”๋“œ๋ฅผ ํ•œ ์ค„๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ 

exception ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ์‹œ ์ƒ์„ฑ์ž์— ๋ฌธ์ž์—ด์„ ๋„ฃ์œผ๋ฉด ์ธ์Šคํ„ด์Šค์— ๋ฉ”์‹œ์ง€๋กœ ์ €์žฅ๋˜์–ด getMessage()๋กœ ํ˜ธ์ถœ ๊ฐ€๋Šฅ

try{
   throw new Exception("๊ณ ์˜๋กœ ๋ฐœ์ƒํ•œ ์˜ˆ์™ธ");
}catch(Exception e){
	e.getMessage();
}

 

2.4 throwsํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฉ”์„œ๋“œ์—์„œ ์˜ˆ์™ธ ์„ ์–ธํ•˜๊ธฐ

๋ฉ”์„œ๋“œ์˜ throws๋ฅผ ๋ช…์‹œํ•˜๋Š” ๊ฒƒ์€ ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์ž์‹ ์„ ํ˜ธ์ถœํ•œ ๋ฉ”์„œ๋“œ์—๊ฒŒ ์˜ˆ์™ธ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

์ด๋Ÿฐ ์‹์œผ๋กœ ๊ณ„์† ํ˜ธ์ถœ ์Šคํƒ์— ์žˆ๋Š” ๋ฉ”์„œ๋“œ์— ์ „๋‹ฌ๋˜๋‹ค๊ฐ€ main๋ฉ”์„œ๋“œ์—์„œ๋„ ์˜ˆ์™ธ๊ฐ€ ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š๋Š”๋‹ค๋ฉด, ํ”„๋กœ๊ทธ๋žจ์ด ๋น„์ •์ƒ์ ์œผ๋กœ ์ข…๋ฃŒ๋œ๋‹ค.

main()์—์„œ Throws๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ€์ƒ ๋จธ์‹ ์—์„œ ์ฒ˜๋ฆฌ๋œ๋‹ค.

void method() throws Exception1, Exception2{
	//๋ฉ”์„œ๋“œ์˜ ๋‚ด์šฉ
}

2.5 printStackTrace()์™€ getMessage()

printStackTrace() ์˜ˆ์™ธ ๋ฐœ์ƒ ์‹œ ํ˜ธ์ถœ ์Šคํƒ์— ์žˆ๋˜ ๋ฉ”์„œ๋“œ์˜ ์ •๋ณด์™€ ์˜ˆ์™ธ ๋ฉ”์‹œ์ง€๋ฅผ ํ™”๋ฉด์— ์ถœ๋ ฅ

getMessage() ๋ฐœ์ƒํ•œ ์˜ˆ์™ธ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค์— ์ €์žฅ๋œ ๋ฉ”์‹œ์ง€๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Œ

System.out.println(1);
	System.out.println(2);
try{
	System.out.println(3);
	System.out.println(0/0);//exception ๋ฐœ์ƒ
	System.out.println(4);//์‹คํ–‰๋˜์ง€์•Š๋Š”๋‹ค.
} catch (ArithmeticException ae) {
	ae.printStaceTrace();
	System.out.println(5);
} 
System.out.println(6);

3. ์ž๋ฐ”๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์˜ˆ์™ธ ๊ณ„์ธต ๊ตฌ์กฐ

Error, Exception ํด๋ž˜์Šค ๋ชจ๋‘ object์กฐ์ƒ ํด๋ž˜์Šค

https://www.scientecheasy.com/2020/05/throwable-in-java.html/

 

http://www.tcpschool.com/java/java_exception_class

์˜ˆ์™ธ ํด๋ž˜์Šค๋“ค์€ ๋‘ ๊ฐ€์ง€ ๊ทธ๋ฃน์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.

RuntimeException๊ณผ ์ž์† ํด๋ž˜์Šค, Exception ํด๋ž˜์Šค์™€ ์ž์†๋“ค


4. Exception๊ณผ Error์˜ ์ฐจ์ด๋Š”?

  • ์—๋Ÿฌ(error)→ ์—๋Ÿฌ ๋ฐœ์ƒ ์‹œ ํ”„๋กœ๊ทธ๋žจ์˜ ๋น„์ •์ƒ์ ์ธ ์ข…๋ฃŒ
  • ์‹œ์Šคํ…œ์ ์ธ ๋ถ€๋ถ„, ๋ฐ˜๋ณต์ ์ธ ์žฌ๊ท€ ํ˜ธ์ถœ๋กœ ์ธํ•œ stack over flow ๋“ฑ ๊ฐ€์ƒ ๋จธ์‹ ์—์„œ ๋ฐœ์ƒ ๋™์  ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋‹ค ์‚ฌ์šฉํ•œ ๊ฒฝ์šฐ
  • → ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ(OutOfMemoryError), ์Šคํƒ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ(StackOverflowError)๋“ฑ ์ผ๋‹จ ๋ฐœ์ƒํ•˜๋ฉด ๋ณต๊ตฌ ๋ถˆ๊ฐ€ํ•œ ์‹ฌ๊ฐํ•œ ์˜ค๋ฅ˜
  • ์˜ˆ์™ธ(exception)ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ œ๊ฑฐ ๊ฐ€๋Šฅํ•œ ์˜ค๋ฅ˜, ์ฝ์œผ๋ ค๋Š” ํŒŒ์ผ์ด ์—†์Œ , ๋„คํŠธ์›Œํฌ ์†Œ์ผ“ ์—ฐ๊ฒฐ ์˜ค๋ฅ˜ ๋“ฑ
  • → ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์—์„œ ์˜ˆ์™ธ์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•จ
  • → ์ˆ˜์Šต์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฏธ๋ฆฌ ์˜ˆ์ƒํ•˜์—ฌ ์˜ˆ์™ธ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•จ

5. RuntimeException๊ณผ RE๊ฐ€ ์•„๋‹Œ ๊ฒƒ์˜ ์ฐจ์ด๋Š”?

  • RuntimeException
    • ArrayIndexOutOfBoundsException
    • NullPointerException
    • ClassCastException
    • ArithmeticException (์ •์ˆ˜๋ฅผ 0์œผ๋กœ ๋‚˜๋ˆ„๋Š” ๊ฒฝ์šฐ)
  • RuntimeException(์ฃผ๋กœ ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ์‹ค์ˆ˜๋กœ ๋ฐœ์ƒ๋  ์ˆ˜ ์žˆ๋Š” ์˜ˆ์™ธ)๊ณผ ์ด์™ธ์˜ Exception ํด๋ž˜์Šค๋“ค ( ์‚ฌ์šฉ์ž ๋™์ž‘์— ์˜ํ•ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ)
  • RuntimException ์ด์™ธ์˜ ํด๋ž˜์Šค
    • FileNotFoundException : FileNot ์กด์žฌํ•˜์ง€ ์•Š๋Š” ํŒŒ์ผ ์ด๋ฆ„ ์ž…๋ ฅ
    • ClassNotFoundException
    • DataFormatException ๋“ฑ
  • ํ”„๋กœ๊ทธ๋žจ ์‚ฌ์šฉ์ž๋“ค์— ์˜ํ•ด ๋ฐœ์ƒ ๊ฐ€๋Šฅ.

6. ์ปค์Šคํ…€ํ•œ ์˜ˆ์™ธ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•

jdk์—์„œ ์ œ๊ณต๋˜๋Š” ์˜ˆ์™ธ ํด๋ž˜์Šค ์™ธ์— ์‚ฌ์šฉ์ž๊ฐ€ ํ•„์š”์— ์˜ํ•ด ์˜ˆ์™ธ ํด๋ž˜์Šค๋ฅผ ์ •์˜ํ•˜์—ฌ ์‚ฌ์šฉ

 

๊ธฐ์กด jdkํด๋ž˜์Šค์—์„œ Exceptionํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›์•„ ์˜ˆ์™ธ ํด๋ž˜์Šค ๋งŒ๋“ค์—ˆ๋‹ค.

package exception;

public class IDFormatException extends Exception {

    public IDFormatException (String message){
        //์ƒ์„ฑ์ž์—์„œ exception ๋ฉ”์„ธ์ง€ ๋ฐ›์Œ
        super(message);
    }


}

 

ํ…Œ์ŠคํŠธ ํด๋ž˜์Šค์—์„œ ์ง์ ‘ ์ปค์Šคํ…€ํ•œ ์˜ˆ์™ธ ํด๋ž˜์Šค๋กœ ์˜ˆ์™ธ์ฒ˜๋ฆฌ

public class IDFormatTest {

    private String userID;
    private String getUserID(){
        return userID;
    }


    public void setUserID(String userID) throws IDFormatException{
        //throws exception์„ ๋ฏธ๋ฃธ
        //throw๋Š” exception ๋ฐœ์ƒ
        if(userID == null){
            throw new IDFormatException("id can not null");//์ƒ์„ฑ์ž ๋ฉ”์„ธ์ง€ ์ „๋‹ฌ
        }else if(userID.length() < 8 || userID.length() > 20) {
            throw new IDFormatException("id๋Š” 8์ž์ด์ƒ, 20์ž์ดํ•˜๋กœ ์„ค์ •ํ•˜์„ธ์š”");
        }
        this.userID = userID;
    }
    public static void main(String[] args) {
        IDFormatTest idTest = new IDFormatTest();
        String myId = null;
        try {
            idTest.setUserID(myId);
        } catch (IDFormatException e) {
            System.out.println(e);
        }

    }
}

์ž๋ฐ”์˜ ์ •์„ ์ฐธ๊ณ 

ํŒจ์ŠคํŠธ์บ ํผ์Šค ์ž๋ฐ” ์˜ฌ์ธ์› ๊ฐ•์˜ ์ฐธ๊ณ 

 

728x90
๋ฐ˜์‘ํ˜•

'Language > Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Enum  (0) 2021.01.28
Thread - ๋ฉ€ํ‹ฐ์“ฐ๋ ˆ๋“œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ  (0) 2021.01.22
[ JAVA ] ์ธํ„ฐํŽ˜์ด์Šค  (0) 2021.01.08
[ JAVA ] package  (0) 2021.01.01
[ JAVA ] ์ƒ์†  (0) 2020.12.25