| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- Functional Programming
- PrototypePattern
- 코루틴
- Coroutines
- compose
- builderPattern
- 빌터패턴
- 함수형프로그래밍
- 옵저버 패턴
- ㅓ
- 추상 팩토리
- factory method
- define
- 안드로이드 디자인시스템
- 코틀린
- 프로토타입 패턴
- 디자인패턴
- Abstract Factory
- 디자인패턴 #
- Singleton
- 싱글톤
- Design Pattern
- material3
- ㅋㅁ
- designPattern
- Observer Pattern
- 팩토리 메소드
- android designsystem
- 추상팩토리패턴
- Kotlin
- Today
- Total
목록전체 글 (338)
오늘도 더 나은 코드를 작성하였습니까?
구조 분해 선언(destructuring declaration) 복합적인 값을 분해해서 여러 다른 변수를 한꺼번에 초기화할 수 있다. data class Point(val x: Int, val y: Int) fun main() { val p = Point(10,20) val (x, y) = p println(x) println(y) } 내부에서 구조 분해 선언은 관례를 사용한다. 구조 분해 선언의 각 변수를 초기화하기 위해 componentN이라는 함수를 호출한다. N은 구조 분해 선언에 있는 변수 위치에 따라붙는 번호다. val (a, b) = p ------> val a = p.component1() val b = p.component2() data 클래스의 주 생성자에 들어있는 프로퍼티에 대해서는 ..
컬렉션을 다룰 때 가장 많이 쓰는 연산은 인덱스를 사용해 원소를 읽거나 쓰는 연산과 어떤 값이 컬렉션에 포함되어 있는지 확인하는 연산이다. 인덱스로 원소에 접근: get set 코틀린에서는 인덱스 연산자도 관례를 따른다. 인덱스 연산자를 사용해 원소를 읽는 연산은 get으로 변환되고 원소를 쓰는 연산은 set으로 변환된다. data class Point(val x: Int, val y: Int) operator fun Point.get(index: Int): Int{ return when(index){ 0 -> x 1 -> y else -> throw IndexOutOfBoundsException("Invalid coordinate $index") } } fun main() { val p = Point(..
뷰 ( View ) - 허용된 데이터를 제한적으로 보여주기 위해서 하나 이상의 테이블에서부터 유도된 가상 테이블입니다. 장점 1. 논리적 독립성을 제공합니다. 2. 데이터 접근 제어로 보안 가능합니다. - 뷰를 통해 접근하기 때문에 뷰에 나타나지 않는 데이터를 접근할 수 없다.. 3. 사용자의 데이터 관리를 간단하게 합니다. 4. 하나의 테이블로 여러 개의 다른 뷰를 정의할 수 있습니다. 단점 1. 독자적인 인덱스를 가질 수 없습니다. 2. 한 번 정의된 뷰는 변경할 수 없으며, 삭제한 후에 다시 생성해야 합니다. 3. 삽입, 삭제, 갱신 연산에 많은 제약이 따릅니다. 2.1.0 이상 버전의 Room 지속성 라이브러리는 SQLite 데이터베이스 뷰를 지원하므로 쿼리를 클래스로 캡슐화할 수 있습니다. Ro..
서로 관련이 있는 세 개 이상의 테이블 집합을 쿼리 해야 할 수도 있습니다. 이 경우 테이블 간에 중첩된 관계를 정의합니다. 음악 스트리밍 앱 예에서 모든 사용자, 각 사용자의 모든 재생목록 및 각 사용자의 각 재생목록에 있는 모든 노래를 쿼리 하려고 한다고 가정해 보겠습니다. 사용자는 재생목록과 1 : N 관계가 있으며 재생목록은 노래와 N : N 관계가 있습니다. 다음 코드 예에서는 이러한 항목을 나타내는 클래스뿐만 아니라 재생목록과 노래 간의 다대다 관계에 관한 상호 참조 테이블을 보여줍니다. @Entity data class User( @PrimaryKey val userId: Long, val name: String, val age: Int ) @Entity data class Playlist(..
