λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
728x90
λ°˜μ‘ν˜•

전체 κΈ€135

[JAVA] ReentrantLock μ΄λž€? λ“€μ–΄κ°€κΈ° μ•žμ„œ, 동기화λ₯Ό μœ„ν•˜μ—¬ synchronized ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•˜λ‹€ λ³΄λ‹ˆ, ν•΄λ‹Ή ν‚€μ›Œλ“œ 말고 λ‹€λ₯Έ 것듀은 무엇이 μžˆμ„κΉŒ μ°Ύμ•„λ³΄κ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‹€κ°€ λ°œκ²¬ν•œ 것이 ReentrantLockμž…λ‹ˆλ‹€. ν•΄λ‹Ή κΈ€μ—μ„œλŠ” μ•„λž˜ 3κ°€μ§€ 질문으둜 ꡬ뢄 μ§€μ–΄ μž‘μ„±ν•΄ 보도둝 ν•˜κ² μŠ΅λ‹ˆλ‹€. ReentrantLock μ΄λž€? ReentrantLock μ‚¬μš©ν•˜λŠ” 방법 및 μ˜ˆμ‹œ ReentrantLock VS synchronized 의 차이점은 무엇이 μžˆλ‚˜μš”? 1. ReentrantLock μ΄λž€? JAVA μ—μ„œ λ™μ‹œμ— μ—¬λŸ¬ 개의 μŠ€λ ˆλ“œκ°€ μ ‘κ·Όν•˜λŠ” 것을 μ œμ–΄ν•˜κΈ° μœ„ν•œ 동기화 λ©”μ»€λ‹ˆμ¦˜ 쀑 ν•˜λ‚˜μž…λ‹ˆλ‹€. μˆ˜λ™μœΌλ‘œ 잠금 μ˜μ—­(Lock) 의 μ‹œμž‘μ κ³Ό 끝점을 μ„€μ •ν•  수 μžˆλŠ” κ°μ²΄μž…λ‹ˆλ‹€. 즉, μœ μ—°ν•œ 동기화λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€. 2. ReentrantL.. 2023. 11. 1.
[DB] Random Access (랜덀 μ•‘μ„ΈμŠ€) λž€? λ“€μ–΄κ°€κΈ° 전에 업무 쀑에 μ„±λŠ₯ ν–₯상을 μœ„ν•˜μ—¬ 쿼리 νŠœλ‹μ— λŒ€ν•΄μ„œ κ³΅λΆ€ν•˜κ³  μžˆμ—ˆμŠ΅λ‹ˆλ‹€. "랜덀 μ•‘μ„ΈμŠ€"λΌλŠ” 단어λ₯Ό 맨 처음 봀을 λ•Œ, '접근을 μž„μ˜λ‘œ ν•  수 μžˆλ‹€'λΌλŠ” μš©μ–΄λ‘œ μƒκ°ν–ˆμŠ΅λ‹ˆλ‹€. λ‹Ήμ—°νžˆ 잘λͺ» μ•Œκ³  μžˆμ—ˆκΈ° λ•Œλ¬Έμ— κ³΅λΆ€ν•˜κ²Œ λ˜μ—ˆκ³ , μ‹€μ œ λ©΄μ ‘μ—μ„œλ„ 많이 질문이 λ“€μ–΄μ˜¨λ‹€κ³  ν•˜μ—¬μ„œ ν•΄λ‹Ή λ‚΄μš©μ„ κ°„λ‹¨ν•˜κ²Œ μ •λ¦¬ν•˜κ³ μž ν•©λ‹ˆλ‹€. Random Access(랜덀 μ•‘μ„ΈμŠ€) λž€? 랜덀 μ•‘μ„ΈμŠ€λž€ 데이터λ₯Ό μ €μž₯ν•˜λŠ” 블둝을 ν•œ λ²ˆμ— μ—¬λŸ¬ 개 μ•‘μ„ΈμŠ€ν•˜λŠ” 것이 μ•„λ‹ˆλΌ ν•œ λ²ˆμ— ν•˜λ‚˜μ˜ λΈ”λ‘λ§Œμ„ μ•‘μ„ΈμŠ€ ν•˜λŠ” λ°©μ‹μž…λ‹ˆλ‹€. ν•œ λ²ˆμ— μ—¬λŸ¬ 개의 블둝을 μ•‘μ„ΈμŠ€ ν•œλ‹€λ©΄(랜덀 μ•‘μ„ΈμŠ€μ™€ λ°˜λŒ€) 같은 μ–‘μ˜ 데이터에 λŒ€ν•΄ 적은 횟수의 λ””μŠ€ν¬ I/Oκ°€ λ°œμƒν•˜κΈ° λ•Œλ¬Έμ— μ„±λŠ₯이 ν–₯상될 수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λ ‡κ²Œλ§Œ λ‚΄μš©μ„ 봀을 λ•ŒλŠ” 랜덀 μ•‘μ„ΈμŠ€ μžμ²΄κ°€ μ–Έμ œ.. 2023. 10. 14.
[JAVA] JAVA 11 μ—μ„œ JAVA 17 으둜 λ“€μ–΄κ°€κΈ° μ•žμ„œ ' μžλ°” μ΅œμ‹  버전이 무쑰건 μ’‹μ•„? 'λΌλŠ” μ§ˆλ¬Έμ— ν•„μžλŠ” '응'이라고 λŒ€λ‹΅ν•˜κΈ°λŠ” μ–΄λ €μšΈ 것 κ°™μŠ΅λ‹ˆλ‹€. λ¬Όλ‘  κΈ°λŠ₯이 μΆ”κ°€λ˜κ³  νŽΈμ˜μ„±μ„ μœ„ν•΄ μ—¬λŸ¬ κ°€μ§€λ₯Ό μ œκ³΅ν•΄ μ£ΌλŠ” 것은 λΆ€μ •ν•  수 μ—†κ³  λ„ˆλ¬΄λ‚˜λ„ κ°μ‚¬ν•œ μΌμž…λ‹ˆλ‹€. μ‹€λ¬΄μ—μ„œ μžλ°” 버전에 λŒ€ν•΄ λΌμ΄λΈŒλŸ¬λ¦¬λ‚˜ ν”ŒλŸ¬κ·ΈμΈ ν˜Έν™˜μ„±μ„ κ³ λ €ν•˜μ§€ μ•Šκ³  λ§ˆμŒλŒ€λ‘œ μ˜¬λ €λ²„λ¦¬λ©΄, λΉ¨κ°„ μ€„μ˜ μ§€μ˜₯을 λ§›λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€. 아직도 μ‹€λ¬΄μ—μ„œλŠ” μžλ°” 8 버전을 μ‚¬μš©ν•˜λŠ” 곳이 많고, μš΄μ˜ν•˜μ‹œλŠ” μ‹œλ‹ˆμ–΄λΆ„λ“€μ˜ 마음과 μ•ˆμ „μ„ κ³ λ €ν•˜μ˜€μ„ λ•Œ μžλ°”μ˜ μ—…κ·Έλ ˆμ΄λ“œμ™€ λ§ˆμ΄κ·Έλ ˆμ΄μ…˜μ„ μ‹œλ„ν•˜κΈ°μ—λŠ” μ–΄λ €μš΄ μƒν™©μž…λ‹ˆλ‹€. κ·ΈλŸΌμ—λ„ ν•„μžλŠ” μ΄λ²ˆμ—λŠ” μžλ°” 17에 λŒ€ν•΄μ„œ μ•Œμ•„λ³΄κ³  μ‚¬μ΄λ“œ ν”„λ‘œμ νŠΈλ₯Ό μžλ°” 17 둜 μ§„ν–‰ν•  μ˜ˆμ •μž…λ‹ˆλ‹€. μžλ°” 17 은 μ—¬λŸ¬ κ°€μ§€ 의미둜 μ€‘μš”ν•©λ‹ˆλ‹€. 'μžλ°”' ν•˜λ©΄ λ– μ˜¬λ¦¬λŠ” ν”„λ ˆμž„μ›Œν¬.. 2023. 10. 4.
[JAVA] JAVA8 κ³Ό JAVA11 의 차이점을 μ•Œμ•„λ³΄μž. λ“€μ–΄κ°€κΈ° μ•žμ„œ JAVA λ₯Ό λ²„μ „λ³„λ‘œ 차이점듀을 μž‘μ„±ν•˜κ³  μžˆμ§€λ§Œ, μ •ν™•ν•˜κ²ŒλŠ” μΆ”κ°€λœ κΈ°λŠ₯μ΄λ‚˜ νŠΉμ§•λ“€μ„ μ„€λͺ…ν•˜λŠ” κΈ€μž…λ‹ˆλ‹€. μ‹€λ¬΄μ—μ„œ SpringBoot λ₯Ό μ‚¬μš©ν•˜μ‹œκ±°λ‚˜, μƒˆλ‘œμš΄ SpringBoot 버전이 λ‚˜μ™€ λ¦΄λ¦¬μ¦ˆλ…ΈνŠΈλ₯Ό ν™•μΈν•˜μ‹œκ²Œ λœλ‹€λ©΄ ꢌμž₯ μžλ°” 버전이 μžˆλŠ” 것을 ν™•μΈν•˜μ‹€ 수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, SpringBoot 3.x 이상 λΆ€ν„°λŠ” μžλ°” 17 버전 이상을 μ§€μ›ν•©λ‹ˆλ‹€. μ‹ κ·œ 버전은 μ•žμœΌλ‘œλ„ 계속 λ‚˜μ˜¬ 것이고 λ³€ν™”ν•˜λŠ” 세상에 λ§žμΆ°κ°€λ©° κ³΅λΆ€ν•˜λŠ” 것이 개발자의 μˆ™λͺ…μ΄μž λ¬˜λ―Έκ°€ μ•„λ‹κΉŒ μ‹ΆμŠ΅λ‹ˆλ‹€. 비둝 μ§€κΈˆμ€ JAVA 11 버전에 λŒ€ν•΄μ„œ μž‘μ„±ν•˜κ³  μžˆμ§€λ§Œ μ‘°λ§Œκ°„ JAVA 17 λ²„μ „μœΌλ‘œ 찾아롙도둝 ν•˜κ² μŠ΅λ‹ˆλ‹€. LTS(Long-Term Support) λž€? μžλ°”μ˜ LTS(Long-Term Support) 버전은 μž₯.. 2023. 9. 23.
[JAVA] ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ° λ“€μ–΄κ°€κΈ° μ•žμ„œ JAVA 8 버전뢀터 ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°μ„ μ§€μ›ν•˜κΈ° μœ„ν•΄μ„œ λžŒλ‹€ (lambda) 와 슀트림(stream) 이 λ˜μ—ˆμŠ΅λ‹ˆλ‹€. λžŒλ‹€μ™€ μŠ€νŠΈλ¦Όμ„ μ‚¬μš©ν•˜μ—¬ ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ° μŠ€νƒ€μΌλ‘œ μžλ°” μ½”λ“œλ₯Ό μž‘μ„±ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λžŒλ‹€μ™€ 슀트림 없이도 μžλ°” μ½”λ“œλ₯Ό μž‘μ„±ν•˜λŠ” λ°μ—λŠ” 어렀움이 μ—†μ§€λ§Œ, λžŒλ‹€μ™€ μŠ€νŠΈλ¦Όμ„ μ‚¬μš©ν•˜λŠ” κ°€μž₯ 큰 μ΄μœ λŠ” μž‘μ„±ν•˜λŠ” μ½”λ“œμ˜ 양을 쀄일 수 있고, 읽기 μ‰¬μš΄ μ½”λ“œλ₯Ό λ§Œλ“€ 수 있기 λ•Œλ¬Έμ΄λ‹€. ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ° μ΄λž€? ν”„λ‘œκ·Έλž˜λ° νŒ¨ν„°λ‹€μž„ 쀑 ν•˜λ‚˜λ‘œ, 자료 처리λ₯Ό μˆ˜ν•™μ  ν•¨μˆ˜μ˜ κ³„μ‚°μœΌλ‘œ λ‹€λ£¨λŠ” 방식을 μ˜λ―Έν•©λ‹ˆλ‹€. μ΄λŸ¬ν•œ ν”„λ‘œκ·Έλž˜λ° μŠ€νƒ€μΌμ€ μƒνƒœμ™€ κ°€λ³€ 데이터λ₯Ό μ΅œμ†Œν™”ν•˜κ³  λŒ€μ‹  ν•¨μˆ˜μ˜ μ‘μš©μ„ κ°•μ‘°ν•©λ‹ˆλ‹€. ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°μ€ λ°μ΄ν„°μ˜ λΆˆλ³€μ„±(immutable)을 μœ μ§€ν•˜λ©°, 결과에 관심을 두며 κ³Όμ •.. 2023. 9. 22.
[JAVA] μ ‘κ·Ό μ œμ–΄μž (Access Modifier) 에 λŒ€ν•˜μ—¬ μ ‘κ·Ό μ œμ–΄μž(Access Modifier) μ΄λž€? μ ‘κ·Ό μ œμ–΄μž(Access Modifier)λŠ” ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μ—μ„œ 클래슀, λ©”μ„œλ“œ, λ³€μˆ˜ λ“±μ˜ 멀버에 λŒ€ν•œ μ ‘κ·Ό κΆŒν•œμ„ μ œμ–΄ν•˜λŠ” ν‚€μ›Œλ“œμž…λ‹ˆλ‹€. 이것은 μ½”λ“œμ˜ κ°€μ‹œμ„±κ³Ό λ³΄μ•ˆμ„ κ΄€λ¦¬ν•˜λ©°, λ‹€λ₯Έ λΆ€λΆ„μ—μ„œμ˜ 접근을 μ œν•œν•©λ‹ˆλ‹€. 주둜 Java와 같은 객체 μ§€ν–₯ ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μ—μ„œ μ‚¬μš©λ©λ‹ˆλ‹€. λ‹€μ–‘ν•œ μ ‘κ·Ό μ œμ–΄μžκ°€ 있으며, 일반적으둜 μ‚¬μš©λ˜λŠ” μ ‘κ·Ό μ œμ–΄μžλ₯Ό 순차적으둜 μ„€λͺ…λ“œλ¦¬λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€. Public μ–΄λ””μ„œλ“  μ ‘κ·Ό κ°€λŠ₯ν•œ κ°€μž₯ 개방적인 μ ‘κ·Ό μ œμ–΄μžμž…λ‹ˆλ‹€. public μ ‘κ·Ό μ œμ–΄μžκ°€ 뢙은 λ³€μˆ˜λ‚˜ λ©”μ„œλ“œλŠ” μ–΄λ–€ ν΄λž˜μŠ€μ—μ„œλ„ 접근이 κ°€λŠ₯ν•©λ‹ˆλ‹€. PublicSeo.java package seo; public class PublicSeo { protected String .. 2023. 9. 16.
728x90
λ°˜μ‘ν˜•