전체 κΈ€

전체 κΈ€

    [Java] μžλ°” 직렬화 (Serialization)

    [Java] μžλ°” 직렬화 (Serialization)

    πŸ€” 1. μžλ°” μ§λ ¬ν™”λž€? μžλ°” 직렬화(Java Serialization)은, 객체의 μƒνƒœλ₯Ό μ˜μ†ν™” ν•˜λŠ” λ§€μ»€λ‹ˆμ¦˜μž…λ‹ˆλ‹€. μ˜μ†ν™”λŠ”, 영ꡬ적으둜 속성을 μ €μž₯ν•˜λŠ” 것을 μ˜λ―Έν•˜λ―€λ‘œ, μ‰½κ²Œ ν’€μ–΄μ„œ μ„€λͺ…ν•˜λ©΄ 객체λ₯Ό λ‹€λ₯Έ ν™˜κ²½μ— μ €μž₯ν–ˆλ‹€κ°€ λ‚˜μ€‘μ— μž¬κ΅¬μ„±ν•  수 μžˆλŠ” 것이 곧 μžλ°” μ§λ ¬ν™”μ˜ μ˜λ―Έμž…λ‹ˆλ‹€. λ‹¨μˆœνžˆ μ €μž₯이라고 ν‘œν˜„ν–ˆμ§€λ§Œ, 일반적으둜 μš°λ¦¬κ°€ μƒκ°ν•˜λŠ” λ°μ΄ν„°λ² μ΄μŠ€ μ €μž₯, 파일의 ν˜•νƒœλ‘œ μ €μž₯도 해당이 λ˜μ§€λ§Œ, λ©”λͺ¨λ¦¬ 및 μΊμ‹œμ— μ €μž₯ν•˜λŠ” 것 μ—­μ‹œ 직렬화라고 ν‘œν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μžλ°” 직렬화λ₯Ό 톡해 객체λ₯Ό μ˜¨μ „νžˆ λ‹€λ₯Έ 곳에 μ €μž₯ν•˜κ³ , λ‹€μ‹œ μ˜¨μ „ν•œ 객체둜 μž¬κ΅¬μ„±ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이λ₯Ό 톡해 μ‰½κ²Œ λΆ„μ‚° 객체 생성이 κ°€λŠ₯ν•΄μ‘ŒμŠ΅λ‹ˆλ‹€. μžλ°” μ§λ ¬ν™”μ—μ„œ μ €μž₯ν•˜λŠ” 방식은, 객체λ₯Ό λ°”μ΄νŠΈ 슀트림의 ν˜•νƒœλ‘œ λ§Œλ“€μ–΄ 이λ₯Ό μ €μž₯ν•©λ‹ˆλ‹€. πŸ€” ..

    [Spring WebFlux] 1. Mono와 Flux에 λŒ€ν•œ 이해(2) : 자주 μ‚¬μš©ν•˜λŠ” operator (method)

    [Spring WebFlux] 1. Mono와 Flux에 λŒ€ν•œ 이해(2) : 자주 μ‚¬μš©ν•˜λŠ” operator (method)

    πŸͺ„ 0. 이전 κΈ€ Mono와 Flux에 λŒ€ν•œ μ΄ν•΄λŠ” 이전 κΈ€μ—μ„œ ν™•μΈν•˜μ‹€ 수 μžˆμŠ΅λ‹ˆλ‹€. [Spring WebFlux] 1. Mono와 Flux에 λŒ€ν•œ 이해(1) : μž‘λ™ 방식과 이해 🏝 0. 이전 κΈ€ (0. λ¦¬μ•‘ν‹°λΈŒ ν”„λ‘œκ·Έλž˜λ°μ˜ μ†Œκ°œ) [Spring WebFlux] 0. λ¦¬μ•‘ν‹°λΈŒ ν”„λ‘œκ·Έλž˜λ°μ˜ μ†Œκ°œ πŸ€” 1. 리앑터(Reactor)λŠ” λ¬΄μ—‡μΈκ°€μš”? 간단 μš©μ–΄ 정리 - Reactive Stream : JVM μœ„μ—μ„œ 싀행될 수 μžˆλŠ” 리앑티 hoons-dev.tistory.com 🏝 1. μƒˆλ‘œμš΄ μ‹œν€€μŠ€λ₯Ό 생성할 λ•Œ μ‚¬μš©ν•˜λŠ” Operator 상황에 따라 μƒˆλ‘œμš΄ μ‹œν€€μŠ€λ₯Ό 생성할 λ•Œ, λ‹€μ–‘ν•œ μ˜€νΌλ ˆμ΄ν„°λ₯Ό λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€. 1) T νƒ€μž…μ˜ 객체λ₯Ό λ°©μΆœν•˜κ³ , ν•΄λ‹Ή νƒ€μž…μ„ μ†Œμ§€ν•˜κ³  μžˆλŠ” 경우. public static Fl..

    [Spring WebFlux] 1. Mono와 Flux에 λŒ€ν•œ 이해(1) : μž‘λ™ 방식과 이해

    [Spring WebFlux] 1. Mono와 Flux에 λŒ€ν•œ 이해(1) : μž‘λ™ 방식과 이해

    🏝 0. 이전 κΈ€ (0. λ¦¬μ•‘ν‹°λΈŒ ν”„λ‘œκ·Έλž˜λ°μ˜ μ†Œκ°œ) [Spring WebFlux] 0. λ¦¬μ•‘ν‹°λΈŒ ν”„λ‘œκ·Έλž˜λ°μ˜ μ†Œκ°œ πŸ€” 1. 리앑터(Reactor)λŠ” λ¬΄μ—‡μΈκ°€μš”? 간단 μš©μ–΄ 정리 - Reactive Stream : JVM μœ„μ—μ„œ 싀행될 수 μžˆλŠ” λ¦¬μ•‘ν‹°λΈŒ ν”„λ‘œκ·Έλž˜λ° 라이브러리λ₯Ό ν‘œμ€€ν™”μ‹œν‚¨ κ²ƒμœΌλ‘œ 이해할 수 μžˆμŠ΅λ‹ˆλ‹€. μΈν„°νŽ˜μ΄μŠ€μ˜ ν˜•νƒœλ‘œ hoons-dev.tistory.com πŸ€” 1. Mono와 Fluxλ₯Ό μ†Œκ°œν•©λ‹ˆλ‹€. 1-1. Flux FluxλŠ” Reactive Stream의 Publisher에 ν•΄λ‹Ήν•˜λŠ” κ°μ²΄μž…λ‹ˆλ‹€. 퍼블리셔가 무엇인지 λͺ¨λ₯Έλ‹€λ©΄, μ§€λ‚œ ν¬μŠ€νŒ…μ„ μ°Έκ³ ν•΄μ£Όμ‹œκΈ° λ°”λžλ‹ˆλ‹€. 곡식 레퍼런슀의 Fluxμž…λ‹ˆλ‹€. "All Implemented Interfaces"λ₯Ό ν™•μΈν•˜λ©΄, λ¦¬μ•‘ν‹°λΈŒ μŠ€νŠΈλ¦Όμ—μ„œ μ •μ˜ν•œ P..

    [DEVLOG] if(kakao) dev 2022 개발자 컨퍼런슀 ν›„κΈ° - 1. ISFP의 μ½”λ“œ 가독성 κ°œμ„  κ²½ν—˜

    [DEVLOG] if(kakao) dev 2022 개발자 컨퍼런슀 ν›„κΈ° - 1. ISFP의 μ½”λ“œ 가독성 κ°œμ„  κ²½ν—˜

    λ³Έ ν¬μŠ€νŠΈλŠ” 카카였 컨퍼런슀 if(kakao) dev 2022 컨퍼런슀 λ‚΄μš© 및 μžλ£Œκ°€ ν¬ν•¨λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. ν˜Ήμ—¬λ‚˜ ꢌ리 κ΄€λ ¨ λ¬Έμ œκ°€ λ°œμƒν•œλ‹€λ©΄, κΈ€ μˆ˜μ • / μ‚­μ œλ₯Ό μ§„ν–‰ν•˜λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€. 🏝 0. 유튜브 λ‹€μ‹œλ³΄κΈ° μ˜μƒ https://www.youtube.com/watch?v=emGLxi0LvNI&list=LL&index=46&t=165s πŸ€” 1. μ½”λ“œ 가독성 κ°œμ„  κ²½ν—˜ 일반적인 λ¦¬νŒ©ν† λ§μ€, 기쑴의 λ‘œμ§μ€ 변함 없이 μ½”λ“œμ˜ ꡬ쑰 ν˜Ήμ€ 가독성을 λ†’μ΄λŠ” μž‘μ—…μž…λ‹ˆλ‹€. μ€‘λ³΅μ½”λ“œλ₯Ό μ œκ±°ν•˜κ±°λ‚˜, κΈ΄ μ„œλΈŒλ£¨ν‹΄μ„ μͺΌκ°œλŠ” μž‘μ—…, μ—¬λŸ¬κ°€μ§€λ₯Ό μˆ˜ν–‰ν•˜λŠ” ν•¨μˆ˜μ—μ„œ μ—­ν• μ˜ 뢄리, μ „μ—­λ³€μˆ˜ μ„€μ •, μ˜¬λ°”λ₯΄μ§€ μ•Šμ€ 넀이밍 μˆ˜μ •, μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” μ½”λ“œ 제거 등이 일반적인 λ¦¬νŒ©ν† λ§μ„ μ˜λ―Έν•œλ‹€κ³  ν•©λ‹ˆλ‹€. ν•˜μ§€λ§Œ 카카였의 coze κ°œλ°œμžλ‹˜μ€, ..

    [Spring WebFlux] 0. λ¦¬μ•‘ν‹°λΈŒ ν”„λ‘œκ·Έλž˜λ°μ˜ μ†Œκ°œ

    [Spring WebFlux] 0. λ¦¬μ•‘ν‹°λΈŒ ν”„λ‘œκ·Έλž˜λ°μ˜ μ†Œκ°œ

    πŸ€” 1. 리앑터(Reactor)λŠ” λ¬΄μ—‡μΈκ°€μš”? 간단 μš©μ–΄ 정리 - Reactive Stream : JVM μœ„μ—μ„œ 싀행될 수 μžˆλŠ” λ¦¬μ•‘ν‹°λΈŒ ν”„λ‘œκ·Έλž˜λ° 라이브러리λ₯Ό ν‘œμ€€ν™”μ‹œν‚¨ κ²ƒμœΌλ‘œ 이해할 수 μžˆμŠ΅λ‹ˆλ‹€. μΈν„°νŽ˜μ΄μŠ€μ˜ ν˜•νƒœλ‘œ μŠ€νŽ™μ΄ μ •μ˜λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. - Reactor3 : Reactive Stream μŠ€νŽ™μ„ κ΅¬ν˜„ν•œ κ΅¬ν˜„μ²΄ λΌμ΄λΈŒλŸ¬λ¦¬μž…λ‹ˆλ‹€. JVM μœ„μ—μ„œ λ¦¬μ•‘ν‹°λΈŒ ν”„λ‘œκ·Έλž˜λ°μ΄λΌλŠ” μƒˆλ‘œμš΄ νŒ¨λŸ¬λ‹€μž„μ„ μ μš©μ‹œν‚€κΈ° μœ„ν•œ λΌμ΄λΈŒλŸ¬λ¦¬μž…λ‹ˆλ‹€. - TCK(Reactive Streams Technology Compatibility Kit) : Reactive Streams κ΅¬ν˜„μžκ°€ 사양에 μ •μ˜λœ κ·œμΉ™μ— λŒ€ν•΄ κ΅¬ν˜„μ„ ν™•μΈν•˜κΈ° μœ„ν•œ μ§€μΉ¨μœΌλ‘œ, TestNGλΌλŠ” Java의 ν…ŒμŠ€νŠΈ ν”„λ ˆμž„ μ›Œν¬λ‘œ 개발이 λ˜μ—ˆμŠ΅λ‹ˆλ‹€. λ¦¬μ•‘ν‹°λΈŒ 슀트림의 ..

    [DEVLOG] μš°λ‹Ήνƒ•νƒ• 제발λͺ¨λ°œ v2 개발기 - νƒˆλͺ¨ 진단 API μˆ˜μ •ν•˜κΈ° (4) createdAtκ³Ό updatedAt, JPA AttributeConverter

    [DEVLOG] μš°λ‹Ήνƒ•νƒ• 제발λͺ¨λ°œ v2 개발기 - νƒˆλͺ¨ 진단 API μˆ˜μ •ν•˜κΈ° (4) createdAtκ³Ό updatedAt, JPA AttributeConverter

    😎 0. 이전 κΈ€ [DEVLOG] μš°λ‹Ήνƒ•νƒ• 제발λͺ¨λ°œ v2 개발기 - νƒˆλͺ¨ 진단 API μˆ˜μ •ν•˜κΈ° (3) DTO에 λ”°λ₯Έ 응닡 생성 클래슀 만 😎 0. 이전 κΈ€ [DEVLOG] μš°λ‹Ήνƒ•νƒ• 제발λͺ¨λ°œ v2 개발기 - νƒˆλͺ¨ 진단 API μˆ˜μ •ν•˜κΈ° (1) λ³€μˆ˜ μž‘λͺ…, Optional, Enum ν™œμš© 🏝 0. μ„œλ‘  μ‘Έμ—…μž‘ν’ˆμœΌλ‘œ νƒˆλͺ¨ 진단 μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μΈ '제발λͺ¨λ°œ'을 κ°œλ°œν•˜κ³ , 'ν•΄λ‹Ή ν”Œ hoons-dev.tistory.com πŸ€” 1. createdAtκ³Ό updatedAt λͺ¨λ“  μ—”ν‹°ν‹°λŠ” 일반적으둜 createdAtκ³Ό updatedAt을 κ°€μ§‘λ‹ˆλ‹€. 데이터λ₯Ό μ €μž₯ν•  λ•Œ 'μƒμ„±λœ μ‹œκ°„ 정보'와 'μˆ˜μ •λœ μ‹œκ°„ 정보'λŠ” μ—¬λŸ¬λͺ¨λ‘œ 많이 μ‚¬μš©λ˜κ³  또 μ€‘μš”ν•©λ‹ˆλ‹€. JPAλ₯Ό μ‚¬μš©ν•˜λ©΄μ„œ @CreatedDate, @LastModifiedDat..

    [λ””μžμΈνŒ¨ν„΄] λ””μžμΈ νŒ¨ν„΄ (3) - μ–΄λŒ‘ν„° νŒ¨ν„΄ (Adatper Pattern)

    🏝 1. μ–΄λŒ‘ν„° νŒ¨ν„΄(Adapter Pattern)μ΄λž€? ν•œκ΅­μ˜ κ°€μ •μ—μ„œ μ‚¬μš©ν•˜λŠ” 전압은 220Vμž…λ‹ˆλ‹€. 미ꡭ의 κ°€μ •μ—μ„œ μ‚¬μš©ν•˜λŠ” 전압은, 110Vλ₯Ό μ‚¬μš©ν•˜μ£ . ν•œκ΅­μ‚¬λžŒμ΄ 미ꡭ으둜 여행을 κ°€μ„œ, μˆ™μ†Œμ— λ¨Έλ¬Έλ‹€κ³  ν•©μ‹œλ‹€. ν•œκ΅­μ˜ ν•Έλ“œν° μΆ©μ „κΈ°λ₯Ό λ“€κ³ , λ―Έκ΅­μ—μ„œ 꼽으렀고 ν•˜λ‹ˆ, λ‹¨μžκ°€ λ§žμ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 미ꡭ의 μ „κΈ°λ₯Ό μ‚¬μš©ν•˜λ €λ©΄, 110V에 λ§žλŠ” λ‹¨μžλ₯Ό κΌ½μ•„μ•Ό ν•©λ‹ˆλ‹€. κ·Έλ ‡λ‹€λ©΄, μš°λ¦¬λŠ” 보톡 ν•œκ΅­μ˜ μΆ©μ „κΈ°λ₯Ό 버리고 미ꡭ의 μΆ©μ „κΈ°λ₯Ό μƒˆλ‘œ 사지 μ•Šκ³ , μ–΄λŒ‘ν„°(Adapter, λ³€ν™˜κΈ°)λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€. μ–΄λŒ‘ν„° νŒ¨ν„΄μ€ ν˜Έν™˜μ„±μ΄ μ—†λŠ” κΈ°μ‘΄ 클래슀의 μΈν„°νŽ˜μ΄μŠ€λ₯Ό λ³€ν™˜ν•΄ μž¬μ‚¬μš©ν•  수 μžˆλ„λ‘ ν•΄μ£ΌλŠ” νŒ¨ν„΄μž…λ‹ˆλ‹€. ν˜Έν™˜μ„±μ΄ μ—†λŠ” κΈ°μ‘΄ ν΄λž˜μŠ€λŠ” ν•œκ΅­μ˜ 220V 좩전기와 λ™μΌν•˜κ³ , μΈν„°νŽ˜μ΄μŠ€λ₯Ό λ³€ν™˜ν•΄ μž¬μ‚¬μš©ν•  수 μžˆλ„λ‘ ν•˜λŠ” 것은 μ–΄λŒ‘..

    [λ””μžμΈνŒ¨ν„΄] λ””μžμΈ νŒ¨ν„΄(2) - 싱글톀 νŒ¨ν„΄(Singleton Pattern)

    🏝 1. 싱글톀 νŒ¨ν„΄(Singleton Pattern)μ΄λž€? 싱글톀 νŒ¨ν„΄μ€, μ–΄λ– ν•œ 클래슀(객체)κ°€ μœ μΌν•˜κ²Œ 단 ν•œ 개만 μ‘΄μž¬ν•΄μ•Ό ν•  λ•Œ μ‚¬μš©ν•˜κ²Œ λ©λ‹ˆλ‹€. 주둜 μ„œλ‘œ μžμ›μ„ κ³΅μœ ν•  λ•Œ μ‚¬μš©ν•˜λ©°, μƒμ„±λœ 단 ν•˜λ‚˜μ˜ 객체λ₯Ό κ³΅μœ ν•˜λ©° μ‚¬μš©ν•˜κ²Œ λ©λ‹ˆλ‹€. 싱글톀 νŒ¨ν„΄μ€ λ””μžμΈ νŒ¨ν„΄ 쀑에, '생성' νŒ¨ν„΄μ— μ†ν•©λ‹ˆλ‹€. 싱글톀 νŒ¨ν„΄μ„ 톡해 단 ν•œ 번의 생성을 보μž₯ν•˜κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€. ν”„λ‘œκ·Έλž˜λ°μ—μ„œμ˜ μ˜ˆμ‹œλ‘œλŠ” TCP socket ν†΅μ‹ μ—μ„œ μ„œλ²„μ™€ μ—°κ²°λœ connect 객체에 주둜 μ‚¬μš©ν•΄μ„œ ν•œ μ†ŒμΌ“μ—μ„œλ§Œ μ‚¬μš©ν•˜λŠ” 것듀이 μžˆμŠ΅λ‹ˆλ‹€. TCP 연결을 ν•  λ•Œ μ„œλ‘œ μ—°κ²°ν•˜λŠ” λΉ„μš©μ΄ λ°œμƒν•˜κΈ° λ•Œλ¬Έμ— 이미 ν•œ 번 μ—΄λ €μžˆλŠ” μ†ŒμΌ“μ„ μž¬ν™œμš©ν•˜λŠ” 것이 쒋지, μš”μ²­λ§ˆλ‹€ 계속 connection을 맺을 ν•„μš”κ°€ μ—†μŠ΅λ‹ˆλ‹€. μŠ€ν”„λ§μ—μ„œ 'Bean'이라고 ..