๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ปString์€ ์™œ ๋Œ€๋ฌธ์ž ์ผ๊นŒ?

์œค์ค€์ƒยท2025๋…„ 3์›” 1์ผ
0
post-thumbnail

์Šคํ”„๋ง ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋‹ค ๋ณด๋ฉด ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ๋‹ค๋ฃจ๊ฒŒ ๋˜๋Š”๋ฐ, ๊ทธ์ค‘์—์„œ๋„ int๋Š” ์†Œ๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ฐ˜๋ฉด String์€ ๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•˜๋Š” ์ ์ด ๋ˆˆ์— ๋„์—ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” ๋‹จ์ˆœํ•œ ๋ฌธ๋ฒ• ์ฐจ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์ง€๋งŒ, ์ด๋ฅผ ์ดํ•ดํ•˜๋ ค๋ฉด Java์˜ ๊ธฐ๋ณธ ํƒ€์ž…(Primitive Type)๊ณผ ์ฐธ์กฐ ํƒ€์ž…(Reference Type)์— ๋Œ€ํ•œ ๊ฐœ๋…์„ ์•Œ์•„์•ผ ํ–ˆ๋‹ค.


๊ธฐ๋ณธ ํƒ€์ž…(Primitive Type)๊ณผ ์ฐธ์กฐ ํƒ€์ž…(Reference Type)

์Šคํ”„๋ง์—์„œ ์—”ํ‹ฐํ‹ฐ(Entity)๋ฅผ ๋งŒ๋“ค ๋•Œ, ํ•„๋“œ ํƒ€์ž…์„ ์ง€์ •ํ•˜๋Š” ๊ณผ์ •์—์„œ ๊ธฐ๋ณธ ํƒ€์ž…๊ณผ ์ฐธ์กฐ ํƒ€์ž… ์ค‘ ์–ด๋–ค ๊ฒƒ์„ ์„ ํƒํ•ด์•ผ ํ• ์ง€ ๊ณ ๋ฏผํ•  ๋•Œ๊ฐ€ ์žˆ๋‹ค. ์ด ๋‘˜์˜ ์ฐจ์ด๋ฅผ ์•Œ๋ฉด ๋” ์ ์ ˆํ•œ ์„ ํƒ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ธฐ๋ณธ ํƒ€์ž… (Primitive Type)

๊ธฐ๋ณธ ํƒ€์ž…์€ ๊ฐ€์žฅ ๋‹จ์ˆœํ•œ ๋ฐ์ดํ„ฐ ํƒ€์ž…์œผ๋กœ, ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ง์ ‘ ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค. ๋Œ€ํ‘œ์ ์ธ ๊ธฐ๋ณธ ํƒ€์ž…์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • byte, short, int, long (์ •์ˆ˜ํ˜•)
  • float, double (์‹ค์ˆ˜ํ˜•)
  • char (๋ฌธ์žํ˜•)
  • boolean (๋…ผ๋ฆฌํ˜•)

๊ธฐ๋ณธ ํƒ€์ž…์€ ๊ณ ์ •๋œ ํฌ๊ธฐ์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ฐจ์ง€ํ•˜๋ฉฐ, ๊ฐ’์„ ์ง์ ‘ ์ €์žฅํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด int a = 10;์ด๋ผ๊ณ  ์„ ์–ธํ•˜๋ฉด, a์—๋Š” ์‹ค์ œ ์ˆซ์ž 10์ด ์ €์žฅ๋œ๋‹ค.

์ฐธ์กฐ ํƒ€์ž… (Reference Type)

๋ฐ˜๋ฉด, 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์ฐธ์กฐ ํƒ€์ž…(ํด๋ž˜์Šค)๋Œ€๋ฌธ์ž๊ฐ์ฒด์˜ ์ฃผ์†Œ๋ฅผ ์ €์žฅ

์Šคํ”„๋ง ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ์ด๋Ÿฐ ์ฐจ์ด๋ฅผ ์ดํ•ดํ•˜๋ฉด ๋” ์ ์ ˆํ•œ ํƒ€์ž…์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค. ์•ž์œผ๋กœ๋„ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋ฉด์„œ ๊ถ๊ธˆํ–ˆ๋˜ ์ ๋“ค์„ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ๐Ÿ˜Š

profile
ํ˜๋Ÿฌ๊ฐ€๋˜ ์›ํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ

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