π Java & Kotlin & Spring57 [Distributed Tracing] Messaging νκ²½μμμ λΆμ° μΆμ μ€μ΅ λ³Έ κΈμ λ§μ΄ν¬λ‘μλΉμ€μ λΆμ° μΆμ μ리μ¦λ‘ μ΄λ‘ κ³Ό μ€μ΅μ΄ ν¨κ» ν¬ν¨λ μ리μ¦μ λλ€. μλ λͺ©μ°¨μ νμλ κΈμ λͺ¨λ μ°Έκ³ νλ©΄ μ’μ΅λλ€. λͺ©μ°¨ Distributed Tracing, λΆμ° μΆμ μ΄λ? Spring Cloud Sleuth μ Zipkin Sleuth λ‘ Http νκ²½μ λΆμ° μΆμ μ€μ΅ Sleuth λ‘ Messaging νκ²½μ λΆμ° μΆμ μ€μ΅ μ€μ΅μ λν μμ€μ½λλ₯Ό νμΈνμκ³ μΆλ€λ©΄ μ€μ΅ githubμμ νμΈνμ€ μ μμ΅λλ€. Messaging νκ²½ μμμ λΆμ° μΆμ μ€μ΅ μ§λ μκ° μ°λ¦¬λ HTTP νκ²½μμμ λΆμ° μΆμ μ λν΄μ μμ보μλ€. λ€μ νλ² κ°λ΅μ μΈ μν€ν μ²μ λν΄μ νμΈν΄λ³΄μ μ μν€ν μ²λ₯Ό ꡬλΆνμλ©΄ 2κ°μ λΆλΆμΌλ‘ λλ μ μλ€. HTTP API Messaging μ΄λ²μλ HTTP.. 2022. 5. 1. [Distributed Tracing] HTTP νκ²½μμμ λΆμ° μΆμ μ€μ΅νκΈ° λ³Έ κΈμ λ§μ΄ν¬λ‘μλΉμ€μ λΆμ° μΆμ μ리μ¦λ‘ μ΄λ‘ κ³Ό μ€μ΅μ΄ ν¨κ» ν¬ν¨λ μ리μ¦μ λλ€. μλ λͺ©μ°¨μ νμλ κΈμ λͺ¨λ μ°Έκ³ νλ©΄ μ’μ΅λλ€. λͺ©μ°¨ Distributed Tracing, λΆμ° μΆμ μ΄λ? Spring Cloud Sleuth μ Zipkin Sleuth λ‘ Http νκ²½μ λΆμ° μΆμ μ€μ΅ Sleuth λ‘ Messaging νκ²½μ λΆμ° μΆμ μ€μ΅ μ€μ΅μ λν μμ€μ½λλ₯Ό νμΈνμκ³ μΆλ€λ©΄ μ€μ΅ githubμμ νμΈνμ€ μ μμ΅λλ€. Spring Cloud Sleuth λ₯Ό μ΄μ©ν HTTP νκ²½μ λΆμ° μΆμ μ΄λ²μ μ§λ μκ°μ μμ보μλ λΆμ° μΆμ μ λν μ€μ΅μ μ§νν΄λ³΄λ € νλ€. μ°μ κ°λ΅μ μΈ μν€ν μ²λ λ€μκ³Ό κ°λ€ μ μν€ν μ²λ₯Ό ꡬλΆνμλ©΄ 2κ°μ λΆλΆμΌλ‘ λλ μ μλ€. HTTP API Messaging.. 2022. 5. 1. λ€νμ±μ μν instanceof λ₯Ό Generic μΌλ‘ μ κ±°νλ λ°©λ² λͺ©μ°¨ μλ‘ instanceof λ? μ½λμμ instanceof λ₯Ό λ껴보μ Generic μ μ΄μ©νμ¬ μ°μνκ² μ κ±°νκΈ° κ·ΈλΌμλ μ‘΄μ¬νλ λ¬Έμ μ νμ§λ§? μλ‘ μλ°μμ λ€νμ±μ μ΄μ©ν κ°μ²΄μ§ν₯μ νλ‘κ·Έλλ°μ νλ€λ³΄λ©΄ μ’ μ’ νΉμ κ°μ²΄κ° μ§μ λ μ νμ μΈμ€ν΄μ€μΈμ§ νμΈν΄μΌ νλ κ²½μ°κ° μλ€. κ·Έ κ²½μ° μ°λ¦¬λ μ¬λ¬κ°μ§ μ νμ§κ° μμ§λ§, μ€λμ instanceof μ λν΄ μ§μ€νκ³ μ΄μΌκΈ°ν΄λ³΄λ € νλ€. λ€νμ±μ μ΄μ©ν νλ‘κ·Έλλ°μ νλ€ λ³΄λ©΄ νΉμ νμΌλ‘ λ³ννκΈ° μν΄ λͺκ°μ§ μμ μ ν΄μΌ νλλ°, κ·Έμ€ λνμ μΈ κ²μ΄ λ°λ‘ instanceof μ°μ°μμ΄λ€. instanceof λ? μμ λ§νλ― Java μμλ μ΄λ€ κ°μ²΄μ νΉμ type μ λν΄μ λμΌν type μΈμ§ νμΈν μ μλ μ°μ°μ instanceof μ°μ°μ.. 2022. 4. 3. [μ‘°κΈ λ κΉμ Java] JVMμ Runtime Data Area, Execution Engine, Garbage Collection μ λν΄μ μλ°λ₯Ό 곡λΆν΄λ³΄μλ€λ©΄ μ΅ν λ€μμ JVM, Java Virtual Machine μ λν΄μ μ΄μΌκΈ°ν΄λ³΄λ € νλ€. λ§μ°νκ² JVM μ΄ λμνκ³ JVMμ΄ μκΈ° λλ¬Έμ νλ«νΌμ λ 립μ μ΄λ©° Garbage Collection μΌλ‘ μ₯μ μ μ»μ μ μλ€κ³ μκ°νλ μ¬λλ€μ΄ λ§μ κ²μ΄λ€. μ€λμ JREμ ꡬμ±μμμΈ JVMμ΄ μ΄λ»κ² ꡬμ±λκ³ Garbage Collection μ΄ μ΄λ€ λ°©μμΌλ‘ λμνλμ§ μμλ³Ό κ²μ΄λ€. JVM μ΄λ? μ§λ 2λ²μ μκ°μ κ±°μ³ μ°λ¦¬λ Java Bytecodeμ Java ClassLoader μ λν΄μ μμ보μλ€. μ§λ μκ°μλ μ΄λ»κ² μλ° νμΌμ΄ μ»΄νμΌλμ΄ ν΄λμ€ νμΌλ‘ λ³νμ΄ λκ³ , μ΄λ»κ² ν΄λμ€λ‘λμ μν΄μ λμ μ μ¬λλ©° verification μ μννλμ§ μμ보μλ€. μ€λμ κ·Έ μ΄ν.. 2021. 12. 5. [μ‘°κΈ λ κΉμ Java] JREμ Classloader μ λν΄ μμ보μ μ€λμ JREμ ν΅μ¬ ꡬμ±μμμΈ Classloaderμ λν΄μ μμλ³΄λ € νλ€. μ§λ μκ° μ°λ¦¬λ Java Bytecode μ λν΄μ μμ보μλ€. [μ‘°κΈ λ κΉμ Java] Java Bytecode λ₯Ό μμ보μ (μλ°λ₯Ό μ»΄νμΌνλ©΄ μ΄λ€ μΌμ΄ μΌμ΄λ κΉ?) μ°λ¦¬λ λ§μ μκ° Javaλ₯Ό μ΄μ©ν΄μ λ€μν μννΈμ¨μ΄λ₯Ό κ°λ°νλ©΄μ λ€μλ μλ¦¬κ° μλ€. Javaλ JVM μ΄ μκΈ° λλ¬Έμ νλ«νΌμ μ’ μμ μ΄μ§ μκ³ μ΄μμ±μ΄ λ°μ΄λλ€. κ·Έ μ΄μ μ λν΄μ μκ°ν΄λ³Έ κ²½ wonit.tistory.com μ°λ¦¬κ° .java νμΌμ μ»΄νμΌνλ€λ©΄ .class λΌλ λ°μ΄νΈ μ½λλ‘ λ³νμ΄λκ³ JVMμ΄ ν΄λΉ class νμΌμ λμ μΌλ‘ μ€ννλ κ³Όμ μμ κ°μ₯ μ€μν κ²μ΄ λ°λ‘ ClassLoader μ΄λ€. Java ClassLoader Java.. 2021. 12. 2. [μ‘°κΈ λ κΉμ Java] Java Bytecode λ₯Ό μμ보μ (μλ°λ₯Ό μ»΄νμΌνλ©΄ μ΄λ€ μΌμ΄ μΌμ΄λ κΉ?) μ°λ¦¬λ λ§μ μκ° Javaλ₯Ό μ΄μ©ν΄μ λ€μν μννΈμ¨μ΄λ₯Ό κ°λ°νλ©΄μ λ€μλ μλ¦¬κ° μλ€. Javaλ JVM μ΄ μκΈ° λλ¬Έμ νλ«νΌμ μ’ μμ μ΄μ§ μκ³ μ΄μμ±μ΄ λ°μ΄λλ€. κ·Έ μ΄μ μ λν΄μ μκ°ν΄λ³Έ κ²½νμ΄ μλκ°? μ€λμ μμ JVMκ³Ό μ΄μμ±μ μ΄ν΄νκΈ° μν΄ κΌ μμμΌ νλ Java Bytecode μ λν΄μ μμλ³΄λ € νλ€. Java Bytecode, μλ° λ°μ΄νΈμ½λ μ°λ¦¬λ Java μννΈμ¨μ΄λ₯Ό κ°λ°νκΈ° μν΄μ JDKλ₯Ό μ€μΉνκ³ Java μννΈμ¨μ΄λ₯Ό μ€νμν€κΈ° μν΄μ JRE λ₯Ό μ€μΉνλ€. λν κ°λ°μ νλ©΄ μ€ν κ²°κ³Όλ₯Ό νμΈνκΈ° μν΄μ Compile κ³Όμ μ κ±°μΉκ² λλλ°, μ΄ μ»΄νμΌμ λ°λ‘ JDKλ JRE μ ν¨κ» ν¬ν¨λλ javac.exe μ€ννμΌμ΄ μννλ κ²μ΄λ€. μ΄λ κ°λ°μκ° μμ±ν .java νμΌμ .. 2021. 11. 25. μ΄μ 1 2 3 4 5 Β·Β·Β· 10 λ€μ