์คํ๋ง ํ๋ก์ ํธ๋ฅผ ์งํํ๋ค ๋ณด๋ฉด ๋ค์ํ ๋ฐ์ดํฐ ํ์ ์ ๋ค๋ฃจ๊ฒ ๋๋๋ฐ, ๊ทธ์ค์์๋ int๋ ์๋ฌธ์๋ก ์์ํ๋ ๋ฐ๋ฉด String์ ๋๋ฌธ์๋ก ์์ํ๋ ์ ์ด ๋์ ๋์๋ค. ์ฒ์์๋ ๋จ์ํ ๋ฌธ๋ฒ ์ฐจ์ด๋ผ๊ณ ์๊ฐํ์ง๋ง, ์ด๋ฅผ ์ดํดํ๋ ค๋ฉด Java์ ๊ธฐ๋ณธ ํ์ (Primitive Type)๊ณผ ์ฐธ์กฐ ํ์ (Reference Type)์ ๋ํ ๊ฐ๋ ์ ์์์ผ ํ๋ค.
์คํ๋ง์์ ์ํฐํฐ(Entity)๋ฅผ ๋ง๋ค ๋, ํ๋ ํ์ ์ ์ง์ ํ๋ ๊ณผ์ ์์ ๊ธฐ๋ณธ ํ์ ๊ณผ ์ฐธ์กฐ ํ์ ์ค ์ด๋ค ๊ฒ์ ์ ํํด์ผ ํ ์ง ๊ณ ๋ฏผํ ๋๊ฐ ์๋ค. ์ด ๋์ ์ฐจ์ด๋ฅผ ์๋ฉด ๋ ์ ์ ํ ์ ํ์ ํ ์ ์๋ค.
๊ธฐ๋ณธ ํ์ ์ ๊ฐ์ฅ ๋จ์ํ ๋ฐ์ดํฐ ํ์ ์ผ๋ก, ๋ฉ๋ชจ๋ฆฌ์์ ์ง์ ๊ฐ์ ์ ์ฅํ๋ ๋ฐฉ์์ผ๋ก ๋์ํ๋ค. ๋ํ์ ์ธ ๊ธฐ๋ณธ ํ์ ์ ๋ค์๊ณผ ๊ฐ๋ค.
๊ธฐ๋ณธ ํ์ ์ ๊ณ ์ ๋ ํฌ๊ธฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฐจ์งํ๋ฉฐ, ๊ฐ์ ์ง์ ์ ์ฅํ๋ค. ์๋ฅผ ๋ค์ด int a = 10;์ด๋ผ๊ณ ์ ์ธํ๋ฉด, a์๋ ์ค์ ์ซ์ 10์ด ์ ์ฅ๋๋ค.
๋ฐ๋ฉด, String๊ณผ ๊ฐ์ ์ฐธ์กฐ ํ์ ์ ์ค์ ๊ฐ์ ์ ์ฅํ๋ ๊ฒ์ด ์๋๋ผ, ๊ฐ์ฒด์ ์ฃผ์(Reference)๋ฅผ ์ ์ฅํ๋ค. ์ฆ, String str = "Hello"; ๋ผ๊ณ ์ ์ธํ๋ฉด, "Hello"๋ผ๋ ๋ฌธ์์ด ๊ฐ์ฒด๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์์ฑ๋๊ณ , str ๋ณ์๋ ๊ทธ ๊ฐ์ฒด์ ์ฃผ์๋ฅผ ๊ฐ๋ฆฌํจ๋ค.
Java์์ String์ ํด๋์ค์ด๋ฏ๋ก ๋๋ฌธ์๋ก ์์ํ๋ฉฐ, ์ด๋ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์์ ์ผ๋ฐ์ ์ธ ๋ค์ด๋ฐ ๊ท์น์ด๋ค. ๋ฐ๋ฉด int์ ๊ฐ์ ๊ธฐ๋ณธ ํ์ ์ ๋ ๊ฐ๋ณ๊ณ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํด ์๋ฌธ์๋ก ์ง์ ๋์ด ์๋ค.
์คํ๋ง ํ๋ก์ ํธ์์ ์ํฐํฐ(Entity) ํด๋์ค์ ํ๋๋ฅผ ์ ์ํ ๋, ๊ธฐ๋ณธ ํ์ ๊ณผ ์ฐธ์กฐ ํ์ ์ค ์ด๋ค ๊ฒ์ ์ฌ์ฉํ ์ง ๊ณ ๋ฏผํ ์ ์๋ค. ์๋ฅผ ๋ค์ด:
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private int age; // ๊ธฐ๋ณธ ํ์
private String name; // ์ฐธ์กฐ ํ์
}
์ ์ฝ๋์์ age๋ ๊ธฐ๋ณธ ํ์ int๋ฅผ ์ฌ์ฉํ์ผ๋ฉฐ, name์ String ์ฐธ์กฐ ํ์ ์ ์ฌ์ฉํ๋ค. int์ ๊ฐ์ ๊ธฐ๋ณธ ํ์ ์ null ๊ฐ์ ๊ฐ์ง ์ ์์ง๋ง, Integer์ ๊ฐ์ ๋ํผ ํด๋์ค(Wrapper Class)๋ฅผ ์ฌ์ฉํ๋ฉด null ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ๋ค.
private Integer age; // null ๊ฐ ํ์ฉ ๊ฐ๋ฅ
ํ์ | ์ข ๋ฅ | ์์ ๋ฌธ์ | ์ ์ฅ ๋ฐฉ์ |
---|---|---|---|
int | ๊ธฐ๋ณธ ํ์ | ์๋ฌธ์ | ๊ฐ์ ์ง์ ์ ์ฅ |
String | ์ฐธ์กฐ ํ์ (ํด๋์ค) | ๋๋ฌธ์ | ๊ฐ์ฒด์ ์ฃผ์๋ฅผ ์ ์ฅ |
์คํ๋ง ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ์ด๋ฐ ์ฐจ์ด๋ฅผ ์ดํดํ๋ฉด ๋ ์ ์ ํ ํ์ ์ ์ ํํ ์ ์๋ค. ์์ผ๋ก๋ ํ๋ก์ ํธ๋ฅผ ํ๋ฉด์ ๊ถ๊ธํ๋ ์ ๋ค์ ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํ๋ค. ๐