λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
Thinks/TIL

TIL-220223

by μ„œμ½”μ½” 2022. 11. 18.

πŸ‘¨‍πŸ’» ν•™μŠ΅ κ³Όμ •

둜또 λ―Έμ…˜ 3일차

2λ‹¨κ³„κΉŒμ§€ μ§„ν–‰ν•˜λ©΄μ„œ κ³„μ†ν•΄μ„œ λŠλ‚€κ±΄ “μ½”λ“œκ°€ ν•œλˆˆμ— μ•ˆλ“€μ–΄μ˜¨λ‹€”μ˜€λ‹€.
둜또 μ„œλΉ„μŠ€ ν΄λž˜μŠ€μ— κΈ°λŠ₯을 μΆ”κ°€ν•˜κ±°λ‚˜ μ½”λ“œλ₯Ό μˆ˜μ •ν• λ•Œλ§ˆλ‹€ ν΄λž˜μŠ€λ‚΄μ— μžˆλŠ” λ©”μ„œλ“œλ“€μ„ λ‹€μ‹œν•œλ²ˆ 읽어봐야 μ–΄λ–€ κΈ°λŠ₯을 가진 λ©”μ„œλ“œμΈμ§€, μ–΄λ–€ νλ¦„μœΌλ‘œ λ™μž‘ν•˜λŠ”μ§€ 생각이 났닀. 이 말은 곧 ν•˜λ‚˜μ˜ μ„œλΉ„μŠ€μ— λ„ˆλ¬΄ λ§Žμ€ κΈ°λŠ₯듀이 λͺ°λ €μžˆμœΌλ©°, λ©”μ„œλ“œλͺ…이 μ˜λ„λ₯Ό λͺ…ν™•ν•˜κ²Œ λ“œλŸ¬λ‚΄μ§€ λͺ»ν•œλ‹€λŠ” μ˜λ―Έμ˜€λ‹€. μ΄λŒ€λ‘œ 계속 κ΅¬ν˜„μ„ μ§„ν–‰ν•΄λ‚˜κ°€λŠ”κ±΄ μ„±μž₯에 도움이 μ•ˆλ κ²ƒκ°™λ‹€λŠ” 생각에 ν•„μ—κ²Œ λ‹€μ΄μ–΄κ·Έλž¨κ³Ό μ•± λ™μž‘ 흐름을 μ²˜μŒλΆ€ν„° μž‘μ„±ν•΄λ³΄λŠ”κ±΄ 어떀지 λ¬Όμ–΄λ΄€κ³ , 필도 λ™μΌν•œ κ²½ν—˜μ„ ν•΄μ„œ ν”μΎŒνžˆ μˆ˜λ½ν•΄μ€¬λ‹€.

 

κ·Έλž˜μ„œ μ˜€ν›„ μ‹œκ°„λ™μ•ˆ μ•±μ˜ λ™μž‘ 흐름을 μž‘μ„±ν•˜λ©΄μ„œ ν•„μš”ν•œ 객체와 λ©”μ„œλ“œλ“€μ„ μ •ν•΄λ³΄μ•˜κ³ , μžμ—°μŠ€λŸ½κ²Œ 그에 λ”°λ₯Έ μƒνƒœκ°’λ“€λ„ μ •ν•΄μ‘Œλ‹€. λ™μ‹œμ— 흐름을 μ λ‹€λ³΄λ‹ˆ μ–΄λ–€ μ˜ˆμ™Έμ²˜λ¦¬κ°€ ν•„μš”ν•œμ§€λ„ ν•¨κ»˜ κ²°μ •ν•  수 μžˆμ—ˆλ‹€.

 

항상 ν˜Όμžμ„œ 앱을 μ„€κ³„ν•΄μ˜€λ©΄μ„œ 이게 λ§žλŠ”κ±ΈκΉŒλΌλŠ” 생각에 μ‰½κ²Œ 진도가 μ•ˆλ‚˜κ°”λŠ”λ° μ΄λ²ˆμ—λŠ” ν•¨κ»˜ κ³ λ―Όν•  μ‚¬λžŒμ΄ μžˆμ–΄μ„œ 도움이 많이 됐닀.

ν˜„μž¬κΉŒμ§€λŠ” 이전에 μ½μ—ˆλ˜ 객체지ν–₯의 사싀과 μ˜€ν•΄ 4μž₯μ—μ„œ λ‚˜μ˜¨ μ˜ˆμ‹œμ˜ μˆœμ„œλŒ€λ‘œ 그림을 κ·Έλ €κ°€λ©΄μ„œ 섀계λ₯Ό ν•˜λŠ”λ° 아직 μ‹€λ ₯이 λΆ€μ‘±ν•΄μ„œ κ²¬κ³ ν•˜κ²Œ 섀계가 μ•ˆλ˜λŠ”κ²ƒ κ°™λ‹€. ν˜„μ—…μ— μΌν•˜μ‹œλŠ” 뢄듀이 μ„€κ³„ν•˜λŠ” 과정이 λ„ˆλ¬΄ κΆκΈˆν•˜λ‹€..

1. μ•±μ˜ λ™μž‘ 흐름(μš”μ²­κ³Ό 응닡)을 μž‘μ„±ν•œλ‹€.
2. 흐름을 ν† λŒ€λ‘œ 각 객체의 μ±…μž„, λ©”μ„œλ“œλ₯Ό μ •ν•œλ‹€.
3. ν•„μš”ν•œ μƒνƒœλ₯Ό μ •ν•œλ‹€.
4. κ΅¬ν˜„ν•œλ‹€.

 

Java의 main λ©”μ„œλ“œ λ™μž‘ κ³Όμ •

μŠ€ν”„λ§ μž…λ¬Έμ„ μœ„ν•œ μžλ°” 객체지ν–₯의 원리와 이해 2μž₯ λ‚΄μš©μ˜ 일뢀닀

  1. JREκ°€ μ•± μ•ˆμ— main λ©”μ„œλ“œκ°€ μ‘΄μž¬ν•˜λŠ”μ§€ ν™•μΈν•œλ‹€.
  2. main λ©”μ„œλ“œκ°€ 발견되면 JVM을 μ‹€ν–‰ν•œλ‹€.
  3. JVM은 λ°”μ΄νŠΈμ½”λ“œλ₯Ό λ°›μ•„μ„œ μ‹€ν–‰ν•˜λŠ”λ° μ΄λ•Œ μ „μ²˜λ¦¬ 과정을 κ±°μΉœλ‹€.
  • java.lang νŒ¨ν‚€μ§€κ°€ λ©”λͺ¨λ¦¬μ˜ static μ˜μ—­μ— μ˜¬λΌκ°„λ‹€.
  • κ°œλ°œμžκ°€ μž‘μ„±ν•œ ν΄λž˜μŠ€μ™€ import 된 νŒ¨ν‚€μ§€λ“€μ΄ static μ˜μ—­μ— μ˜¬λΌκ°„λ‹€.
  1. main λ©”μ„œλ“œμ˜ μŠ€νƒ ν”„λ ˆμž„μ΄ λ©”λͺ¨λ¦¬μ˜ stackμ˜μ—­μ— μ˜¬λΌκ°„λ‹€.
  • 클래슀λ₯Ό μ œμ™Έν•œ λͺ¨λ“  μ—¬λŠ” μ€‘κ΄„ν˜Έμ— λŒ€ν•΄μ„œ μŠ€νƒ ν”„λ ˆμž„μ΄ 생긴닀.
    즉, if문도 ν”„λ ˆμž„μ΄ μƒκΈ°λŠ”κ²ƒ.(이런 뢄기문은 mainλ©”μ„œλ“œ μŠ€νƒ ν”„λ ˆμž„ 내뢀에 μŠ€νƒν”„λ ˆμž„μ΄ 생긴닀.)
  1. args λ³€μˆ˜μ˜ 곡간을 μŠ€νƒ ν”„λ ˆμž„ 내뢀에 ν™•λ³΄ν•œλ‹€.
  2. main λ©”μ„œλ“œ λ‚΄λΆ€μ˜ μ½”λ“œλ₯Ό μ‹€ν–‰ν•œλ‹€.
  3. main λ©”μ„œλ“œκ°€ μ’…λ£Œλ˜λ©΄ JVM이 μ’…λ£Œλ˜κ³  JRE λ˜ν•œ μ’…λ£Œλœλ‹€.
  • μŠ€νƒ μ˜μ—­μ˜ μ§€μ—­λ³€μˆ˜λŠ” λ””ν΄νŠΈ κ°’μœΌλ‘œ μ΄ˆκΈ°ν™”κ°€ λ˜μ§€ μ•ŠλŠ”λ‹€. ( 이전에 ν•΄λ‹Ή λ©”λͺ¨λ¦¬ 곡간을 μ‚¬μš©ν–ˆλ˜ μ“°λ ˆκΈ° 값이 μžˆμ„μˆ˜λ„ μžˆλ‹€.)
  • λ°˜λ©΄μ— 클래슀 속성, 객체 속성은 λ””ν΄νŠΈ κ°’μœΌλ‘œ μ΄ˆκΈ°ν™”λ₯Ό ν•΄μ£ΌλŠ”λ° μ΄μœ λŠ” 곡유 λ³€μˆ˜μ˜ 성격을 가지기 λ•Œλ¬Έμ΄λ‹€.

 

😊 μ’‹μ•˜λ˜μ 

  • μ‰¬λŠ” μ‹œκ°„κ³Ό ν•™μŠ΅ μ‹œκ°„μ˜ κ· ν˜•μ„ 잘 κ°€μ Έκ°”λ‹€.
  • μ˜€μ „μ— 30뢄정도 ν•„κ³Ό μž‘λ‹΄ν•˜λŠ” μ‹œκ°„μ„ κ°€μ‘Œλ‹€. 1주일 λ‚΄λ‚΄ λ―Έμ…˜μ— κ΄€λ ¨λœ μ΄μ•ΌκΈ°λ§Œ λ‚˜λˆ„κ³  λλ‚˜μ§€ μ•Šμ•˜μœΌλ©΄ ν–ˆλŠ”λ° μž‘λ‹΄ν•  κΈ°νšŒκ°€ μƒκ²¨μ„œ μ’‹μ•˜λ‹€.

 

πŸ’ͺ🏻 κ°œμ„ μ 

  • μ•Œκ³ λ¦¬μ¦˜ 문제의 μ§€λ¬Έλ§Œ 보고 λ³΅μž‘ν•΄λ³΄μ—¬μ„œ κ·Έλƒ₯ ν¬κΈ°ν–ˆμ—ˆλ‹€. κ·ΈλŸ¬λ‹€κ°€ μŠ€ν„°λ”” 1μ‹œκ°„μ „μ— 문제λ₯Ό λ‹€μ‹œ μ½μ–΄λ΄€λ”λ‹ˆ 생각보닀 μ‰¬μš΄ λ¬Έμ œμ˜€λ‹€..γ…Ž
    • 지문 κΈΈλ‹€κ³  쫄지 말자. (ν•˜μ§€λ§Œ 카카였 λ¬Έμ œλŠ” 지문이 λ„ˆλ¬΄ κΈΈκ³  그림이 λ„ˆλ¬΄ λ§Žλ‹€;)

'Thinks > TIL' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

TIL-220225  (0) 2022.11.18
TIL-220224  (0) 2022.11.18
TIL-220222  (0) 2022.11.18
TIL-220221  (0) 2022.11.18
TIL-220216  (0) 2022.11.18