์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Absolute
- AGI
- ai
- AI agents
- AI engineer
- AI researcher
- ajax
- algorithm
- Algorithms
- aliases
- Array ๊ฐ์ฒด
- ASI
- bayes' theorem
- Bit
- Blur
- BOM
- bootstrap
- canva
- challenges
- ChatGPT
- Today
- In Total
A Joyful AI Research Journey๐ณ๐
[27] 230206 Java Ch. 5 ์ฐธ์กฐ ํ์ : 1. ์ฐธ์กฐ ํ์ ๊ณผ ์ฐธ์กฐ ๋ณ์ [K-๋์งํธ ํธ๋ ์ด๋ 27์ผ] ๋ณธ๋ฌธ
[27] 230206 Java Ch. 5 ์ฐธ์กฐ ํ์ : 1. ์ฐธ์กฐ ํ์ ๊ณผ ์ฐธ์กฐ ๋ณ์ [K-๋์งํธ ํธ๋ ์ด๋ 27์ผ]
yjyuwisely 2023. 2. 6. 12:50230207 Mon 27th class
Ch. 5 ์ฐธ์กฐ ํ์
์ง๋: p. 164 ~ (๊ต์ฌ: ํผ์ ๊ณต๋ถํ๋ ์๋ฐ, ์ ์: ์ ์ฉ๊ถ)
์ค๋ ๋ฐฐ์ด ๊ฒ ์ค ๊ธฐ์ตํ ๊ฒ์ ์ ๋ฆฌํ๋ค.
์ง๋ ์์ ๋ ๋ฐฐ์ด ๊ฒ ์ค ๋ค์ ๊ธฐ์ตํ ๊ฒ
๊ธฐ๋ณธ ํ์
๋ณ์(byte, char, short, int, long, float, double, boolean)์ ๊ฐ์ ๋น๊ตํ ๋์๋ == ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ง๋ง
์ฐธ์กฐ ํ์
์ธ String ๋ณ์๋ฅผ ๋น๊ตํ ๋๋ equals() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค.
name == "์ ์๋ฐ" (X)
name.equals("์ ์๋ฐ") (O)
Ch. 5 ์ฐธ์กฐ ํ์
์ฑ ์ ๋ชฉ์ฐจ
05-1 ์ฐธ์กฐ ํ์ ๊ณผ ์ฐธ์กฐ ๋ณ์
05-2 ๋ฐฐ์ด
05-3 ์ด๊ฑฐ ํ์
5.1 ์ฐธ์กฐ ํ์ ๊ณผ ์ฐธ์กฐ ๋ณ์ p. 164
1) ๊ธฐ๋ณธ ํ์
(primitive type)๊ณผ ์ฐธ์กฐ ํ์
(reference type) p. 165
๊ธฐ๋ณธ ํ์
๋ณ์: byte, short, char, int, long, float, double, boolean
์ค์ ๊ฐ์ด ์ ์ฅ๋๋ค.
์ ์, ์ค์, ๋ฌธ์, ๋
ผ๋ฆฌ ๋ฆฌํฐ๋ด์ ์ ์ฅํ๋ ํ์
์ด๋ค.
int age = 25;
double price = 100.5;
์ฐธ์กฐ ํ์
๋ณ์: ๊ธฐ๋ณธ ํ์
์ ์ ์ธํ ๋ฐฐ์ด(ex. int[] arrField), ์ด๊ฑฐ(ex. enum), ํด๋์ค(ex. String referenceField), ์ธํฐํ์ด์ค
๊ฐ์ฒด(object)์ ๋ฒ์ง๋ฅผ ์ฐธ์กฐํ๋ ํ์
์ด๋ค.
(์ฐธ์กฐ: ๋ณ์์ ์ ๊ทผํ๋ ๊ฒ)
๋ฉ๋ชจ๋ฆฌ์ ๋ฒ์ง๋ฅผ ๋ณ์ ์์์ ์ ์ฅํ๋ค.
String name = "์ ์ฉ๊ถ";
String hobby = "๋
์";
An interface is a completely "abstract class" that is used to group related methods with empty bodies:
To achieve security - hide certain details and only show the important details of an object (interface).
์ฐธ๊ณ : https://www.w3schools.com/java/tryjava.asp?filename=demo_interface
2) ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ ์์ญ p. 166
JVM(์๋ฐ ๊ฐ์ ๊ธฐ๊ณ: Java virtual machine)์ ์ด์์ฒด์ ์์ ํ ๋น๋ฐ์ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ๋ฉ์๋ ์์ญ, ํ ์์ญ, ์คํ ์์ญ์ผ๋ก ๊ตฌ๋ถํด์ ์ฌ์ฉํ๋ค.
(๋ฉ๋ชจ๋ฆฌ ์๋ ์ ๋ฆฌ by JVM
๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ฅผ ์ํด JVM์ garbage collection process๋ฅผ ํตํด Heap์ ์๋์ ์ผ๋ก ๊ด๋ฆฌํ๋ค.)
- ๋ฉ์๋ ์์ญ(Method Area)์๋ ์ ์ ํ๋, ์์, ๋ฉ์๋ ์ฝ๋, ์์ฑ์ ์ฝ๋๊ฐ ์์นํ๋ฉฐ, (๊ณต์ ํด์ ์ฌ์ฉํ๋ค.)
- ํ ์์ญ(Heap Area)์๋ ๊ฐ์ฒด๊ฐ ์์ฑ๋๋ค.
- ์คํ ์์ญ(Stack)์๋ ๋ณ์๊ฐ ์์ฑ๋๋ค.
JVM ์คํ ์์ญ
JVM ์คํ์ ๋ฉ์๋๋ฅผ ํธ์ถํ ๋๋ง๋ค ํ๋ ์(Frame)์ ์ถ๊ฐ(push)ํ๊ณ
๋ฉ์๋๊ฐ ์ข ๋ฃ๋๋ฉด ํด๋น ํ๋ ์์ ์ ๊ฑฐ(pop)ํ๋ ๋์์ ์ํํ๋ค.
ํ๋ ์ ๋ด๋ถ์๋ ๋ก์ปฌ ๋ณ์ ์คํ์ด ์๋๋ฐ, ๊ธฐ๋ณธ ํ์ ๋ณ์์ ์ฐธ์กฐ ํ์ ๋ณ์๊ฐ ์ถ๊ฐ(push)๋๊ฑฐ๋ ์ ๊ฑฐ(pop)๋๋ค.
์คํ ์์ญ์ ๋ณ์๊ฐ ์์ฑ๋๋ ์์ ์ ์ด๊ธฐํ๊ฐ ๋ ๋, ์ฆ ์ต์ด๋ก ๋ณ์์ ๊ฐ์ด ์ ์ฅ๋ ๋์ด๋ค.
๋ณ์๋ ์ ์ธ๋ ๋ธ๋ก ์์์๋ง ์คํ์ ์กด์ฌํ๊ณ ๋ธ๋ก์ ๋ฒ์ด๋๋ฉด ์คํ์์ ์ ๊ฑฐ๋๋ค.
3) ์ฐธ์กฐ ๋ณ์ ==, != ์ฐ์ฐ p. 168
๊ธฐ๋ณธ ํ์
๋ณ์์ ==, != ์ฐ์ฐ์ ๋ณ์์ ๊ฐ์ด ๊ฐ์์ง, ์๋์ง๋ฅผ ์กฐ์ฌํ์ง๋ง
์ฐธ์กฐ ํ์
๋ณ์๋ค ๊ฐ์ ==, != ์ฐ์ฐ์ ๋์ผํ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ๋์ง, ๋ค๋ฅธ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ๋์ง ์์๋ณผ ๋ ์ฌ์ฉ๋๋ค.
์ฐธ์กฐ ํ์
๋ณ์์ ๊ฐ์ ํ ์์ญ์ ๊ฐ์ฒด ์ฃผ์์ด๋ฏ๋ก ==, != ์ฐ์ฐ์ ๊ฒฐ๊ตญ ๋ฒ์ง ๊ฐ์ ๋น๊ตํ๋ ๊ฒ์ด๋ค.
๋์ผํ ๋ฒ์ง ๊ฐ์ ๊ฐ๊ณ ์๋ค๋ ๊ฒ์ ๋์ผํ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ๋ค๋ ์๋ฏธ์ด๋ค.
๋ฐ๋ผ์ ๋์ผํ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ๊ณ ์์ ๊ฒฝ์ฐ == ์ฐ์ฐ์ ๊ฒฐ๊ณผ๋ true์ด๊ณ != ์ฐ์ฐ์ ๊ฒฐ๊ณผ๋ false์ด๋ค.
4) null๊ณผ NullPointerException p. 169
์ฐธ์กฐ ํ์
๋ณ์๋ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐ(๋ณ์์ ์ ๊ทผํ๋ ๊ฒ)ํ์ง ์๋๋ค๋ ๋ป์ผ๋ก null ๊ฐ์ ๊ฐ์ง ์ ์๋ค.
null ๊ฐ๋ ์ด๊ธฐ๊ฐ์ผ๋ก ์ฌ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์ null๋ก ์ด๊ธฐํ๋ ์ฐธ์กฐ ๋ณ์๋ ์คํ ์์ญ์ ์์ฑ๋๋ค.
NullPointerException์ ์ฐธ์กฐ ๋ณ์๋ฅผ ์ฌ์ฉํ๋ฉด์ ๊ฐ์ฅ ๋ง์ด ๋ฐ์ํ๋ ์์ธ(Exception: ํ๋ก๊ทธ๋จ ์คํ ๋์ค์ ๋ฐ์ํ๋ ์ค๋ฅ) ์ค ํ๋์ด๋ค.
์ฐธ์กฐ ๋ณ์๊ฐ null์ ๊ฐ์ง๊ณ ์์ ๊ฒฝ์ฐ์๋, ์ฐธ์กฐ ๊ฐ์ฒด๊ฐ ์์ผ๋ฏ๋ก ์ฐธ์กฐ ๋ณ์๋ฅผ ํตํด ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
๋ง์ฝ null์ธ ์ฐธ์กฐ ๋ณ์๋ฅผ ํตํด ์์ง๋ ์์ ๊ฐ์ฒด์ ํ๋๋ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด NullPointerException์ด ๋ฐ์ํ๋ค.
int[] intArray = null;
intArray[0] = 10; //NullPointerException
์ ์ฝ๋์์ intArray๋ ๋ฐฐ์ด ๋ณ์์ด๋ฏ๋ก ์ฐธ์กฐ ๋ณ์์ด๋ค. ๊ทธ๋์ null๋ก ์ด๊ธฐํ๊ฐ ๊ฐ๋ฅํ๋ค.
์ด ์ํ์์ intArray[0]์ 10์ ์ ์ฅํ๋ ค๊ณ ํ๋ฉด NullPointerException์ด ๋ฐ์ํ๋ค.
intArray ๋ณ์๊ฐ ์ฐธ์กฐํ๋ ๋ฐฐ์ด ๊ฐ์ฒด๊ฐ ์๊ธฐ ๋๋ฌธ์ด๋ค.
String str = null;
System.out.println("์ด ๋ฌธ์์: "+str.length()); //NullPointerException
String์ ํด๋์ค์ด๋ฏ๋ก ์ฐธ์กฐ ํ์
์ด๋ค. ๋ฐ๋ผ์ str ๋ณ์๋ null๋ก ์ด๊ธฐํํ ์ ์๋ค.
str ๋ณ์๊ฐ ์ฐธ์กฐํ๋ String ๊ฐ์ฒด๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ด ์ํ์์ String ๊ฐ์ฒด์ length()๋ผ๋ ๋ฉ์๋๋ฅผ ํธ์ถํ๋ฉด NullPointerException์ด ๋ฐ์ํ๋ค.
NullPointerException์ด ๋ฐ์ํ์ ๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ฐธ์กฐ ๋ณ์๋ฅผ ์ถ์ ํด์ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ๋๋ก ์์ ํ๋ ๊ฒ์ด๋ค.
5) String ํ์ p. 170
์ผ๋ฐ์ ์ผ๋ก ๋ณ์์ ๋ฌธ์์ด์ ์ ์ฅํ ๊ฒฝ์ฐ์๋ ๋ฌธ์์ด ๋ฆฌํฐ๋ด์ ์ฌ์ฉํ์ง๋ง, new ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํด์ ์ง์ String ๊ฐ์ฒด๋ฅผ ์์ฑ์ํฌ ์ ์๋ค. new ์ฐ์ฐ์๋ ํ ์์ญ์ ์๋ก์ด ๊ฐ์ฒด๋ฅผ ๋ง๋ค ๋ ์ฌ์ฉํ๋ ์ฐ์ฐ์๋ก ๊ฐ์ฒด ์์ฑ ์ฐ์ฐ์๋ผ๊ณ ํ๋ค.
String name1 = String("์ ์ฉ๊ถ");
String name2 = String("์ ์ฉ๊ถ");
String name3 = new String("์ ์ฉ๊ถ");
๋์ผํ String ๊ฐ์ฒด์ด๊ฑด ๋ค๋ฅธ String ๊ฐ์ฒด์ด๊ฑด ์๊ด์์ด ๋ด๋ถ ๋ฌธ์์ด์ ๋น๊ตํ๊ณ ์ถ์ ๋์๋ String ๊ฐ์ฒด์ equals() ๋ฉ์๋๋ฅผ ์ฌ์ฉํด์ผํ๋ค. equals() ๋ฉ์๋๋ ์๋ณธ ๋ฌธ์์ด๊ณผ ๋งค๊ฐ๊ฐ์ผ๋ก ์ฃผ์ด์ง ๋น๊ต ๋ฌธ์์ด์ด ๋์ผํ์ง ๋น๊ตํ ํ true ๋๋ false๋ฅผ ๋ฆฌํดํ๋ค.
์์ ) ๋ฌธ์์ด ๋น๊ต
public class P173StringEqualsExample {
public static void main(String[] args) {
String strVar1 = "์ ๋ฏผ์ฒ ";
String strVar2 = "์ ๋ฏผ์ฒ ";
if(strVar1 == strVar2) {
System.out.println("strVar1๊ณผ strVar2๋ ์ฐธ์กฐ๊ฐ ๊ฐ๋ค.");
}else {
System.out.println("strVar1๊ณผ strVar2๋ ์ฐธ์กฐ๊ฐ ๋ค๋ฅด๋ค.");
}
if(strVar1.equals(strVar2)) {
System.out.println("strVar1๊ณผ strVar2๋ ๋ฌธ์์ด์ด ๊ฐ๋ค.");
}
String strVar3 = new String("์ ๋ฏผ์ฒ ");
String strVar4 = new String("์ ๋ฏผ์ฒ ");
if(strVar3 == strVar4) {
System.out.println("strVar3๊ณผ strVar4๋ ์ฐธ์กฐ๊ฐ ๊ฐ๋ค.");
}else {
System.out.println("strVar3๊ณผ strVar4๋ ์ฐธ์กฐ๊ฐ ๋ค๋ฅด๋ค.");
}
if(strVar3.equals(strVar4)) {
System.out.println("strVar3๊ณผ strVar4๋ ๋ฌธ์์ด์ด ๊ฐ๋ค.");
}
}
}
๊ฒฐ๊ณผ) new ์ฐ์ฐ์๋ก String ๊ฐ์ฒด๋ฅผ ๋ณ๋๋ก ์์ฑํ๊ธฐ ๋๋ฌธ์ ์ฐธ์กฐ๊ฐ ๋ค๋ฅด๋ค.
๋์ผํ String ๊ฐ์ฒด์ด๊ฑด ๋ค๋ฅธ String ๊ฐ์ฒด์ด๊ฑด ์๊ด์์ด ๋ด๋ถ ๋ฌธ์์ด์ ๋น๊ตํ๊ณ ์ถ์ ๋์๋ String ๊ฐ์ฒด์ equals() ๋ฉ์๋๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค.
strVar1๊ณผ strVar2๋ ์ฐธ์กฐ๊ฐ ๊ฐ๋ค.
strVar1๊ณผ strVar2๋ ๋ฌธ์์ด์ด ๊ฐ๋ค.
strVar3๊ณผ strVar4๋ ์ฐธ์กฐ๊ฐ ๋ค๋ฅด๋ค.
strVar3๊ณผ strVar4๋ ๋ฌธ์์ด์ด ๊ฐ๋ค.
์ฐธ์กฐ ๋น๊ต | 0x100 | ๋ฌธ์์ด ๋น๊ต | ||||
strVar1 | 0x100 | <--- | strVar1 | ์ | ๋ฏผ | ์ฒ |
๊ฐ๋ค | 0x100 | strVar1[0] | strVar1[1] | strVar1[2] | ||
strVar2 | 0x100 | <--- | strVar2 | ์ | ๋ฏผ | ์ฒ |
strVar1[0] | strVar1[1] | strVar1[2] |
strVar1๊ณผ strVar2๋ ์ฐธ์กฐ๊ฐ ๊ฐ๊ณ ๋ฌธ์์ด์ด ๊ฐ๋ค.
์ด๋ ํ ๊ฒฝ์ฐ์๋ 2์๋ฆฌ ์ด์ ์ถ๋ ฅ์ด ๊ฐ๋ฅํ๊ฒ ํ ์ ์๋๋ก "0x100"์ ๋ํด์ค๋ค.
1์ด๋ผ๋ ๊ฐ์ ๊ธฐ์ค์ผ๋ก 0x100์ ๋ํด์ฃผ๋ฉด 9๋นํธ์ 1์ ๋ํด์ฃผ๋ ๊ฒ๊ณผ ๊ฐ๋ค.
- ๊ธฐ์กด : 00000000 0000 0000 0000 0000 0000 0001
- 0x100 ๋ํจ : 00000000 0000 0000 0000 0001 0000 0001
์ฐธ๊ณ : https://enumclass.tistory.com/268
์ฐธ์กฐ ๋น๊ต | 0x200 | ๋ฌธ์์ด ๋น๊ต | ||||
strVar1 | 0x200 | <--- | strVar1 | ์ | ๋ฏผ | ์ฒ |
๊ฐ๋ค | 0x300 | strVar1[0] | strVar1[1] | strVar1[2] | ||
strVar2 | 0x300 | <--- | strVar2 | ์ | ๋ฏผ | ์ฒ |
strVar1[0] | strVar1[1] | strVar1[2] |
strVar3๊ณผ strVar4๋ ์ฐธ์กฐ๊ฐ ๋ค๋ฅด๊ณ ๋ฌธ์์ด์ด ๊ฐ๋ค.
๋ง๋ฌด๋ฆฌ p. 175
6๊ฐ์ง ํค์๋๋ก ๋๋ด๋ ํต์ฌ ํฌ์ธํธ
1) ๊ธฐ๋ณธ ํ์ : byte, short, char, int, long, float, double, boolean ํ์ ์ ๋งํ๋ฉฐ ์ด๋ค ํ์ ์ ๋ณ์์๋ ๊ฐ ์์ฒด๊ฐ ์ ์ฅ๋๋ค.
2) ์ฐธ์กฐ ํ์
: ๊ธฐ๋ณธ ํ์
์ ์ ์ธํ ๋ฐฐ์ด, ์ด๊ฑฐ, ํด๋์ค, ์ธํฐํ์ด์ค ๋ฑ์ ๋งํ๋ค.
์ฐธ์กฐ ํ์
์ ๋ณ์์๋ ๊ฐ์ฒด์ ๋ฒ์ง๊ฐ ์ ์ฅ๋๋ค. ๋ฒ์ง๋ก ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ๋ค๋ ์๋ฏธ์์ ์ฐธ์กฐ ํ์
์ด๋ผ๊ณ ํ๋ค.
3) ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ ์์ญ: JVM(์๋ฐ ๊ฐ์ ๊ธฐ๊ณ: Java virtual machine)์ ์ด์์ฒด์ ์์ ํ ๋น๋ฐ์ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ๋ฉ์๋ ์์ญ, ํ ์์ญ, ์คํ ์์ญ์ผ๋ก ๊ตฌ๋ถํด์ ์ฌ์ฉํ๋ค.
(๋ฉ๋ชจ๋ฆฌ ์๋ ์ ๋ฆฌ by JVM
๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ฅผ ์ํด JVM์ garbage collection process๋ฅผ ํตํด Heap์ ์๋์ ์ผ๋ก ๊ด๋ฆฌํ๋ค.)
๋ฉ์๋ ์์ญ์๋ ์ ์ ํ๋, ์์, ๋ฉ์๋ ์ฝ๋, ์์ฑ์ ์ฝ๋๊ฐ ์์นํ๋ฉฐ,
ํ ์์ญ์๋ ๊ฐ์ฒด๊ฐ ์์ฑ๋๋ค.
์คํ ์์ญ์๋ ๋ณ์๊ฐ ์์ฑ๋๋ค.
4) ๋ฒ์ง ๋น๊ต: ๋น๊ต ์ฐ์ฐ์(==, !=)๊ฐ ๊ธฐ๋ณธ ํ์
์์ ์ฌ์ฉ๋๋ฉด ๊ฐ์ ๋น๊ตํ์ง๋ง, ์ฐธ์กฐ ํ์
์์ ์ฌ์ฉ๋๋ฉด ๋ฒ์ง๋ฅผ ๋น๊ตํ๋ค.
==์ด true๊ฐ ๋์ค๋ฉด ๊ฐ์ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ๋ค๋ ๋ป์ด๊ณ
false๊ฐ ๋์ค๋ฉด ๋ค๋ฅธ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ๋ค๋ ๋ป์ด๋ค.
5) null: ์ฐธ์กฐ ํ์
๋ณ์๋ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ์ง ์๋๋ค๋ ๋ป์ผ๋ก null ๊ฐ์ ๊ฐ์ง ์ ์๋ค.
null ๊ฐ๋ ์ด๊ธฐ๊ฐ์ผ๋ก ์ฌ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์ null๋ก ์ด๊ธฐํ๋ ์ฐธ์กฐ ๋ณ์๋ ์คํ ์์ญ์ ์์ฑ๋๋ค.
6) NullPointerException: ์ฐธ์กฐ ๋ณ์๊ฐ null์ ๊ฐ์ง๊ณ ์์ ๊ฒฝ์ฐ์๋, ์ฐธ์กฐ ๊ฐ์ฒด๊ฐ ์์ผ๋ฏ๋ก ์ฐธ์กฐ ๋ณ์๋ฅผ ํตํด ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
๋ง์ฝ null์ธ ์ฐธ์กฐ ๋ณ์๋ฅผ ํตํด ์์ง๋ ์์ ๊ฐ์ฒด์ ํ๋๋ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด NullPointerException์ด ๋ฐ์ํ๋ค.