| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- 리사이클러뷰
- 물리 메모리
- GetX
- viewModelScope
- Android
- apk 빌드 과정
- 프로세스
- 뷰홀더
- NestedScrollView
- 절대 주소
- 플로이드워셜
- 운영체제
- Dispatchers
- 내부 단편화
- flutter
- http 역사
- appcompatactivity
- 상태관리
- 안드로이드
- AAC
- 자이고트
- 데코레이터 패턴
- http발전과정
- DiffUtil
- Kotlin
- AsyncListDiffer
- appcompatacitivity
- 리사이클러뷰풀
- recyclerview
- 디자인 패턴
- Today
- Total
목록분류 전체보기 (77)
hong's android
요청 내역을 객체로 캡슐화해서 객체를 서로 다른 요청 내역에 따라 매개변수화 할 수 있다. 이러면 요청을 큐에 저장하거나 로그로 기록하거나 작업 취소 기능을 사용할 수 있다. 요청을 하는 객체와 요청을 수행하는 객체를 분리할 수 있다. (의존성 분리) 커맨드 패턴을 이용해서 스케쥴러나 스레드풀, 작업큐에 활용할 수 있다. 만약 명령을 실행하는 객체가 다수의 명령어를 실행해야 한다고 생각해보자. Public void setLightOn(Light light){ light.turnOn(); } Public void setLightOn(Light light){ light.turnOff(); } Public void setAlarmOn(Alarm alarm){ alarm.turnOn(); } 한 클래스 안에 실..
Simple factory 단순히 객체를 생성하는 부분을 캡슐화해서 객체를 생성할때 사용한다. 위와 같은 방식으로 캡슐화 해놓으면 여러 클래스에서 팩토리를 사용하게 되는 상황에서 구현을 변경할때 여기저기 변경할 필요가 없다. Simple factory 구현 방법 1.클라이언트는 ProduceFactory를 가진다. 2.ProduceFactory에서 조건에 맞는 Product를 생성해준다. 3.Product를 상위 형식으로 구현하고 서브 클래스로 구체화된 클래스들을 둔다. -> 다형성을 이용해서 항상 factory를 호출하게되면 Product형식을 받을수있게 할수있다. Factory method pattern 사용하는 서브 클래스에 따라 생산되는 객체가 결정되는 디자인 패턴 1. Product와 Facto..
Room이란? 구조화된 데이터를 로컬에 캐시하고 탐색할 수 있도록 SQLite의 추상화 계층을 제공하는 라이브러리 *SQLite : "SQLite는 MyAQL이나 PostgreSQL과 같은 데이터베이스 관리 시스템이지만, 서버가 아니라 응응프로그램에 넣어 사용하는 비교적 가벼운 데이터베이스이다. 구성요소 데이터베이스 클래스 (Database): 데이터베이스를 보유하고 앱의 영구 데이터와의 기본 연결을 위한 기본 액세스 포인트 역할을 합니다. 데이터 항목 (Entities): 앱 데이터베이스의 테이블을 나타냅니다. 데이터 액세스 객체(DAO): 앱이 데이터베이스의 데이터를 쿼리, 업데이트, 삽입, 삭제하는 데 사용할 수 있는 메서드를 제공합니다. Room 사용시 이점 구조화된 데이터를 sql문을 이용해서 ..
Databinding 라이브러리이란? 프로그래밍 방식이 아니라 선언적 형식으로 레이아웃의 UI 구성요소를 앱의 데이터 소스와 결합할 수 있는 지원 라이브러리입니다. 기존에 findViewById()를 사용하면 Null 포인트 오류의 위험이 있다. Databinding은 UI 프레임워크 호출을 삭제할 수 있어 파일이 더욱 단순화되고 유지관리 또한 쉬워진다. 하지만 클래스 파일이 많이 생기고, 빌드 속도가 느려지는 등 단점들도 존재한다 Mvvm 디자인 패턴에서 AAC LiveData와 함께 사용해서 뷰와 뷰모델 간의 의존성을 낮출수 있다. 만악 example.xml을 작성하고 빌드하면 자동으로 관련 binding 클래스가 생긴다. xml에 data 태그를 정의하면 아래와 같이 binding 클래스에 sett..
코루틴 코루틴은 스레드 내부에 실행되는 경량 스레드입니다. Main - safe 한 동시성을 지원하고 콜백보다 가독성이 좋습니다. suspend 함수를 통해서 일시중단 - 재개할 수 있는 여러 진입 지점을 허용합니다. 이를통해 서브루틴들이 협력형으로 번갈아 가며 실행될 수 있다. 협력형으로 동작하기 위해 CPS 패러다임을 사용합니다. CPS(Continuation Passing Style) 패러다임 기본적인 원리는 매개변수로 콜백 인터페이스를 가진 Continuation 객체를 전달합니다. 매개변수를 받은 메소드에선 이를통해 다시 suspend된 메소드를 실행합니다. 결국 매개변수로 Continuation 객체를 전달하며 현재 supend된 시점에서 resume되게 만들어 같은 스레드 내부에서 협력형으로..
데코레이터 패턴이란? 어떤 객체에 기능을 동적으로 추가하는 패턴 문제점 여러 기능들이 나뉘어있는 클래스를 만들기 위해 상속을 이용하여 확장한다면 너무 많은 클래스들이 생긴다. 이를 방지하기 위해서 최상위 클래스에 공통적인 기능들을 정의한다. 하지만 해당 방식은 서브 클래스들이 모두 같은 기능을 상속받아야 하기 때문에 객체의 기능 확장에 유연하지 않다. 정적으로 기능들이 정해져있기 때문에 확장을 하기 위해선 슈퍼클래스에서 받은 것과 코드를 오버라이드한 것만 쓸 수 있다. 여러 조합을 통해서 객체를 만들어야하는 경우, 객체를 동적으로 기능을 추가하거나 삭제해야 하는 경우 데코레이터 패턴을 사용할 수 있다. 서브 클래스를 상속받는 것보다 기능을 더 유연하게 추가할 수 있다. Decorator라는 래퍼클래스를 ..