λΆ€ν•˜ ν…ŒμŠ€νŠΈ: μœ μ € 행동 기반 μ‹œλ‚˜λ¦¬μ˜€λ‘œ μ‹œμŠ€ν…œ ν•œκ³„ μΈ‘μ •κ³Ό SLA, SLO 검증
Β·
πŸ’» 개발/🎸 ETC
λ“€μ–΄κ°€λ©°λΆ€ν•˜ ν…ŒμŠ€νŠΈλŠ” μ‹œμŠ€ν…œμ˜ μ΅œλŒ€ μ²˜λ¦¬λŸ‰(TPS), μ•ˆμ •μ„±, SLA(μ„œλΉ„μŠ€ μˆ˜μ€€ 계약) 및 SLO(μ„œλΉ„μŠ€ μˆ˜μ€€ λͺ©ν‘œ)λ₯Ό κ²€μ¦ν•˜λŠ” μ€‘μš”ν•œ κ³Όμ •μž…λ‹ˆλ‹€. 이번 κΈ€μ—μ„œλŠ” μ½˜μ„œνŠΈ μ˜ˆμ•½ μ„œλΉ„μŠ€μ—μ„œ μœ μ € 행동을 기반으둜 ν•œ 두 가지 μ‹œλ‚˜λ¦¬μ˜€λ₯Ό μ€‘μ‹¬μœΌλ‘œ, Docker ν™˜κ²½μ—μ„œ μžμ›μ„ μ‘°μ ˆν•˜λ©° μ„±λŠ₯ ν…ŒμŠ€νŠΈλ₯Ό μˆ˜ν–‰ν•œ λ‚΄μš©μ„ μ •λ¦¬ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€.   1. ν…ŒμŠ€νŠΈ μ‹œλ‚˜λ¦¬μ˜€ μ„€κ³„μœ μ €μ˜ 행동을 기반으둜 두 가지 ν…ŒμŠ€νŠΈ μ‹œλ‚˜λ¦¬μ˜€λ₯Ό μ„€κ³„ν–ˆμŠ΅λ‹ˆλ‹€. 각각의 μ‹œλ‚˜λ¦¬μ˜€λŠ” μ‹œμŠ€ν…œμ˜ μ„œλ‘œ λ‹€λ₯Έ μƒνƒœ(μœ μ € λΉ„ν™œμ„±/μœ μ € ν™œμ„±)λ₯Ό ν…ŒμŠ€νŠΈν•˜κΈ° μœ„ν•΄ μ„ μ •ν–ˆμŠ΅λ‹ˆλ‹€. - μ‹œλ‚˜λ¦¬μ˜€ 1 : μœ μ € λŒ€κΈ°μ—΄ λΉ„ν™œμ„±λͺ©ν‘œ: λŒ€κΈ°μ—΄ μ‹œμŠ€ν…œμ—μ„œ 토큰 λ°œκΈ‰ 및 μƒνƒœ 쑰회의 μ²˜λ¦¬λŸ‰ 츑정행동 νλ¦„μœ μ €κ°€ λŒ€κΈ°μ—΄ 토큰 λ°œκΈ‰ μš”μ²­μœ μ €κ°€ 1초 κ°„κ²©μœΌλ‘œ 토큰 μƒνƒœ μ‘°νšŒμ€‘μ λŒ€κΈ°μ—΄ μ‹œμŠ€ν…œμ˜..
μ½˜μ„œνŠΈ μ˜ˆμ•½ μ„œλΉ„μŠ€μ—μ„œ Lock μ„±λŠ₯ 비ꡐ해보기 (feat. 낙관적 락, 비관적 락, λΆ„μ‚° 락)
Β·
πŸ’» 개발/🎸 ETC
λ“€μ–΄κ°€λ©°μ½˜μ„œνŠΈ μ˜ˆμ•½ μ„œλΉ„μŠ€μ™€ 같은 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œλŠ” λ™μ‹œμ„± 처리λ₯Ό κ³ λ €ν•΄μ•Ό ν•©λ‹ˆλ‹€. μ’Œμ„ 예맀 μ˜€ν”ˆ μ‹œ μ—¬λŸ¬ μ‚¬μš©μžκ°€ λ™μ‹œμ— μ˜ˆμ•½μ„ μ‹œλ„ν•˜λ©΄, μžμ›μ΄ μ•ˆμ „ν•˜κ²Œ κ΄€λ¦¬λ˜μ§€ μ•Šμ„ 경우 μ˜ˆμ•½μ΄ μ΄ˆκ³Όλ˜κ±°λ‚˜ 데이터 일관성이 깨질 μœ„ν—˜μ΄ μžˆμŠ΅λ‹ˆλ‹€. 이번 μ‹œκ°„μ— μ½”λ“œ 적용 및 ν…ŒμŠ€νŠΈλ₯Ό 톡해 각 λ™μ‹œμ„± 처리 λ°©μ‹μ˜ μž₯단점을 κ²€ν† ν•˜κ³ , μ΅œμ’…μ μœΌλ‘œ λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ— μ ν•©ν•œ λ™μ‹œμ„± 처리 방식을 μ„ μ •ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€.  λ™μ‹œμ„± μ΄μŠˆκ°€ λ°œμƒν•  수 μžˆλŠ” λΉ„μ¦ˆλ‹ˆμŠ€ 둜직이 μ„œλΉ„μŠ€μ—μ„œ λ™μ‹œμ„± μ΄μŠˆκ°€ λ°œμƒν•  수 μžˆλŠ” μ£Όμš” λ‘œμ§μ€ μ•„λž˜μ™€ κ°™μŠ΅λ‹ˆλ‹€.μ’Œμ„ μ˜ˆμ•½λ½μ„ κ±Έμ–΄μ•Ό ν•˜λŠ” μžμ›seatν…Œμ΄λΈ”μ˜ statusconcert_scheduleν…Œμ΄λΈ”μ˜ available_seats포인트 μΆ©μ „ 및 κ²°μ œλ½μ„ κ±Έμ–΄μ•Ό ν•˜λŠ” μžμ›userν…Œμ΄λΈ”μ˜ balancereserv..
E-Book을 PDF둜 μΆ”μΆœν•˜λŠ” ν”„λ‘œκ·Έλž¨ λ§Œλ“€κΈ° (23.09.06. μ‹€ν–‰νŒŒμΌ μΆ”κ°€)
Β·
πŸ’» 개발/🎸 ETC
* 2023.09.06 μΆ”κ°€ μ’€ 더 κ°„νŽΈν•˜κ²Œ μ‚¬μš©ν•  수 μžˆλ„λ‘ μ‹€ν–‰ κ°€λŠ₯ν•œ 파일둜 λΉŒλ“œν•˜μ˜€λ‹€. mac용 μ‹€ν–‰ νŒŒμΌλ„ λ°°ν¬ν•˜λ € ν–ˆμ§€λ§Œ, μ•Œ 수 μ—†λŠ” μ—λŸ¬λ‘œ 인해 ν•˜λ£¨λ₯Ό κΌ¬λ°• 써도 원인을 λͺ» μ°Ύμ•„ μš°μ„  μœˆλ„μš°μš© μ‹€ν–‰ 파일만 κΉƒν—ˆλΈŒμ— μΆ”κ°€ν•˜μ˜€λ‹€. μ•„ 그리고, 직접 μ‚¬μš©ν•˜λ©΄μ„œ λΆˆνŽΈν•œ μ μ΄μ—ˆλ˜ 캑처 속도 μ‘°μ ˆμ„ GUIμ—μ„œ ν•  수 μžˆλ„λ‘ μΆ”κ°€ν•˜μ˜€κ³ , μ΄ˆκΈ°ν™” λ²„νŠΌλ„ μΆ”κ°€ν•˜μ˜€λ‹€. 캑쳐 속도λ₯Ό μΆ”κ°€ν•œ μ΄μœ λŠ”, μ‹€ν–‰ν•˜λŠ” ν™˜κ²½λ§ˆλ‹€ e-bookμ—μ„œ λ‹€μŒ νŽ˜μ΄μ§€λ‘œ 이동할 λ•Œ, ν™”λ©΄ λ‘œλ”©μ΄ 느린 κ²½μš°κ°€ μ’…μ’… μžˆμ—ˆλ‹€. λ•Œλ¬Έμ— μΊ‘μ²˜ν•˜κΈ° 전에 λ‹€μŒ νŽ˜μ΄μ§€λ₯Ό λ„˜κ²¨λ³΄λ©΄μ„œ μ–΄λŠ μ •λ„μ˜ ν…€μœΌλ‘œ μΊ‘μ²˜ν• μ§€ νŒλ‹¨ν•˜μ—¬ 지정해 μ£Όλ©΄ λœλ‹€. ν•΄λ‹Ή νŒŒμΌμ€ μ•„λž˜ κΉƒν—ˆλΈŒ 링크둜 λ“€μ–΄κ°€μ„œ dist 폴더 μ•ˆμ— ebook_to_pdf.exe을 λ°›μœΌλ©΄ λœλ‹€. μ‹€ν–‰..
JMeter Dashboardλ₯Ό ν™œμš©ν•˜μ—¬ λ³€μˆ˜κ°’ λ³€ν™” κ·Έλž˜ν”„ λ§Œλ“€κΈ°
Β·
πŸ’» 개발/🎸 ETC
πŸ“ˆ νŠΉμ • λ³€μˆ˜ κ·Έλž˜ν”„ 좜λ ₯ (JMeter Dashboard ν™œμš©) 1. λ³€μˆ˜ μ„€μ • κ·Έλž˜ν”„λ‘œ λ‚˜νƒ€λ‚Ό λ³€μˆ˜κ°’μ„ μ§€μ •ν•œλ‹€. μ•„λž˜λŠ” λžœλ€κ°’μ„ λ³€μˆ˜μ— μ‚½μž…ν•˜κΈ° μœ„ν•΄ JSR223 Samplerλ₯Ό μ΄μš©ν•΄ sampleTime μ΄λΌλŠ” λ³€μˆ˜μ•ˆμ— μž„μ˜μ˜ μ •μˆ˜κ°’μ„ 넣어주도둝 ν•˜μ˜€λ‹€. import java.util.concurrent.ThreadLocalRandom; int[] array = ThreadLocalRandom.current().ints(0, 1000).distinct().limit(5).toArray(); vars.put("sampleTime", String.valueOf(array[0])); 2. user.properties μ„€μ • μ»€μŠ€ν…€ κ·Έλž˜ν”„ 생성을 μœ„ν•΄ μ•„λž˜ propertyλ₯Ό μΆ”κ°€ν•΄μ€€λ‹€. πŸš€ 파일경둜 : (..