본문 바로가기

Module3

[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.
[SWM Mobile] 모듈화 (Modularization, 5/26) 주제: 클린 아키텍처를 위한 모듈화 저희 프로젝트는 App -> domain/feature -> common -> foundation으로 기준으로 layer를 나눴으며 총 5개의 모듈을 잡았으며 아래와 같이 모듈화 하기로 결정하였습니다. (추후에 추가될 예정) 세팅 외에도 모듈화와 관련된 3가지를 배울 수 있었습니다. 1. 의존성의 역전과 순환참조 모듈화의 이유는 의존성을 낮추기 위함도 포함되어 있습니다. 예를 들어 foundation -> home 과 같이 의존성 역전이 일어난다면 어떻게 될까요? 바로 순환참조가 나타나게 됩니다. [Android Module] 순환참조 (Circular Dependency)란? 순환 참조란 두 가지 이상의 객체가 서로에 대한 참조 상태를 가지고 있을 때 발생하며, 순환.. 2022. 5. 28.
[Android Module] Android 모듈화 왜 하는 걸까? 모듈이란? 안드로이드 공식홈페이지에 따른 설명에 의하면 아래와 같습니다. 모듈은 소스 파일 및 빌드 설정으로 구성된 모음이며, 이를 통해 프로젝트를 별개의 기능 단위로 분할할 수 있습니다. 프로젝트에는 하나 이상의 모듈이 포함될 수 있으며, 하나의 모듈이 다른 모듈을 종속 항목으로 사용할 수 있습니다. 각 모듈을 독립적으로 빌드, 테스트, 디버그할 수 있습니다. 위의 설명처럼 모듈은 소스 파일과 빌드 설정으로 구성된 모음이며 저희가 처음 프로젝트를 생성 시 만들어지는 app 또한 모듈의 한 종류입니다. 안드로이드 스튜디오에서 [File -> New -> New Module] 또는 [app클릭 -> New -> Module] 로 모듈을 추가할 수 있습니다. 모듈을 생성할 때의 대표적인 3가지를 설명하겠습니.. 2022. 5. 28.