| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- factory method
- Design Pattern
- 디자인패턴 #
- 빌터패턴
- kmp
- 추상 팩토리
- 팩토리 메소드
- kotlin multiplatform
- Coroutines
- 추상팩토리패턴
- ㅋㅁ
- 디자인패턴
- 안드로이드 디자인시스템
- builderPattern
- 함수형프로그래밍
- define
- material3
- Abstract Factory
- 옵저버 패턴
- PrototypePattern
- Kotlin
- 프로토타입 패턴
- 코루틴
- Functional Programming
- Observer Pattern
- android designsystem
- 코틀린
- 코틀린멀티플랫폼
- compose
- designPattern
- Today
- Total
목록분류 전체보기 (367)
오늘도 더 나은 코드를 작성하였습니까?
정의 State Pattern은 객체의 내부 상태에 따라 행동이 바뀌어야 할 때 사용하는 행동 디자인 패턴입니다. 객체가 마치 자신의 클래스를 바꾼 것처럼 보이게 만드는 게 핵심이다. 언제 사용하는지? when이나 if-else로 상태를 분기하는 코드가 여러 메서드에 흩어져 있을 때가 가장 명확한 신호입니다. 예를 들어 결제 화면에서 PENDING, PROCESSING, SUCCESS, FAILED 상태마다 버튼 클릭, 화면 이탈, 재시도 동작이 다르다면 — 각 메서드마다 when (state) 분기가 반복됩니다. 상태가 하나 추가될 때마다 모든 메서드를 수정해야 하니 OCP(개방-폐쇄 원칙)를 위반하게 되고, 수정범위가 많아진다. "그냥 enum class XXXStatus로 충분하지 않나?" 싶을 수..
Room Offline CacheRoom을 SSOT(Single Source of Truth)로 사용한다.UI는 항상 Room에서만 읽고, 네트워크는 Room을 업데이트하는 용도로만 씁니다. 오프라인 자동 지원로딩/에러와 데이터 표시 분리 가능네트워크 실패해도 캐시된 화면 유지화면 회전, 다른 화면에서 돌아와도 즉시 표시@Entity(tableName = "orders")data class OrderEntity( @PrimaryKey val id: String, val amount: Long, val status: String, val createdAt: Long, // --- 캐시 메타데이터 --- val cachedAt: Long, // 캐시 시각 ..
Cache란?캐시(Cache)는 자주 사용되는 데이터를 빠르게 접근할 수 있는 임시 저장 공간에 보관하는 기술입니다. 원본 데이터 소스(디스크, 네트워크, DB 등)보다 접근 속도가 빠른 곳(메모리 등)에 데이터를 두어 반복적인 요청의 응답 시간을 단축시킵니다. Android에서는 LruCache(메모리 캐시), OkHttp Cache(네트워크 응답 캐시), Room 등을 활용해 성능과 사용자 경험을 개선합니다. in-memory cacheIn-memory cache는 앱 프로세스의 RAM에 데이터를 보관하는 방식으로, 접근 속도가 매우 빠르지만 앱 종료나 OS의 메모리 회수 시 사라집니다. 용도에 따라 적절한 도구를 선택하는 것이 핵심입니다. 1. 이미지 캐싱 (Coil / Glide)- 이미지는 크기..
전력망 60Hz에서 시작미국/한국 전력은 60Hz, 유럽은 50Hz1930년대 아날로그 TV가 화면 새로 고침을 전력 주파수에 맞춤 * 60Hz => 1초에 60번 진동인간 시각과 우연히 맞음프레임률인식24 fps영화 (모션 블러로 보정)30 fps가끔 끊김60 fps대부분 부드럽다고 인식120 fps+한계효용 급감인간 시각 처리 한계가 60~80Hz 근처라, 60Hz가 "부드러움의 임계선"과 자연스럽게 맞았음.1개의 프레임이 렌더링 되는 시간 1초 = 1,000 ms 이고 프레임은 1개의 화면1,000 ms / 60 frames => 16.666... ms안드로이드의 16.6ms — Project Butter (2012)안드로이드에서 16.6ms가 공식적인 성능 목표가 된 건 2012년 Google I..