| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- android designsystem
- builderPattern
- designPattern
- Abstract Factory
- 코루틴
- 빌터패턴
- Observer Pattern
- 추상 팩토리
- 팩토리 메소드
- Singleton
- Kotlin
- 추상팩토리패턴
- 코틀린
- 안드로이드 디자인시스템
- define
- Functional Programming
- compose
- ㅋㅁ
- material3
- Design Pattern
- 디자인패턴 #
- factory method
- ㅓ
- 싱글톤
- PrototypePattern
- 프로토타입 패턴
- 디자인패턴
- 옵저버 패턴
- 함수형프로그래밍
- Coroutines
- Today
- Total
목록2025/11 (4)
오늘도 더 나은 코드를 작성하였습니까?
코틀린의 sequence List, Set과 같은 컬렉션이랑 비슷한 개념이지만, 필요할 때마다 값을 하나씩 계산하는 지연(lazy) 처리를 한다. - 요구되는 연산을 최소한으로 수행한다.- 무한정이 될 수 있다.- 메모리 사용이 효율적이다.val seq = sequence { // this : SequenceScope yield(1) yield(2) yield(3)}fun main() { for (num in seq) { print(num) }} 수신 객체 지정 람다 함수 사용 ( susepnd SequenceScope.() -> Unit )숫자가 미리 생성되는 대신 필요할 때마다 생성된다는 것이 핵심이다. 시퀀스의 작동방식 val seq = sequence { ..
정의알고리즘(행위)군을 캡슐화하여 각각의 서로 교환 가능하게 만들고, 런타임에 클라이언트가 사용할 알고리즘을 선택할 수 있도록 하는 디자인 패턴입니다. 오리 시뮬레이션 게임 구현하기 날수있는 오리를 만들기! 상속 부모 클래스인 Duck에 Fly() 함수를 추가한다. 문제점- 날수 없는 하위 오리 클래스들은 아무것도 하지 않도록 불필요한 오버라이드한 함수를 가지게됨.- 모든 오리의 나는 행동을 알수가 없음. - 서브클래스에서 코드 중복이 발생할 수 있음.- 부모 클래스의 코드를 변경시 원하지 않은 문제가 일어날 수 있음.- 런타임시 행동을 변경할 수 없음.인터페이스를 이용문제점- 여전히 코드의 재사용성이 떨어지고, 중복이 발생함.- 날수 있는 오리중에서도 날아다니는 방식이 서로 다를 수 있다는 문제 애..
아래와 같은 데이터 처리 과정이 있다고 가정해보자.fun onCreate() { val news = getNewsFromApi() val sortedNews = news.sortedByDescending { it.publishedAt } view.showNews(sortedNews)} 1. api를 통해서 news 데이터를 받아온다.2. 발행순서대로 정렬한다.3. 뷰를 통해 보여준다. 안드로이드에서는 하나의 앱에서 뷰를 다루는 스레드가 단 하나만 존재한다.- MainThread (UiThread)라 부른다.- 앱에서 가장 중요한 스레드로 절대로 블로킹 되어선 안된다.- 블로킹 된다면, 앱 크래시가 발생(비정상 종료) 즉, 위의 코드는 정상 val news = getNewsFromApi()..
1. 코루틴의 정의Coroutine- co-(함께)와 routine(루틴)의 합성어로, 여러 루틴이 협력(cooperative)적으로 실행을 제어하는 프로그래밍 패턴 코루틴은 실행을 일시 중지했다가 다시 재개할 수 있는 협력 루틴으로, 복잡한 비동기 프로그래밍을 간소화하는 데 사용됩니다. 일반적인 서브루틴(subroutine)과 달리, 실행 흐름을 협력적으로 제어할 수 있으며, 이를 통해 효율적인 자원 관리와 코드 간결화를 가능하게 한다. 스레드 내에서 동작하기 때문에 메모리 사용량도 줄일 수 있습니다. 이는 여러 작업을 효율적으로 관리하기 위한 동시성(concurrency) 처리 방식입니다 2. 일시 중지했다가 다시 재개할 수 있는 협력 루틴코루틴에 대해서 알아보기 위해, 일반적인 함수(루틴)의 실행..
