일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 디자인패턴 #
- 팩토리 메소드
- ㅓ
- 옵저버 패턴
- r
- builderPattern
- Abstract Factory
- El
- 빌터패턴
- 추상팩토리패턴
- 프로토타입 패턴
- Singleton
- designPattern
- 추상 팩토리
- Design Pattern
- Observer Pattern
- 코틀린
- Kotlin
- ㅋㅁ
- F
- a
- 싱글톤
- factory method
- 함수형프로그래밍
- PrototypePattern
- Functional Programming
- 디자인패턴
- Today
- Total
목록분류 전체보기 (327)
오늘도 더 나은 코드를 작성하였습니까?
Room은 SQLite에 대한 추상화 계층을 제공하여 SQLite의 모든 기능을 활용하면서 쉬운 데이터베이스 접근을 허용한다. 상당한 양의 구조화된 데이터를 처리하는 앱은 데이터를 로컬로 유지하여 대단한 이점을 얻을 수 있습니다 가장 일반적인 사용 사례는 관련 데이터를 캐싱하는 것입니다. 이런 방식으로 기기가 네트워크에 액세스할 수 없을 때 오프라인 상태인 동안에도 사용자가 여전히 콘텐츠를 탐색할 수 있습니다. 나중에 기기가 다시 온라인 상태가 되면 사용자가 시작한 콘텐츠 변경사항이 서버에 동기화됩니다. Room은 이러한 문제를 자동으로 처리하므로 SQLite 대신 Room을 사용할 것을 적극적으로 권장된다. 의존성 추가. dependencies { def room_version = "2.2.5" imp..
코틀린은 산술 연산자와 동일하게 원시 타입뿐 아니라 모든 객체에 대해 비교 연산을 수행할 수 있다. equals나 compareTo 를 호출해야 하는 자바와 달리 코틀린은 == 비교 연산자를 직접 사용할 수가 있어서 간결하게 코드를 작성할 수 있다. 동등성 연산자: equals class Point(val x: Int, val y: Int){ override fun equals(other: Any?): Boolean { if(other === this) return true // 최적화: 파라미터가 this와 같은 객체인지 확인. if(other !is Point) return false // 파라미터 타입을 검사한다. return x == other.x && y == other.y // 스마트 캐스트이..
코틀린은 어떤 언어 기능이 정해진 사용자 작성 함수와 연결되는 경우가 몇 가지 있다. 코틀린에서는 이런 언어 기능이 어떤 타입(class)과 연관되는 것이 아니라 특정 함수 이름과 연관된다. 예) 특정 클래스 안에 plus라는 이름의 메서드를 정의하면 그 클래스의 인스턴스에 대해 + 연산자를 사용할 수 있다. 언어의 기능( + 연산자 사용) 미리 정해진 이름의 함수(plus)를 연결해주는 기법을 코틀린에서는 관례(Convention)이라 한다. 언어기능을 타입에 의존하는 자바와 달리 코틀린은 함수의 이름에 의존한다. 이런 관례를 채택한 이유는 기존 자바 클래스를 코틀린 언어에 적용하기 위해서다. 기존의 자바 클래스가 구현하고 인터페이스는 이미 고정돼 있고 코틀린 쪽에서 자바 클래스가 새로운 인터페이스를 ..
널 가능성과 컬렉션 컬렉션 안에 널값을 넣을 수 있는지 여부는 어떤 변수의 값이 널이 될 수 있는지 여부와 마찬가지로 중요하다. 1. List = 리스트 자체는 항상 존재하며, 리스트의 각 원소는 널이 될 수 있다. 2. List? = 리스트가 null 일수는 있지만, 리스트가 참조가 존재한다면 그 원소는 전부 널 일수 없다. 3. List? = 리스트 자체가 널 일수도 있고 리스트가 존재하더라도 그 원소 역시 널 일수 있다. 3번과 같은 리스트는 널 값 검사를 List에 대해서 하고 그 원소를 참조할 때 역시 필요하다. fun addValidNumbers(numbers: List){ var sumOfValidNumbers = 0 var inValidNumbers =0 for(number in numbe..