본문 바로가기
Blog/TIL

2025-02-03 (월)

by 코젼 2025. 2. 3.
728x90
반응형

Reflection

동적으로 객체의 Property 와 Method 에 접근할 수 있는 방법

  • Property: 멤버 변수 정보
    보통 객체의 Property, Method 에 접근할 때는 컴파일 과정에서 찾아내 해당 객체가 존재함을 보장하지만, 런타임 과정에서만 알 수 있거나 타입과 관계없이 객체를 다루어야 하는 경우가 있다.
  • Json 직렬화 라이브러리: 어떤 객체든지 간에 Json 으로 변환할 수 있어야 함.

    Library

  • java.lang.reflect package
    • Kotlin Class 는 컴파일 과정에서 자바 바이트 코드로 변환되기 때문에 Kotlin 에서도 java package 호환됨.
  • kotlin.reflect package
    • java 에 존재하지 않는 Property 나 Nullable 한 타입에 대한 Reflection 을 제공함.
    • Kotlin 의 기능(확장 함수, 람다, 데이터 클래스 등) 에 최적화됨.
특징 java.lang.reflect kotlin.reflect
언어 Java Kotlin
주요 클래스 Class<T>, Method, Field, Constructor<T> KClass<T>, KFunction<R>, KProperty<T>
함수 접근 Method.invoke(instance, args...) KFunction.call(instance, args...)
필드 접근 Field.get(instance), Field.set(instance, value) KProperty.get(instance), KMutableProperty.set(instance, value)
Kotlin 지원 한정적 (Kotlin의 확장 함수, 프로퍼티 등을 직접 다루기 어려움) Kotlin 특화 기능 지원 (ex. 확장 함수, 람다 등)

롤링 업데이트

무중단 배포 방식
3개 이상일 때 사용자 요청 시 호환성 문제 발생

  • A 반영 O
  • B 반영중
  • C 반영 X
  • ) 사용 중인 인스턴스에 트래픽이 몰릴 수 있음.

블록그린전략은 자원이 2배!
카나리 배포도 있음 > 네트워크 트래픽 제어 필요하고, 지원하는 배포 툴을 사용하거나 커스텀 해야함.

728x90
반응형

'Blog > TIL' 카테고리의 다른 글

2025-02-05 (수)  (0) 2025.02.05
2025-02-04 (화)  (2) 2025.02.04
2025-01-22 (수)  (0) 2025.01.22
2025-01-21 (화)  (1) 2025.01.21
2025-01-20 (월)  (1) 2025.01.20

댓글