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

Java260

[Java, λ””μžμΈ νŒ¨ν„΄] - μ‹±κΈ€ν„΄ νŒ¨ν„΄(Singleton Pattern) πŸ“Ž κΈ€λ˜ 6κΈ° ν¬μŠ€νŒ… 1. λ―ΈμΉ˜λ„λ‘ λ”μ› λ˜ 7μ›”μ˜ 회고 2. μ‚¬μš©μžκ°€ κ²Œμ‹œλ¬Όμ„ μž‘μ„±ν•  λ•Œμ˜ νŠΈλžœμž­μ…˜ 처리 3. Spring AOP - (1) ν”„λ‘μ‹œ νŒ¨ν„΄, λ°μ½”λ ˆμ΄ν„° νŒ¨ν„΄ 4. [MySQL] - νŠΈλžœμž­μ…˜μ˜ 격리 μˆ˜μ€€(Isolation level) 5. Spring AOP - (2) AOP κ°œλ… 및 μ‹€μŠ΅ 6. μΈν…”λ¦¬μ œμ΄(IntelliJ) - 디버깅(Debugging) ν•˜κΈ° 7. [Java, λ””μžμΈνŒ¨ν„΄] - μ‹±κΈ€ν„΄ νŒ¨ν„΄(Singleton Pattern) 8. μ›”κ°„ μ½”λ“œλ¦¬λ·° Ver_0.1: 컀리어 μ„±μž₯ CODE μ„Έλ―Έλ‚˜ 정리 9. 포슀트맨(API ν…ŒμŠ€νŠΈ) ν™œμš©ν•˜κΈ° 10. λœ»κΉŠμ€ 2021λ…„ 회고 πŸ“Ž λ””μžμΈ νŒ¨ν„΄ - μ‹±κΈ€ν„΄ νŒ¨ν„΄(Singleton Pattern) ν¬μŠ€νŒ…μ—μ„œ μž‘μ„±ν•œ 예제 μ½”λ“œλŠ” κΉƒν—ˆλΈŒμ—μ„œ ν™•μΈν•˜μ‹€ 수.. 2021. 10. 24.
μΈν…”λ¦¬μ œμ΄(IntelliJ) - VisualVM μ„€μΉ˜ 및 μ—°λ™ν•˜κΈ° πŸ“Ž μΈν…”λ¦¬μ œμ΄(IntelliJ) - VisualVM μ„€μΉ˜ 및 μ—°λ™ν•˜κΈ° μ•ˆλ…•ν•˜μ„Έμš”, μ΄λ²ˆμ— 정리할 ν¬μŠ€νŒ…μ€ μΈν…”λ¦¬μ œμ΄ IDEμ—μ„œ VisualVM을 μ„€μΉ˜ν•˜κ³  연동해보도둝 ν•˜κ² μŠ΅λ‹ˆλ‹€. VisualVM의 곡식 ν™ˆνŽ˜μ΄μ§€μ—μ„œλŠ” VisualVM을 λ‹€μŒκ³Ό 같이 μ„€λͺ…ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. VisualVM is a visual tool integrating commandline JDK tools and lightweight profiling capabilities. Designed for both development and production time use. -> VisualVM은 μ»€λ§¨λ“œλΌμΈ JDK 도ꡬ와 κ²½λŸ‰μ˜ ν”„λ‘œνŒŒμΌλ§ κΈ°λŠ₯을 ν†΅ν•©ν•˜λŠ” μ‹œκ°μ  λ„κ΅¬μž…λ‹ˆλ‹€. -> 개발 및 생산 μ‹œκ°„μ˜ μ‚¬μš©μ„ μœ„ν•΄ λ””μžμΈμ΄ λ˜μ—ˆμŠ΅λ‹ˆλ‹€ VIsu.. 2021. 9. 14.
Spring AOP - (1) ν”„λ‘μ‹œ νŒ¨ν„΄, λ°μ½”λ ˆμ΄ν„° νŒ¨ν„΄ πŸ“Ž κΈ€λ˜ 6κΈ° ν¬μŠ€νŒ… 1. λ―ΈμΉ˜λ„λ‘ λ”μ› λ˜ 7μ›”μ˜ 회고 2. μ‚¬μš©μžκ°€ κ²Œμ‹œλ¬Όμ„ μž‘μ„±ν•  λ•Œμ˜ νŠΈλžœμž­μ…˜ 처리 3. Spring AOP - (1) ν”„λ‘μ‹œ νŒ¨ν„΄, λ°μ½”λ ˆμ΄ν„° νŒ¨ν„΄ 4. [MySQL] - νŠΈλžœμž­μ…˜μ˜ 격리 μˆ˜μ€€(Isolation level) 5. Spring AOP - (2) AOP κ°œλ… 및 μ‹€μŠ΅ 6. μΈν…”λ¦¬μ œμ΄(IntelliJ) - 디버깅(Debugging) ν•˜κΈ° 7. [Java, λ””μžμΈνŒ¨ν„΄] - μ‹±κΈ€ν„΄ νŒ¨ν„΄(Singleton Pattern) 8. μ›”κ°„ μ½”λ“œλ¦¬λ·° Ver_0.1: 컀리어 μ„±μž₯ CODE μ„Έλ―Έλ‚˜ 정리 9. 포슀트맨(API ν…ŒμŠ€νŠΈ) ν™œμš©ν•˜κΈ° 10. λœ»κΉŠμ€ 2021λ…„ 회고 πŸ“Ž Spring AOP(Aspect Oriented Programming) ν¬μŠ€νŒ…μ— μž‘μ„±ν•œ 예제 μ½”λ“œλŠ” κΉƒν—ˆλΈŒμ—μ„œ 확인.. 2021. 8. 27.
[Java] - κΉŠμ€ 볡사(Deep Copy) vs 얕은 볡사(Shallow Copy) πŸ“Ž Java κΉŠμ€ 볡사(Deep Copy)와 얕은 볡사(Shallow Copy) μ•ˆλ…•ν•˜μ„Έμš”! μ΄λ²ˆμ— 정리할 λ‚΄μš©μ€ μžλ°”μ—μ„œμ˜ κΉŠμ€ 볡사와 얕은 볡사 μž…λ‹ˆλ‹€. κΉŠμ€ 볡사와 얕은 λ³΅μ‚¬λΌλŠ” κ°œλ…μ€ ν‰μ†Œμ— μ ‘ν•œμ μ΄ κ½€ μžˆμ—ˆμŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ 였늘 μ•Œκ³ λ¦¬μ¦˜ 문제λ₯Ό ν’€λ©΄μ„œ μ•„λ¬΄λŸ° μ˜μ‹¬μ—†μ΄(?) λ‹€μŒκ³Ό 같이 μ»¬λ ‰μ…˜ Listλ₯Ό 얕은 λ³΅μ‚¬ν•˜λŠ” μ½”λ“œλ₯Ό μž‘μ„±ν–ˆμ—ˆκ³ , 이에 따라 μ°Έμ‘°ν•˜κ³  μžˆλŠ” 두 λ¦¬μŠ€νŠΈκ°€ λͺ¨λ‘ 값이 λ³€κ²½λ˜μ–΄ μƒκ°ν–ˆλ˜ 아웃풋과 λ‹€λ₯΄κ²Œ λ‚˜μ™€μ„œ μ•½κ°„ 어리λ‘₯μ ˆν•œ μƒνƒœμ˜€μŠ΅λ‹ˆλ‹€. πŸ€” List list = new ArrayList(); ... List temp = list; // shallow copy ν•΄λ‹Ή λ¬Έμ œμ μ€ 디버깅을 톡해 νŒŒμ•…ν•  수 μžˆμ—ˆλŠ”λ°μš”, 기본적인 λ‚΄μš©μ΄μ§€λ§Œ ν™•μ‹€ν•˜κ²Œ μ •λ¦¬ν•˜κ³  λ„˜μ–΄κ°€λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€ πŸ˜ƒ κΉŠμ€ 볡사.. 2021. 7. 30.
[Java] - Project Lombok(둬볡) • μ•ˆλ…•ν•˜μ„Έμš”~ 이전에 μš΄μ˜ν•˜λ˜ λΈ”λ‘œκ·Έ 및 GitHub, 곡뢀 λ‚΄μš©μ„ μ •λ¦¬ν•˜λŠ” Study-GitHub κ°€ μžˆμŠ΅λ‹ˆλ‹€! • 넀이버 λΈ”λ‘œκ·Έ • GitHub • Study-GitHub • πŸ” πŸ“Ž Lombok(둬볡) μ•ˆλ…•ν•˜μ„Έμš”! μ΄λ²ˆμ— 정리할 λ‚΄μš©μ€ Project Lombok(둬볡) μž…λ‹ˆλ‹€. Lombok은 Java 라이브러리둜, μžλ°” 개발자라면 λŒ€λΆ€λΆ„ ν•œ λ²ˆμ―€μ€ μ‚¬μš©ν•΄λ³΄μ§€ μ•Šμ•˜μ„κΉŒ ν•˜λŠ” μ •~말 많이 μ‚¬μš©ν•˜λŠ” λΌμ΄λΈŒλŸ¬λ¦¬μž…λ‹ˆλ‹€. μ € λ˜ν•œ ν‰μ†Œμ— κ°œλ°œμ„ ν•  λ•Œ Lombok 라이브러리 μ—†μ΄λŠ” κ°œλ°œμ„ λͺ» ν•  μ •λ„λ‘œ(?) 많이 μ‚¬μš©μ„ ν•˜λŠ”λ°μš”.. γ…Žγ…Ž 이번 μ‹œκ°„μ—λŠ” Lombok μ΄λž€ 무엇인지, μ–΄λ–»κ²Œ μ‚¬μš©ν•˜λŠ”μ§€μ™€ μž₯단점에 λŒ€ν•΄ μ‚΄νŽ΄λ³΄κ² μŠ΅λ‹ˆλ‹€ :) κ°„λž΅ν•˜κ²Œ λͺ©μ°¨λ₯Ό λ‚˜νƒ€λ‚΄λ©΄ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€! Lombok μ΄λž€? Lombok μ„€.. 2021. 6. 20.
JUnit - @ParameterizedTest, @ValueSource, @CsvSource, @MethodSource μ–΄λ…Έν…Œμ΄μ…˜ • μ•ˆλ…•ν•˜μ„Έμš”~ 이전에 μš΄μ˜ν•˜λ˜ λΈ”λ‘œκ·Έ 및 GitHub, 곡뢀 λ‚΄μš©μ„ μ •λ¦¬ν•˜λŠ” Study-GitHub κ°€ μžˆμŠ΅λ‹ˆλ‹€! • 넀이버 λΈ”λ‘œκ·Έ • GitHub • Study-GitHub • πŸ” πŸ“Ž JUnit5 - @ParameterizedTest, @ValueSource, @CsvSource, @MethodSource μ•ˆλ…•ν•˜μ„Έμš”! 이번 μ‹œκ°„μ— 정리할 λ‚΄μš©μ€ JUnitμ—μ„œ νŒŒλΌλ―Έν„°μ˜ ν…ŒμŠ€νŠΈμ™€ κ΄€λ ¨λœ λ‹€μ–‘ν•œ ν…ŒμŠ€νŠΈ λ°©λ²•μž…λ‹ˆλ‹€. μ΄λ²ˆμ— λ„₯μŠ€νŠΈμŠ€ν…μ—μ„œ μ§„ν–‰ν•˜λŠ” μžλ°” ν”Œλ ˆμ΄κ·ΈλΌμš΄λ“œ 과정을 λ“€μœΌλ©΄μ„œ ν…ŒμŠ€νŠΈ μ½”λ“œλ₯Ό μž‘μ„±ν•˜κ³  μžˆλŠ”λ°μš”, 이와 κ΄€λ ¨ν•΄ νŒŒλΌλ―Έν„°μ˜ 쀑볡 값에 λŒ€ν•œ ν…ŒμŠ€νŠΈ μ½”λ“œλ₯Ό μ œκ±°ν•˜κ±°λ‚˜, μž…λ ₯ 값에 따라 κ²°κ³Ό 값이 λ‹€λ₯Έ κ²½μš°λ„ ν…ŒμŠ€νŠΈκ°€ κ°€λŠ₯ν•˜λ„λ‘ κ΅¬ν˜„ν•˜λŠ” κ³Όμ •μ—μ„œ μœ„μ˜ μ–΄λ…Έν…Œμ΄μ…˜μ„ μ‚¬μš©ν•˜κ²Œ λ˜μ—ˆλŠ”λ°μš”, κ°„λž΅ν•˜κ²Œ μ •.. 2021. 6. 8.
ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€[Java] - λ² μŠ€νŠΈμ•¨λ²”(ν•΄μ‹œ) https://programmers.co.kr/learn/courses/30/lessons/42579 μ½”λ”©ν…ŒμŠ€νŠΈ μ—°μŠ΅ - λ² μŠ€νŠΈμ•¨λ²” 슀트리밍 μ‚¬μ΄νŠΈμ—μ„œ μž₯λ₯΄ λ³„λ‘œ κ°€μž₯ 많이 μž¬μƒλœ λ…Έλž˜λ₯Ό 두 κ°œμ”© λͺ¨μ•„ 베슀트 앨범을 μΆœμ‹œν•˜λ € ν•©λ‹ˆλ‹€. λ…Έλž˜λŠ” 고유 번호둜 κ΅¬λΆ„ν•˜λ©°, λ…Έλž˜λ₯Ό μˆ˜λ‘ν•˜λŠ” 기쀀은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€. μ†ν•œ λ…Έλž˜κ°€ programmers.co.kr ν‹€λ¦° μ½”λ“œ import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; class Solution { public static int[] solution(String[] genres, int[] pla.. 2021. 6. 4.
[Java] - Jsoup을 μ΄μš©ν•œ 크둀링(feat. μΈν”„λŸ°) • μ•ˆλ…•ν•˜μ„Έμš”~ 이전에 μš΄μ˜ν•˜λ˜ λΈ”λ‘œκ·Έ 및 GitHub, 곡뢀 λ‚΄μš©μ„ μ •λ¦¬ν•˜λŠ” Study-GitHub κ°€ μžˆμŠ΅λ‹ˆλ‹€! • 넀이버 λΈ”λ‘œκ·Έ • GitHub • Study-GitHub • πŸ” πŸ“Ž Jsoup을 μ΄μš©ν•œ 크둀링 μ•ˆλ…•ν•˜μ„Έμš”! μ΄λ²ˆμ— 정리할 λ‚΄μš©μ€ Javaμ—μ„œ Jsoup을 μ΄μš©ν•΄ 크둀링 ν•˜λŠ” λ°©λ²•μž…λ‹ˆλ‹€. ν˜„μž¬ 진행쀑인(?) μ‚¬μ΄λ“œ ν”„λ‘œμ νŠΈμ—μ„œ μΈν”„λŸ° μ‚¬μ΄νŠΈμ˜ κ°•μ˜ 데이터듀이 ν•„μš”ν•΄μ„œ 크둀링을 ν•΄μ•Ό ν–ˆλŠ”λ°μš”, μ˜ˆμ „μ— ν•΄λ³Έ Python으둜 크둀링을 ν•  지, μ•„λ‹ˆλ©΄ μ΅μˆ™ν•œ Java둜 ν•  지 κ³ λ―Όν•˜λ‹€κ°€ κ²°κ΅­μ—” Java둜 ν•˜κ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€. μ‚¬μ΄νŠΈμ— μ ‘μ†ν•œ λ’€ νƒœκ·Έλ₯Ό 톡해 데이터λ₯Ό κ°€μ Έμ˜€λŠ” 전체적인 λ§₯락은 Pythonκ³Ό λΉ„μŠ·ν•˜κΈ° λ•Œλ¬Έμ— 큰 어렀움없이 진행할 수 μžˆμ—ˆλŠ”λ°μš”, μΈν”„λŸ° μ‚¬μ΄νŠΈμ—μ„œ ν•„μš”ν•œ 데이터λ₯Ό 가곡 &.. 2021. 5. 11.
[Java] - μ˜ˆμ™Έ(Exception), μ˜ˆμ™Έ 처리(Exception Handling) • μ•ˆλ…•ν•˜μ„Έμš”~ 이전에 μš΄μ˜ν•˜λ˜ λΈ”λ‘œκ·Έ 및 GitHub, 곡뢀 λ‚΄μš©μ„ μ •λ¦¬ν•˜λŠ” Study-GitHub κ°€ μžˆμŠ΅λ‹ˆλ‹€! • 넀이버 λΈ”λ‘œκ·Έ • GitHub • Study-GitHub • πŸ” πŸ“Ž μžλ°”μ—μ„œμ˜ μ˜ˆμ™Έ 처리(Exception Handling) μ•ˆλ…•ν•˜μ„Έμš”~ μ΄λ²ˆμ— 정리할 λ‚΄μš©μ€ μ˜ˆμ™Έ 및 μ˜ˆμ™Έμ²˜λ¦¬μ— λŒ€ν•œ λ‚΄μš©μž…λ‹ˆλ‹€. μ˜ˆμ™Έ μ²˜λ¦¬μ— λŒ€ν•œ 뢀뢄은 정말 μ€‘μš”ν•˜λ‹€κ³  μƒκ°ν•˜λŠ”λ°μš”, μ΄λ²ˆμ— 개인적으둜 κ°œλ°œμ„ μ§„ν–‰ν•˜λ©΄μ„œ μ˜ˆμ™Έ κ΄€λ ¨λ˜μ–΄μ„œ ν—·κ°ˆλ¦¬λŠ” 뢀뢄이 λͺ‡λͺ‡ μžˆμ—ˆκΈ°μ— κ°„λž΅ν•˜κ²Œ μ •λ¦¬ν•˜κ³ μž ν•©λ‹ˆλ‹€! πŸ˜ƒ μ˜ˆμ™Έ(Exception)λž€ ? ν”„λ‘œκ·Έλž¨ μ‹€ν–‰ 쀑에 λ°œμƒν•˜λŠ” 'μ˜ˆμ™Έμ μΈ 상황 정상적인 λͺ…λ Ή 흐름을 λ°©ν•΄ν•˜λŠ” ν”„λ‘œκ·Έλž¨ μ‹€ν–‰ 쀑에 λ°œμƒν•˜λŠ” 이벀트 λ‹¨μˆœν•œ 문법적 였λ₯˜κ°€ μ•„λ‹Œ μ‹€ν–‰ 쀑간에 λ°œμƒν•˜λŠ” '정상적이지 μ•Šμ€ 상황' e.g) 0.. 2021. 5. 8.
Caused by: java.lang.IllegalArgumentException: invalid target release: 11 • μ•ˆλ…•ν•˜μ„Έμš”~ 이전에 μš΄μ˜ν•˜λ˜ λΈ”λ‘œκ·Έ 및 GitHub, 곡뢀 λ‚΄μš©μ„ μ •λ¦¬ν•˜λŠ” Study-GitHub κ°€ μžˆμŠ΅λ‹ˆλ‹€! • 넀이버 λΈ”λ‘œκ·Έ • GitHub • Study-GitHub • πŸ” βœ” Caused by: java.lang.IllegalArgumentException: invalid target release: 11 μ•ˆλ…•ν•˜μ„Έμš”.. 힘이 λΉ μ§€λŠ” ν•˜λ£¨μž…λ‹ˆλ‹€. 메이븐을 톡해 λΉŒλ“œλ₯Ό ν•˜λŠ” 도쀑에 제λͺ©κ³Ό 같은 ~ invalid target release:11 였λ₯˜κ°€ λ°œμƒν–ˆμ—ˆμŠ΅λ‹ˆλ‹€. AWSμ—μ„œ μŠ€ν”„λ§λΆ€νŠΈμ™€ λ¦¬μ•‘νŠΈλ₯Ό λ°°ν¬ν•˜λŠ” 와쀑에 이것저것 μ†λŒ€λ‹€λ³΄λ‹ˆ 이전에 잘 되던 λΉŒλ“œλ„ μ•ˆλ©λ‹ˆλ‹€..γ…œγ…œ 무슨 였λ₯˜μΈμ§€ μ‚΄νŽ΄λ³΄κ² μŠ΅λ‹ˆλ‹€ ! 였λ₯˜ 사진은 μž‘μ§€λ§Œ μœ„μ™€ κ°™κ³ .. λ‚΄μš©μ€ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€. [ERROR] Failed to e.. 2021. 5. 1.
λ°˜μ‘ν˜•