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 |
댓글