목록2025/03 (3)
성장기록지

안드로이드의 이미지 라이브러리에 자주 활용되는 LRU Cache에 대해 자세히 알아보고자 한다.일반적인 알고리즘 개념부터 코틀린에서 어떻게 구현되어있는지까지 살펴보자.LRU 알고리즘의 개념가장 오랫동안 사용되지 않은 데이터를 우선적으로 제거하는 방식이다. (Least Recently Used Algorithm) 정해진 capacity 안에서 최근에 사용되어진 데이터를 가장 앞에 보내고, capacity가 꽉 찼을 때 새로운 값이 들어온다면가장 오랜기간 사용되지 않은 데이터를 삭제하고 새로운 값을 넣는 방식이다.아래 그림과 같이 테이블 안에 있는 값이 get이나 put이 되면 최상단으로 불러오게 하고,테이블이 꽉 찼을 때 새로운 값이 들어온다면 가장 오래된 값을 제거하는 모습을 볼 수 있다. (Fig 7..

MVP 패턴이전에 설명한 MVC 패턴에서 Controller를 Presenter로 교체한 것이다. 흐름은 다음과 같다.1. User가 Input을 준다.2. View는 Presenter에게 Event를 전달한다.3. Presenter는 Model을 조작하고, 데이터 값을 받아온다.4.Presenter는 VIew에게 응답을 알려준다.(Notify)5. View를 통해 ui로 표시하게 된다.Android에서 MVP 패턴 적용하기 (예제)아래와 같이 Contract Interface 안에 View와 Presenter 인터페이스를 만들 수 있다. 사진과 같이 상속을 받아서 내부에서 구체적으로 구현을 하게 된다.아래 버튼은 클릭시 Presenter에게 이벤트를 알려주게 되는 예시 MVP 패턴 적용시 장,단점장점역..

MVC의 의미란?MVC 는 Model, View, Controller의 약자이다. 하나의 애플리케이션, 프로젝트를 구성할 때 그 구성요소를 세가지의 역할로 구분한 패턴이다.왜 MVC가 탄생하게 되었을까 ?과거의 프로그래머들은 코드가 많아질수록 복잡해져서 코드 파악도 힘들어지고, 수정 할 때마다 많은 코드를갈아엎어야 했다 -> 유지보수가 힘들었다.그러다가 프로그래머들이 코드를 짜면서 특정 패턴대로 코드를 짜면유지보수가 편한것을 찾아내고, 그 패턴을 하나의 공식처럼 만든것이다. 요약하자면 MVC는 유지보수가 편해지는 코드 구성 방식이다. MVC 패턴 예시 사용자가 구글에 검색어를 입력하면,Controller를 통해 Model에 검색 결과를 달라고 요청한다. 검색 결과를 받은 Controller는 View에게..