WIL

[WIL] (230618_ 3μ£Όμ°¨) JVMκ³Ό 객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ΄ 무엇인지 μ•Œμ•„λ³΄μ•˜λ‹€.

xlxlxl7 2023. 6. 18. 21:08
728x90

πŸ”Ή  배운 λ‚΄μš© 정리

μ΄λ²ˆμ£Όμ—λŠ” μžλ°” 가상머신(JVM)κ³Ό 객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ΄ 무엇인지 λ°°μš°λŠ”κ²ƒμ— λŒ€ν•΄ μ§‘μ€‘ν–ˆλ‹€.

 

λ‚΄κ°€ 배우고 μ΄ν•΄ν•œ λŒ€λ‘œ μ •λ¦¬ν•˜μžλ©΄

1. JVM λž€

- 클래슀 λ‘œλ”(Class Loader)

- μ‹€ν–‰ μ—”μ§„(Execution Engine)

- λŸ°νƒ€μž„ 데이터 μ˜μ—­(Runtime Data Area)

등을 μ‚¬μš©ν•˜μ—¬ λ‹€μ–‘ν•œ μš΄μ˜μ²΄μ œμ—μ„œ μž‘λ™λ  수 μžˆλ„λ‘ ν•΄μ£ΌλŠ” 가상 머신이닀.

 

일반 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ μ½”λ“œλŠ” OS와 λ°”λ‘œ λ§žλΆ™μ–΄ μžˆμ–΄μ„œ OS에 μ’…μ†μ μ΄λ‚˜, Java의 경우 JVM을 κ±°μΉ˜λ©΄μ„œ μ—¬λŸ¬ OSμ—μ„œ μ‹€ν–‰ κ°€λŠ₯ν•œκ²Œ μž₯μ μ΄μ—ˆλ‹€!

 

 

 

"μžλ°”μ˜ 정석"μ—μ„œ μ•Œλ €μ€€ JVM의 λ©”λͺ¨λ¦¬ ꡬ쑰인데 μ½”λ“œλ₯Ό μ‹€ν–‰ν•˜λ©΄ 어디에 μ–΄λ–€ μž‘μ—…μ΄ μŒ“μ΄κ²Œ λ˜λŠ”μ§€ 직접 κ·Έλ €κ°€λ©° 확인을 ν•˜λ‹ˆκΉŒ 훨씬 이해가 μ‰¬μ›Œμ„œ μ’‹μ•˜λ‹€.

 


2. 객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°

μ½”λ“œκ°„μ— 관계λ₯Ό μ„€μ •ν•˜λ©΄μ„œ ν”„λ‘œκ·Έλž¨μ„ κ΅¬μ„±ν•˜λŠ” κ²ƒμœΌλ‘œ μ΄λ ‡κ²Œ λ§Œλ“€λ©΄ 1)μ½”λ“œμ˜ μž¬μ‚¬μš©μ„±μ΄ λ†’κ³  2) μ½”λ“œμ™€ 관리가 νŽΈν•˜λ‹€λŠ” μž₯점이 μžˆλ‹€.

 

이 λΆ€λΆ„μ—μ„œ λ‚΄κ°€ μƒκ°ν•˜λŠ” 각 μš©μ–΄λ³„ μ •λ¦¬λŠ” μ•„λž˜μ™€ κ°™λ‹€.

- 클래슀: 객체λ₯Ό μƒμ„±ν•˜κΈ° μœ„ν•΄ μ‚¬μš©ν•˜λŠ” 섀계도
- μΈμŠ€ν„΄μŠ€ν™”: ν΄λž˜μŠ€λ‘œλΆ€ν„° 객체λ₯Ό λ§Œλ“œλŠ” 과정을 말함
- 멀버: λ³€μˆ˜(속성)+λ©”μ„œλ“œ(κΈ°λŠ₯)
- 클래슀 멀버: μΈμŠ€ν„΄μŠ€ν™” 없이 μ‚¬μš© κ°€λŠ₯함, μžλ°”μ˜ 클래슀 λ‘œλ”μ— μ €μž₯되고
ν†΅μƒμ μœΌλ‘œ μ‚¬μš©μ€ "ν΄λž˜μŠ€μ΄λ¦„.ν΄λž˜μŠ€λ³€μˆ˜" 둜 μ§„ν–‰ν•œλ‹€.
-  μ˜€λ²„λ‘œλ”©: λ©”μ„œλ“œμ˜ 이름이 κ°™κ³  λ§€κ°œλ³€μˆ˜μ˜ κ°œμˆ˜λ‚˜ νƒ€μž…μ€ λ‹€λ₯΄κ²Œ μ •μ˜ν•˜λŠ”κ²ƒ
- μ˜€λ²„λΌμ΄λ”©: 쑰상 클래슀둜 λΆ€ν„° 받은 λ©”μ„œλ“œλ₯Ό μžμ† ν΄λž˜μŠ€μ—μ„œ λ³€κ²½ν•΄μ„œ μ‚¬μš©ν•˜λŠ”κ²ƒ
- this: λ‚˜ μžμ‹ μ„ 가리킨닀.
- super:λΆ€λͺ¨λ₯Ό 가리킨닀.
- λ‹€ν˜•μ„±: 쑰상 클라슀의 μ°Έμ‘°λ³€μˆ˜λ‘œ μžμ‹ 클래슀의 객체λ₯Ό μ°Έμ‘°ν•  수 있게 λ§Œλ“ κ²ƒ!

 

πŸ”Ή TIL의 회고

git 을 μ‚¬μš©ν•  λ•Œ 쀄 끝 ν‘œμ‹œλ°©μ‹(ex. CRLF)의 섀정여뢀에 따라 κ²½κ³ λ©”μ„Έμ§€κ°€ 뜰 수 μžˆλ‹€.

μ½”λ“œλ₯Ό ꡬ상할 λ•Œ λ‚΄κ°€ μ‚¬μš©ν•œ μžλ£Œν˜•μ΄ λ³€μˆ˜μ— μ €μž₯κ°€λŠ₯ν•œ κ°’μ˜ λ²”μœ„λ₯Ό λ²—μ–΄λ‚˜μ§„ μ•ŠλŠ”μ§€ λ°˜λ“œμ‹œ 확인해야 ν•œλ‹€.

 

πŸ”Ή 이번주 λͺ©ν‘œ 달성 μ—¬λΆ€

<슀파λ₯΄νƒ€ μ½”λ”©ν΄λŸ½> 

- μžλ°” 문법 κ°•μ˜ 1~3μ£Όμ°¨ ν•™μŠ΅  

- JAVAλž€ 무엇인지

- 쑰건문, 반볡문의 μ •μ˜

- 객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ΄ 무엇인지

: κ°•μ˜ μˆ˜κ°• 및 μ •λ¦¬μ™„λ£Œ

 

 

<μžλ°”μ˜ 정석>

- 06~07. 객체지ν–₯ ν”„λ‘œκ·Έλž˜λ° μ •μ˜ 및 κ΄€λ ¨μ˜ˆμ œ 풀이

: μ •μ˜ 밎 예제 ν™•μΈμ™„λ£Œ, 챕터별 κΈ°λ³Έλ¬Έμ œκ°€ 더 μžˆμ–΄μ„œ λ‹€μŒμ£Όμ— ν’€μ–΄λ³Ό μ˜ˆμ •

 

<μ½”λ”©ν…ŒμŠ€νŠΈ>

ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ 쑰건문, 반볡문 κ΄€λ ¨ 문제 28개

:  λΆ€λΆ„ ν’€μ΄μ™„λ£Œ (19/28)

 

 

 

πŸ”Ή λ‹€μŒ μ£Ό λͺ©ν‘œ μ„Έμš°κΈ°

1. <μžλ°”μ˜ 정석>

- μ•„λž˜ 챕터듀 μ™„κ°• 밎 문제 ν’€κΈ°

06,07: 기본문제 μ „λΆ€ 풀어보기
08. μ˜ˆμ™Έμ²˜λ¦¬(Exception Handling) κ°œλ…ν™•μΈ
09. java.langνŒ¨ν‚€μ§€μ™€ μœ μš©ν•œ 클래슀 κ°œλ…ν™•μΈ
10.λ‚ μ§œμ™€ μ‹œκ°„ & ν˜•μ‹ν™” κ°œλ…ν™•μΈ
11. μ»¬λ ‰μ…˜ ν”„λ ˆμž„μ›Œν¬ κ°œλ…ν™•μΈ

2. ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ μ½”λ”©ν…ŒμŠ€νŠΈ 기본문제 8개+ μ‹¬ν™”λ¬Έμ œ 5개 풀어보기

 

 

λ‹€μŒμ£ΌλŠ” 좔가적인 기초λ₯Ό λ‹€μ§€κ³  λ¬Έμ œν’€μ΄μ— 집쀑할 생각이닀.

 

728x90