순환참조1 [Android Module] 순환참조 (Circular Dependency)란? 순환 참조란 두 가지 이상의 객체가 서로에 대한 참조 상태를 가지고 있을 때 발생하며, 순환 참조가 발생하게 되면 서로에 대한 참조가 해제되지 않기 때문에 메모리에서 유지되며 이로 인한 메모리 leak이 발생하게 됩니다. 아래 그림과 같이 빨간 줄이 순환참조를 발생시키는 원인입니다. 코드로 한번 확인해볼까요? class A { val b = B() } class B { val a = A() } fun main() { val a = A() } A가 초기화할 때는 B가 할당되고, B가 초기화될 땐 A가 할당되도록 설정한 후 main에서 객체 A를 생성하였더니 아래와 같은 에러가 발생하게 됩니다. 이러한 문제가 바로 순환참조라고 합니다. 위와 같이 지속적으로 A와 B가 호출되기 때문에 메모리 누수가 발생하는 .. 2022. 5. 29. 이전 1 다음