일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 책
- 알고리즘
- kotlin강좌
- ReactiveProgramming
- mockito
- 코틀린
- Coroutine
- 글또
- Compose
- 커스텀상태
- 안드로이드강좌
- k8s
- Gradle
- Rxjava
- 안드로이드
- 스레드
- 안드로이드스튜디오
- 병렬프로그래밍
- Kotlin
- 자바
- viewmodel
- android
- 병럴프로그래밍
- 코루틴
- g 단위테스트
- 알게되는
- theming
- 디자인패턴
- 테스트
- 회고
- Today
- Total
목록코틀린 (6)
선생님, 개발을 잘하고 싶어요.
다루는 거 영역 특화 언어, DSL, Domain-Specific Language 수신 객체 지정 람다, invoke 관례 API에서 DSL로 클래스간 상호작용을 이해하기 쉽고 명확하게 표현할 수 있게 만드는 것이 목표 2부에서 살펴본 내용은 API를 깔끔하게 작성할 수 있게 돕는 코틀린 특성 깔끔하다는 것은? 코드를 읽을 때, 어떤 일이 벌어질지 명확하게 이해할 수 있어야함. 이를 위해서 이름과 개념의 선택을 잘 해야한다. 코드가 간결해야함, 불필요한 구문이나 보일러플레이트가 가능한 적어야한다. 개념적 DSL? 범용 프로그래밍 언어: 모든 문제를 충분히 풀 수 있는 기능을 제공 영역 특화 언어: 특정 과업 또는 영역에 초점을 맞추고 그 영역에 필요하지 않은 기능을 제거, (e.g. SQL, 정규식) D..
다루는 거 애노테이션(annotation) 라이브러리가 요구하는 의미를 클래스에게 부여 리플렉션(reflection) 실행 시점에 컴파일러 내부 구조를 분석 애노테이션 메타데이터를 선언에 추가해 애노테이션을 처리하는 도구가 컴파일 시점이나 실행 시점에 적절한 처리 애노테이션 인자로 원시 타입 값, 문자열, enum, 클래스 참조, 다른 애노테이션 클래스 그리고 이러한 배열이 들어갈 수 있다. 애노테이션 인자는 컴파일 시점에 알 수 있어야한다. 코틀린 한 소스코드의 선언을 컴파일한 결과가 여러 자바 선언과 대응하는 경우가 있다. (e.g. var로 선언한 property는 getter, setter에 대응된다) 사용 지점 대상(use-site target) 선언으로 애노테이션을 붙일 요소를 정할 수 있다...
다루는 거 코틀린 제네릭과 자바 제네릭의 유사한 부분 런타임 파라미터 타입 소거 - type erasure 실체화된 타입 파라미터 - reified type 타입 파라미터의 상위하위 관계에 따른 두 제네릭 타입의 상위하위 관계, 변성 - variance: 변성 → 타입 인자의 상하 관계에 따라 제네릭 타입의 상하 관계가 어떻게 처리되는가? 에 대한 개념 invariant: 무변성 → 타입 인자의 상하 관계가 제네릭 타입의 상하 관계와 관련 없음 covariant: 공변성 → 타입 인자의 상하 관계가 제네릭 타입의 상하 관계와 같음 contravariance: 반공변성 → 타입 인자의 상하 관계와 제네릭 타입의 상하 관계가 역전됨 선언 지점 변성 - declaration-site variance 사용 지점..
다루는 거 고차 함수: 람다를 인자로 받거나 반환하는 함수 인라인 함수 비로컬 return, 레이블, 로컬 return 무명 함수 고차함수 다른 함수를 인자로 받거나 함수를 반환하는 함수 코틀린으로 말하면, 람다나 함수 참조를 인자로 넘길 수 있거나 람다나 함수 참조를 반환하는 함수 코틀린에서 함수 변수 표현을 하기 위해서 람다, 함수 참조를 사용한다고 5장에서 말함. 인자로 받은 함수를 호출하는 구문은 일반 함수를 호출하는 구문과 같다. 컴파일된 코드에서 함수 타입은 일반 인터페이스로 표시된다. Function0, Function1 … 함수 타입 파라미터도 디폴트 값을 지정하거나 nullable 함수 타입을 만들 수 있다. 변수, 프로퍼티, 파라미터 등을 사용해 데이터 중복을 없애는 것과 같이, 람다를..