๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Today I Learned(TIL)/์ŠคํŒŒ๋ฅดํƒ€ ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ดˆ_Day 15

by carrot0911 2024. 11. 26.

์˜ค๋Š˜ ํ•œ ๊ณต๋ถ€ ๐Ÿง

์˜ค์ „

  • ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ(Java) 2๋ฌธ์ œ ํ’€์ด & ๋ธ”๋กœ๊ทธ ์ •๋ฆฌ
  • Kiosk ๊ณผ์ œ ์‹œ์ž‘_Lv2๊นŒ์ง€ ํ•ด๊ฒฐ

์˜คํ›„

  • Java ๊ธฐ๋ณธํŽธ ๊ฐ•์˜_ํด๋ž˜์Šค์™€ ๋ฐ์ดํ„ฐ, ๊ธฐ๋ณธํ˜•๊ณผ ์ฐธ์กฐํ˜•
  • TIL ๋ธ”๋กœ๊ทธ ์ •๋ฆฌ

 

์˜ค๋Š˜ ์–ป์€ ๋‚ด์šฉ ์ •๋ฆฌ โœ๏ธ

ํด๋ž˜์Šค์™€ ๋ฐ์ดํ„ฐ

  • ๋ฉค๋ฒ„ ๋ณ€์ˆ˜(Member Variable) : ์ด ๋ณ€์ˆ˜๋“ค์€ ํŠน์ • ํด๋ž˜์Šค์— ์†Œ์†๋œ ๋ฉค๋ฒ„์ด๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ ‡๊ฒŒ ๋ถ€๋ฅธ๋‹ค.
  • ํ•„๋“œ(Field) : ๋ฐ์ดํ„ฐ ํ•ญ๋ชฉ์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ „ํ†ต์ ์ธ ์šฉ์–ด์ด๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ์—‘์…€ ๋“ฑ์—์„œ ๋ฐ์ดํ„ฐ ๊ฐ๊ฐ์˜ ํ•ญ๋ชฉ์„ ํ•„๋“œ๋ผ ํ•œ๋‹ค.
  • ์ž๋ฐ”์—์„œ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜, ํ•„๋“œ๋Š” ๊ฐ™์€ ๋œป์ด๋‹ค. ํด๋ž˜์Šค์— ์†Œ์†๋œ ๋ณ€์ˆ˜๋ฅผ ๋œปํ•œ๋‹ค.
  • ํด๋ž˜์Šค
    • ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ 'ํ‹€' ๋˜๋Š” '์„ค๊ณ„๋„'์ด๋‹ค.
    • ํด๋ž˜์Šค๋Š” ๊ฐ์ฒด๊ฐ€ ๊ฐ€์ ธ์•ผ ํ•  ์†์„ฑ(๋ณ€์ˆ˜)๊ณผ ๊ธฐ๋Šฅ(๋ฉ”์„œ๋“œ)๋ฅผ ์ •์˜ํ•œ๋‹ค.
  • ๊ฐ์ฒด
    • ํด๋ž˜์Šค์—์„œ ์ •์˜ํ•œ ์†์„ฑ๊ณผ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง„ ์‹ค์ฒด์ด๋‹ค. 
    • ๊ฐ์ฒด๋Š” ์„œ๋กœ ๋…๋ฆฝ์ ์ธ ์ƒํƒœ๋ฅผ ๊ฐ€์ง„๋‹ค.
  • ์ธ์Šคํ„ด์Šค
    • ํŠน์ • ํด๋ž˜์Šค๋กœ๋ถ€ํ„ฐ ์ƒ์„ฑ๋œ ๊ฐ์ฒด๋ฅผ ์˜๋ฏธํ•œ๋‹ค.
    • ์ฃผ๋กœ ๊ฐ์ฒด๊ฐ€ ์–ด๋–ค ํด๋ž˜์Šค์— ์†ํ•ด ์žˆ๋Š”์ง€ ๊ฐ•์กฐํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.
  • ๋‘˜ ๋‹ค ํด๋ž˜์Šค์—์„œ ๋‚˜์˜จ ์‹ค์ฒด๋ผ๋Š” ์˜๋ฏธ์—์„œ ๋น„์Šทํ•˜๊ฒŒ ์‚ฌ์šฉ๋˜์ง€๋งŒ, ์šฉ์–ด์ƒ ์ธ์Šคํ„ด์Šค๋Š” ๊ฐ์ฒด๋ณด๋‹ค ์ข€ ๋” ๊ด€๊ณ„์— ์ดˆ์ ์„ ๋งž์ถ˜ ๋‹จ์–ด์ด๋‹ค. 
  • ํ•˜์ง€๋งŒ ๋‘˜ ๋‹ค ํด๋ž˜์Šค์—์„œ ๋‚˜์˜จ ์‹ค์ฒด๋ผ๋Š” ํ•ต์‹ฌ ์˜๋ฏธ๋Š” ๊ฐ™๊ธฐ ๋•Œ๋ฌธ์— ๋ณดํ†ต ๋‘˜์„ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š๊ณ  ์‚ฌ์šฉํ•œ๋‹ค.

๊ธฐ๋ณธํ˜•๊ณผ ์ฐธ์กฐํ˜•

  • ๊ธฐ๋ณธํ˜•(Primitive Type) int, long, double, boolean์ฒ˜๋Ÿผ ๋ณ€์ˆ˜์— ์‚ฌ์šฉํ•  ๊ฐ’์„ ์ง์ ‘ ๋„ฃ์„ ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ๊ธฐ๋ณธํ˜•์ด๋ผ ํ•œ๋‹ค. ํ•ด๋‹น ๊ฐ’์„ ๋ฐ”๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ฐธ์กฐํ˜•(Reference Type) : ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•œ ์ฐธ์กฐ(์ฃผ์†Œ)๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ์ฐธ์กฐํ˜•์ด๋ผ ํ•œ๋‹ค. ์ฐธ์กฐํ˜•์€ ๊ฐ์ฒด ๋˜๋Š” ๋ฐฐ์—ด์— ์‚ฌ์šฉ๋œ๋‹ค.
  • ๊ธฐ๋ณธํ˜• ๋ณ€์ˆ˜์—๋Š” ์ง์ ‘ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ’์ด ๋“ค์–ด์žˆ์ง€๋งŒ ์ฐธ์กฐํ˜• ๋ณ€์ˆ˜์—๋Š” ์œ„์น˜(์ฐธ์กฐ๊ฐ’)๊ฐ€ ๋“ค์–ด๊ฐ€ ์žˆ๋‹ค.
  • ๋Œ€์›์น™ : Java๋Š” ํ•ญ์ƒ ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ๋ณต์‚ฌํ•ด์„œ ๋Œ€์ž…ํ•œ๋‹ค.
    • Java์—์„œ ๋ณ€์ˆ˜์— ๊ฐ’์„ ๋Œ€์ž…ํ•˜๋Š” ๊ฒƒ์€ ๋ณ€์ˆ˜์— ๋“ค์–ด ์žˆ๋Š” ๊ฐ’์„ ๋ณต์‚ฌํ•ด์„œ ๋Œ€์ž…ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
    • ๊ธฐ๋ณธํ˜•, ์ฐธ์กฐํ˜• ๋ชจ๋‘ ํ•ญ์ƒ ๋ณ€์ˆ˜์— ์žˆ๋Š” ๊ฐ’์„ ๋ณต์‚ฌํ•ด์„œ ๋Œ€์ž…ํ•œ๋‹ค.
    • ๊ธฐ๋ณธํ˜•์ด๋ฉด ๋ณ€์ˆ˜์— ๋“ค์–ด ์žˆ๋Š” ์‹ค์ œ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ’์„ ๋ณต์‚ฌํ•ด์„œ ๋Œ€์ž…ํ•˜๊ณ , ์ฐธ์กฐํ˜•์ด๋ฉด ๋ณ€์ˆ˜์— ๋“ค์–ด ์žˆ๋Š” ์ฐธ์กฐ๊ฐ’์„ ๋ณต์‚ฌํ•ด์„œ ๋Œ€์ž…ํ•œ๋‹ค.
    • ๊ธฐ๋ณธํ˜•์ด๋“  ์ฐธ์กฐํ˜•์ด๋“  ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ๋Œ€์ž…ํ•˜๋Š” ๋ฐฉ์‹์€ ๊ฐ™๋‹ค. ํ•˜์ง€๋งŒ ๊ธฐ๋ณธํ˜•๊ณผ ์ฐธ์กฐํ˜•์— ๋”ฐ๋ผ ๋™์ž‘ํ•˜๋Š” ๋ฐฉ์‹์ด ๋‹ฌ๋ผ์ง„๋‹ค.
  • ๊ธฐ๋ณธํ˜• vs ์ฐธ์กฐํ˜• - ๊ธฐ๋ณธ
    • ์ž๋ฐ”์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ๊ฐ€์žฅ ํฌ๊ฒŒ ๋ณด๋ฉด ๊ธฐ๋ณธํ˜•๊ณผ ์ฐธ์กฐํ˜•์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.
    • ๊ธฐ๋ณธํ˜•์„ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ๋ณ€์ˆ˜๋Š” ๋ชจ๋‘ ์ฐธ์กฐํ˜•์ด๋‹ค. ํด๋ž˜์Šค์™€ ๋ฐฐ์—ด์„ ๋‹ค๋ฃจ๋Š” ๋ณ€์ˆ˜๋Š” ์ฐธ์กฐํ˜•์ด๋‹ค.
    • ๊ธฐ๋ณธํ˜• ๋ณ€์ˆ˜๋Š” ๊ฐ’์„ ์ง์ ‘ ์ €์žฅํ•˜์ง€๋งŒ, ์ฐธ์กฐํ˜• ๋ณ€์ˆ˜๋Š” ์ฐธ์กฐ(์ฃผ์†Œ)๋ฅผ ์ €์žฅํ•œ๋‹ค.
    • ๊ธฐ๋ณธํ˜• ๋ณ€์ˆ˜๋Š” ์‚ฐ์ˆ  ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์ฐธ์กฐํ˜• ๋ณ€์ˆ˜๋Š” ์‚ฐ์ˆ  ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์—†๋‹ค.
    • ๊ธฐ๋ณธํ˜• ๋ณ€์ˆ˜๋Š” null์„ ํ• ๋‹นํ•  ์ˆ˜ ์—†์ง€๋งŒ, ์ฐธ์กฐํ˜• ๋ณ€์ˆ˜๋Š” null์„ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๊ธฐ๋ณธํ˜• vs ์ฐธ์กฐํ˜• - ๋Œ€์ž…
    • ๊ธฐ๋ณธํ˜•๊ณผ ์ฐธ์กฐํ˜• ๋ชจ๋‘ ๋Œ€์ž… ์‹œ ๋ณ€์ˆ˜ ์•ˆ์— ์žˆ๋Š” ๊ฐ’์„ ์ฝ๊ณ  ๋ณต์‚ฌํ•ด์„œ ์ „๋‹ฌํ•œ๋‹ค.
    • ๊ธฐ๋ณธํ˜•์€ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ’์„ ๋ณต์‚ฌํ•ด์„œ ์ „๋‹ฌํ•˜๊ณ , ์ฐธ์กฐํ˜•์€ ์ฐธ์กฐ๊ฐ’์„ ๋ณต์‚ฌํ•ด์„œ ์ „๋‹ฌํ•œ๋‹ค! ์ธ์Šคํ„ด์Šค๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ฐธ์กฐ๊ฐ’์„ ๋ณต์‚ฌํ•ด์„œ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค!
      ๋”ฐ๋ผ์„œ ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์—ฌ๋Ÿฌ ๊ณณ์—์„œ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ๋ณ€์ˆ˜์— ์–ด๋–ค ๊ฐ’์ด ๋“ค์–ด์žˆ๋“  ๊ฐ„์— ๊ทธ ๊ฐ’์„ ๊ทธ๋Œ€๋กœ ๋ณต์‚ฌํ•ด์„œ ์ „๋‹ฌํ•œ๋‹ค.
  • ๊ธฐ๋ณธํ˜• vs ์ฐธ์กฐํ˜• - ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ
    • ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ์‹œ ๊ธฐ๋ณธํ˜•์€ ๋ฉ”์„œ๋“œ ๋‚ด๋ถ€์—์„œ ๋งค๊ฐœ๋ณ€์ˆ˜(ํŒŒ๋ผ๋ฏธํ„ฐ)์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•ด๋„ ํ˜ธ์ถœ์ž์˜ ๋ณ€์ˆ˜ ๊ฐ’์—๋Š” ์˜ํ–ฅ์ด ์—†๋‹ค.
    • ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ์‹œ ์ฐธ์กฐํ˜•์€ ๋ฉ”์„œ๋“œ ๋‚ด๋ถ€์—์„œ ๋งค๊ฐœ๋ณ€์ˆ˜(ํŒŒ๋ผ๋ฏธํ„ฐ)๋กœ ์ „๋‹ฌ๋œ ๊ฐ์ฒด์˜ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด, ํ˜ธ์ถœ์ž์˜ ๊ฐ์ฒด๋„ ๋ณ€๊ฒฝ๋œ๋‹ค.
  • ๋ณ€์ˆ˜
    • ๋ฉค๋ฒ„ ๋ณ€์ˆ˜(ํ•„๋“œ) : ํด๋ž˜์Šค์— ์„ ์–ธ, ์ž๋™ ์ดˆ๊ธฐํ™”
    • ์ง€์—ญ ๋ณ€์ˆ˜ : ๋ฉ”์„œ๋“œ์— ์„ ์–ธ, ๋งค๊ฐœ๋ณ€์ˆ˜๋„ ์ง€์—ญ ๋ณ€์ˆ˜์˜ ํ•œ ์ข…๋ฅ˜์ด๋‹ค. ์ˆ˜๋™ ์ดˆ๊ธฐํ™”
  • null
    • ์ฐธ์กฐํ˜• ๋ณ€์ˆ˜์—์„œ ์•„์ง ๊ฐ€๋ฆฌํ‚ค๋Š” ๋Œ€์ƒ์ด ์—†๋‹ค๋ฉด null์ด๋ผ๋Š” ํŠน๋ณ„ํ•œ ๊ฐ’์„ ๋„ฃ์–ด๋‘˜ ์ˆ˜ ์žˆ๋‹ค. 
      null์€ ๊ฐ’์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š”, ์—†๋‹ค๋Š” ๋œป์ด๋‹ค.
  • NullPointerException
    • NullpointerException์ด๋ผ๋Š” ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š”๋ฐ, ๊ฐœ๋ฐœ์ž๋ฅผ ๊ฐ€์žฅ ๋งŽ์ด ๊ดด๋กญํžˆ๋Š” ์˜ˆ์™ธ์ด๋‹ค.
    • NullPointerException์€ ์ด๋ฆ„ ๊ทธ๋Œ€๋กœnull์„ ๊ฐ€๋ฆฌํ‚ค๋‹ค(Pointer)์ธ๋ฐ, ์ด๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์˜ˆ์™ธ(Exception)๋‹ค.
    • null์€ ์—†๋‹ค๋Š” ๋œป์ด๋ฏ€๋กœ๊ฒฐ๊ตญ ์ฃผ์†Œ๊ฐ€ ์—†๋Š” ๊ณณ์„ ์ฐพ์•„๊ฐˆ ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์˜ˆ์™ธ์ด๋‹ค.

 

๋‚ด์ผ ๊ณ„ํš โฐ

์˜ค์ „

  • ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ(Java) 1๋ฌธ์ œ ํ’€์ด & ๋ธ”๋กœ๊ทธ ์ž‘์„ฑ
  • ํ‚ค์˜ค์Šคํฌ ๊ณผ์ œ_Lv5๊นŒ์ง€ ํ•ด๊ฒฐ

์˜คํ›„

  • Java ๊ธฐ๋ณธํŽธ ๊ฐ•์˜ - ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ, ์ƒ์„ฑ์ž
  • TIL ๋ธ”๋กœ๊ทธ ์ž‘์„ฑ