본문 바로가기

Android

(140)
[Android] 싱글톤(Singleton) 패턴 싱글톤 패턴 최초 한번만 메모리를 할당하고 그 메모리에 인스턴스를 만들어 사용하는 디자인 패턴. 싱글톤 패턴을 사용하는 이유 고정된 메모리 영역을 얻어 사용하며, 최초의 한번만 인스턴스를 만들어 사용하기 때문에 메모리 낭비를 방지. Static 으로 인스턴스를 생성하기 때문에 어디에서든 참조할 수 있어 데이터 공유가 편리하다. 싱글톤 패턴의 문제점 싱글톤 인스턴스를 사용하는 다른 객체간의 결합도가 높아져 객체 지향 설계 원칙에 어긋나게 된다. 멀티 쓰레드 환경에서 동기화 처리 등의 문제가 발생할 가능성이 있다. * 멀티 쓰레드 환경에서는 경합 상태가 발생할 수 있다. 경합 상태란 동일한 자원을 2개 이상의 스레드가 동시에 이용하려고 경합하는 상태이다. 이 때, 인스턴스가 1개 이상 생성되는 경우가 발생할..
[Android] MVC, MVP, MVVM 기본 개념 MVC 패턴 Model + View + Controller Model : 데이터와 데이터를 처리하는 부분 View : UI Controller : 사용자의 입력(Action)을 받고 처리하는 부분 MVC 패턴의 동작 순서 Controller에 사용자의 입력(Action)을 받는다. Controller에서 Action을 확인하고 Model을 업데이트(조작)한다. Controller에서 해당 Data를 보여줄 View를 선택 View는 Model을 사용하여 화면에 보여준다. 이 때, Controller는 View를 선택만하고 업데이트를 시켜주지 않기 때문에 View는 Model을 이용하여 업데이트 하게 된다. View가 업데이트 하는 방법으로는 Model을 직접 사용한다. Model에서 VIew에게 Noti..
[Mockito] Mock 객체 란? Mock 이란? 실제 객체를 다양한 조건으로 인해 제대로 구현하기 어려울 경우 가짜 객체를 만들어 사용하는데, 이를 Mock 객체라 한다. Mock 객체가 필요한 경우. 테스트 작성을 위한 환경 구축이 어려운 경우. 테스트가 특정 경우나 순간에 의존적인 경우. 시간이 걸리는 경우 Mock에 대한 기본적인 분류 개념. 1. 테스트 더블 테스트를 진행하기 어려운 경우 대신해 테스트를 진행할 수 있도록 만들어주는 객체. Mock객체와 유사한 의미, 테스트 더블이 좀더 상위 의미로 사용. 2. 더미 객체(Dummy Object) 단순히 인스턴스화될 수 있는 수준으로만 객체를 구현. 객체가 필요할 뿐 객체의 기능까지는 필요하지 않은 경우에 사용. 3. 테스트 스텁(Test Stub) 더미 객체가 실제로 동작하는 ..
[FireBase] fetch 하는 과정에서의 오류 문제. 개발하던 도중, fetch 하는 과정에서 제대로 된 값이 들어오지 않아 앱이 죽는 오류가 발생. fetch는 제대로 완료(onComplete) 되지만, 저장되는 값 자체는 정상적이지 않는 값이 들어옴. 해결방법. Default 로 저장되는 값을 생성. onComplete 되더라도 제대로 된 값을 가져오지 않기 때문에, setDefaults을 사용하여 default 값을 설정해 주고 그 값을 사용한다. firebaseRemoteConfig.setDefaults(R.xml.default); 해당 선언을 하게되면 값을 제대로 가져오더라도 정상적인 값이 아닐 때 default.xml 을 통해 저장된 기본 값을 가져온다. key1 value1 key2 value2 default.xml에는 firebase에..