λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

전체 κΈ€

(9)
μž‡μΈ  μŠ€ν„°λ”” 크루(IT's Study Crew) μŠ€ν„°λ”” ν›„κΈ° - system design club night μ°Έμ—¬ 이유* μž‘λ…„μ— κ΅¬μ„œλ²„λ“€μ„ λ¦¬μ•„ν‚€ν…μ³λ§ν•œ κ²½ν—˜μœΌλ‘œ μ‹œμŠ€ν…œ λ””μžμΈμ— λŒ€ν•΄ 곡뢀해야겠닀고 μƒκ°ν–ˆκ³ , μ€‘λ‹ˆμ–΄κ°€ λ˜μ–΄κ°€λŠ” μ‹œμ μ—μ„œ 곡뢀가 ν•„μš”ν•˜λ‹€κ³  μƒκ°ν–ˆλ‹€.* 곡뢀 ν™˜κ²½μ„ λ§Œλ“€κ³  + λ‹€μ–‘ν•œ μ˜κ²¬μ„ λ“£κ³  μ‹Άμ–΄μ„œ μ°Έμ—¬ ν–ˆλ‹€. λŠλ‚€ 점* λ°œν‘œμ— λŒ€ν•œ 두렀움이 λ§Žμ€ 편인데, λ‹€λ“€ 성격이 λ‘₯κΈ€λ‘₯κΈ€ν•˜μ‹œκ³  여성뢄듀이라 κ·ΈλŸ°μ§€ 마음이 νŽΈν–ˆλ‹€. κ·Έλž˜μ„œ λ‚˜λ„ ν•˜κ³  싢은 말을 ν• μˆ˜ μžˆμ–΄μ„œ μ’‹μ•˜λ‹€..! (μ†Œμ‹¬μŸμ΄)* 성별에 λŒ€ν•œ μ„ μž…κ²¬μ€ μ—†λŠ”λ°, μ—¬μžλ‘œλ§Œ 이뀄진 μŠ€ν„°λ””λŠ” 처음이라 μƒˆλ‘œμ› λ‹€(!)* κ°•μ œλ‘œλΌλ„ κ³΅λΆ€ν•˜λŠ” ν™˜κ²½μ„ λ§Œλ“€μ–΄μ•Ό ν•œλ‹€λŠ” 것을 λ‹€μ‹œ κΉ¨λ‹¬μ•˜λ‹€.(γ…Žγ…Ž)* 아무것도 λͺ¨λ₯΄λŠ” μ‹œμ ˆμ—” 쒋은 μ‹œμŠ€ν…œ λ””μžμΈμ— λŒ€ν•œ 정닡을 μ°Ύμ•˜λŠ”λ°, μ΄μ œλŠ” 정닡은 μ—†λŠ”κ±° κ°™λ‹€λŠ” κ±Έ λŠλΌλŠ” μš”μ¦˜μ΄λ‹€... (μ„œλΉ„μŠ€ 둜직이 λ°”λ€Œλ©΄ 기쑴에 μ’‹μ•˜λ˜ ꡬ..
곡뢀λ₯Ό ν•©μ‹€λ‹€ λ³΄ν˜Έλ˜μ–΄ μžˆλŠ” κΈ€μž…λ‹ˆλ‹€.
λ§Œλ“€λ©΄μ„œ λ°°μš°λŠ” ν—₯사고날 아킀텍쳐 섀계와 κ΅¬ν˜„ λΆμŠ€ν„°λ”” * μŠ€ν„°λ”” κΈ°κ°„ 2023/12/09~ 2024/01/27 * μ°Έμ—¬ 이유: 23λ…„ λ‚΄λ‚΄ ν”„λ‘œμ νŠΈλ₯Ό λ‹¬λ¦¬λ©΄μ„œ 개인적으둜 곡뢀할 μ‹œκ°„μ„ 갖지 λͺ»ν–ˆλ‹€(라고 μ“°κ³  μ•ˆν–ˆλ‹€κ°€ λ§žμ„μ§€λ„). κ°•μ œμ μœΌλ‘œ κ³΅λΆ€ν–ˆλ‹€λŠ” 성취감을 μ–»κΈ° μœ„ν•΄μ„œ μ°Έμ—¬ :) * μ±… 감상문(?): ν—₯사고날 μ•„ν‚€ν…μ³λŠ” DDD 에 κ΄€μ‹¬μžˆλ‹€λ©΄ ν•œλ²ˆμ―€ 듀어봀을 것이고, μœ μ§€λ³΄μˆ˜μ— 쒋은 μ½”λ“œ^-^에 관심이 λ§Žμ€ λ‚˜λ‘œμ¨λŠ” ν₯미둜운 책이라 μƒκ°ν–ˆλ‹€. λ’€λ‘œκ°ˆμˆ˜λ‘ 와닿지 μ•ŠλŠ” 기술 (μŠ€ν”„λ§μ—λ§Œ μ΅μˆ™ν•œ λ‚˜μ—κ²Œ μƒμ†Œν•œ 쿼컀슀 ν”„λ ˆμž„μ›Œν¬ λ“±..)이 λ“±μž₯ν•˜κ³  μ½”λ“œ μ˜ˆμ‹œκ°€ μ„œλΉ„μŠ€ λ„λ©”μΈκ³ΌλŠ” λ©€μ–΄λ³΄μ—¬μ„œ 크게 λ„μ›€λœκ±° 같진 μ•Šμ•˜λ‹€. κ·Έλž˜λ„ νšŒμ‚¬μ˜ ν”„λ‘œμ νŠΈ ꡬ쑰가 이 μ±…μ—μ„œ μ„€λͺ…ν•˜λŠ” ꡬ쑰와 λΉ„μŠ·ν•΄μ„œ κ·Έλ‚˜λ§ˆ 이해가 κ°”λ‹€. 항상 κ³ λ―Όλ˜λŠ” 뢀뢄은 같은 response λ₯Ό μ£ΌλŠ” μ—¬λŸ¬ ap..
[230811] Jpa OSIV κ΄€λ ¨ν•˜μ—¬ κ²ͺμ—ˆλ˜ 문제 Jpa OSIV Created: March 26, 2024 2:47 PM Complete: No Category: JPA Date: August 11, 2023 문제 상황 μ—…λ°μ΄νŠΈ API μ—μ„œ service λ ˆμ΄μ–΄μ—μ„œ λ‹€μŒ λ©”μ†Œλ“œλ₯Ό ν˜ΈμΆœν•˜λŠ”λ°, read DataSourceλ₯Ό λ³Έλ‹€. @Transactional A() -> @Transational(readOnly=true) B() -> @Transactional(readOnly=false) C() μ˜ˆμƒ propagation 이 default κΈ° λ•Œλ¬Έμ— 처음 νŠΈλžœμž­μ…˜μ΄ μ—΄λ¦° DataSource λ₯Ό 확인할 것이닀. REQUIRED(default) λΆ€λͺ¨ νŠΈλžœμž­μ…˜ λ‚΄μ—μ„œ μ‹€ν–‰, μ—†μœΌλ©΄ μƒˆλ‘œμš΄ νŠΈλžœμž­μ…˜ 생성 ν•΄λ‹Ή λ©”μ†Œλ“œλ₯Ό ν˜ΈμΆœν•œ κ³³μ—μ„œ λ³„λ„μ˜ νŠΈλžœμž­μ…˜μ΄ μ„€μ •λ˜μ–΄ 있..
Kotlin youtube μš”μ•½μΈλ“―ν•œ 감상문 μŠ€ν”„λ§μΊ ν”„ 2018 [TrackB Session2] : 쿠팑 Kotlin Backend 적용기 μ½”ν‹€λ¦°μ˜ 쒋은점 μžλ°”μ™€ ν˜Έν™˜μ„± 100% (@JvmXXXμ–΄λ…Έν…Œμ΄μ…˜ μ‚¬μš©μ‹œ) Familiar Syntax Smart Casts(’is,’as’) νƒ€μž…μ„ 쀄여 μ“Έ 수 μžˆλ‹€. is / !is if instanse of as / as? ? κ°€ λΆ™μœΌλ©΄ nullable Data Class copy λΌλŠ” ν•¨μˆ˜ μ½”ν‹€λ¦°μ—μ„œλŠ” immutable 이 기본이닀. νƒ€μž…λ„ 쀄고 읽기도 νŽΈν•˜λ‹€. Default Argument String Templates fun read(b: ByteArray, offset:Int = 0, length:Int = b.size) { TODO("Not Imlemented") } val s = "abc" val..
@Transactional(readOnly=true) @Transaction(read only=true) λ₯Ό μ™œ μ“ΈκΉŒ? λ¨Όμ €, νŠΈλžœμž­μ…˜μ΄ ν•„μš”ν•œ 이유 μ–΄λ–€ μ˜ˆμƒμΉ˜ λͺ»ν•œ μƒν™©μ—μ„œ μ˜ˆμ™Έ, 였λ₯˜κ°€ λ°œμƒν•˜μ—¬ 데이터 뢀정합이 λ°œμƒν•˜λŠ” 경우, 데이터 원상 볡ꡬλ₯Ό ν•΄μ•Όν•œλ‹€. 이 λ•Œ 데이터 원상볡ꡬλ₯Ό μœ„ν•΄ νŠΈλžœμž­μ…˜μ΄ ν•„μš”ν•˜λ‹€. 데이터 λ² μ΄μŠ€λŠ” μˆ˜ν–‰ 내역을 λ‘œκ·Έμ— μ €μž₯ν•΄ λ‘λŠ”λ°, 이λ₯Ό μ΄μš©ν•΄ νŠΈλžœμž­μ…˜μ„ μ§€μ›ν•œλ‹€. DB에 반영된 λ‚΄μš©μ„ μž¬λ°˜μ˜ν•˜κΈ° μœ„ν•œ Redo log μˆ˜ν–‰μ„ μ‹€νŒ¨ν•΄ μ΄μ „μ˜ μƒνƒœλ‘œ λ˜λŒλ¦¬λŠ” Undo log readOnly=true μ„€μ •μ‹œ Application μΈ‘λ©΄ DataSourceTranscationManager.java SET TRANSACTION READ ONLY λŠ” Oracle, MySQL, Postresμ—μ„œ μ μš©λ©λ‹ˆλ‹€. λ‹€λ₯Έ 데이터 λ² μ΄μŠ€μ—μ„œλ„ μ μš©ν•˜..
[Java] μ•„μ΄ν…œ 5 μžμ›μ„ 직접 λͺ…μ‹œν•˜μ§€ 말고 의쑴 객체 μ£Όμž…μ„ μ‚¬μš©ν•˜λΌ ν΄λž˜μŠ€κ°€ λ‚΄λΆ€μ μœΌλ‘œ ν•˜λ‚˜ μ΄μƒμ˜ μžμ›μ— μ˜μ‘΄ν•˜κ³ , κ·Έ μžμ›μ΄ 클래슀 λ™μž‘μ— 영ν–₯을 μ€€λ‹€λ©΄ μ‹±κΈ€ν„΄(Singleton) κ³Ό, 정적 μœ ν‹Έλ¦¬ν‹°(static util class)λŠ” μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” 것이 μ’‹λ‹€. // 정적 μœ ν‹Έλ¦¬ν‹°λ₯Ό 잘λͺ» μ‚¬μš©ν•œ 예 - μœ μ—°ν•˜μ§€ μ•Šκ³  ν…ŒμŠ€νŠΈν•˜κΈ° μ–΄λ ΅λ‹€ public class SpellChecker{ private static final Lexicon dictionary = ...; // 사전에 의쑴 private SpellChecker() {} // 객체 생성 방지 public static boolean isValid(String word){...} public static List suggestions(String typo){...} } // 싱글턴을 잘λͺ» μ‚¬μš©ν•œ 예 - μœ μ—°ν•˜μ§€ μ•Š..
[spring boot] mock test 이번 ν”„λ‘œμ νŠΈμ—μ„œλŠ” TDD λ₯Ό μ œλŒ€λ‘œ μ•Œκ³ , μ μš©ν•˜κ³  μ‹Άμ–΄μ„œ μ •λ¦¬ν–ˆλ‹€ :) TDD 적용기 : www.notion.so/Shop-api-1-49b80401badf4488b993460357b351a2 @SpringBootTest SpringBootApplication을 μ°Ύμ•„ ν…ŒμŠ€νŠΈλ₯Ό μœ„ν•œ λΉˆμ„ μƒμ„±ν•˜κ³  @MockBean 으둜 μ •μ˜λœ λΉˆμ„ μ°Ύμ•„ ꡐ체 @RunWith(SpringRunner.class)와 같이 μ¨μ•Όν•œλ‹€ SpringBootTest.WebEnvironment.MOCK → λ‚΄μž₯ ν†°μΊ£ μ‚¬μš© X RANDOM_PORT, DEFINED_PORT → λ‚΄μž₯ ν†°μΊ£ μ‚¬μš© WebTestClient webflux λ””νŽœλ˜μ‹œ μΆ”κ°€ν•΄μ•Όν•œλ‹€. restTemplate 보닀 API 가독성이 μ’‹λ‹€. non-blocking 기반 클..