본문 바로가기

kotlin16

[Kotlin] 클로저와 표준 함수 let, also, apply, run, with 모든 내용은 이지스퍼블리싱의 Do it! 코틀린 프로그래밍을 바탕으로 정리한 것입니다. Kotlin의 표준 함수 Kotlin 표준 라이브러리에서 제공하는 함수를 이용하면 코드를 더 단순화하고 가독성을 높일 수 있음 이 표준 함수는 람다식과 고차 함수를 이용하여 선언되어 있음 람다식 val 변수 이름: 자료형 = { 매개변수[, ...] -> 람다식 본문 } val sum: (Int, Int) -> Int = { x, y -> x + y } val mul: { x: Int, y: Int -> x * y} val add: (Int) -> Int = { it + 1 } val isPositive: (Int) -> Boolean = { val isPositive = it > 0 isPositive // 반환값 .. 2021. 7. 8.
[Algorithm] 그리디(Greedy) 알고리즘 - Python, Kotlin 모든 내용은 이것이 취업을 위한 코딩테스트다(나동빈 저)의 내용을 정리한 것입니다. 그리디(Greedy) 알고리즘 '탐욕' 알고리즘 → 현재 상황에서 지금 당장 좋은 것만 고르는 방법 ∴ 매 순간 가장 좋아보이는 것을 선택하며, 현재의 선택이 나중에 미칠 영향은 고려하지 않음 이 알고리즘은 기준에 따라 좋은 것을 선택하는 알고리즘이기 때문에 문제에서 '가장 큰 순서대로', '가장 작은 순서대로'와 같은 기준을 제시해줌 → 이 기준은 정렬 알고리즘을 사용했을 때 만족할 수 있으므로 그리디는 정렬 알고리즘과 자주 함께 나온다! [ 알고리즘 순서 ] 해 선택(Selection Procedure) : 지금 당장의 최적의 해를 구하고, 이를 부분 해 집합에 추가함 정당성 검사(Feasibility Check) :.. 2021. 7. 7.
[Kotlin/Coroutine] 코루틴(Coroutine)의 개념과 사용 모든 내용은 Do it! 코틀린 프로그래밍을 바탕으로 정리한 것입니다. 프로세스나 스레드는 해당 작업을 중단(stopped)하고 다른 루틴을 실행하기 위한 문맥 교환을 시도할 때 많은 비용이 듦. 코루틴(Coroutine)은 비용이 많이 드는 문맥 교환없이 루틴을 일시 중단(suspended)하여 비용을 줄일 수 있음. → 운영체제가 스케줄링에 개입하는 과정이 필요하지 않다는 것 & 일시 중단은 사용자가 제어할 수 있음 common 패키지 launch / async : 코루틴 빌더 Job / Deferred : cancellation 지원 Dispatchers : Default는 백그라운드 코루틴을 위한 것이고 Main은 Android,.. 2021. 6. 16.
[Kotlin] 제네릭(Generic) 모든 내용은 Do it! 코틀린 프로그래밍을 바탕으로 정리한 것입니다. 제네릭(Generic) : 클래스 내부에서 사용할 자료형을 인스턴스를 생성할 때 확정하는 것 자료형의 객체들을 다루는 메서드나 클래스에서 컴파일 시간에 자료형을 검색해 적당한 자료형을 선택할 수 있도록 함 → 객체 자료형의 안정성을 높이고, 형 변환의 번거로움이 줄어듦 제네릭의 사용 방법 앵글 브래킷() 사이에 형식 매개변수(하나 이상)를 넣어 선언 형식 매개변수 : 자료형을 대표하는 T와 같이 특정 영문의 대문자로 사용하며 나중에 필요한 자료형으로 대체됨 일종의 규칙처럼 사용되는 이름 (변경가능) E (Element), K(Key), N(Number), T(Type), V(Value), S(두번째), U(세번째), V(네번째)..... 2021. 5. 18.
[Kotlin] 다양한 클래스와 인터페이스 (3) 모든 내용은 Do it! 코틀린 프로그래밍을 바탕으로 정리한 것입니다. 연산자 오버로딩 연산자 오버로딩 → 다형성 오버로딩 : 동일한 클래스 안에서 같은 이름의 메서드가 매개변수만 달리해서 여러 번 정의되는 것 Kotlin 다형성의 오버라이딩, 오버로딩에 관련된 글 확인↑ in 코틀린, 특정 연산자의 역할을 함수로 정의하고 있음 → 일종의 협약(Convention) 연산자에는 일종의 우선순위(Precedence)를 가지고 있음 연산자의 작동 방식 연산자를 사용하는 것 == 관련된 멤버 메서드를 호출하는 것 코틀린 표준 라이브러리 Primitives.kt에 보면 operator 키워드를 사용해 plus() 함수가 다양한 자료형으로 선언되어 있음 +, - 와 같은 연산자는 기본적으로 많은 자료형을 처리하기 .. 2021. 5. 13.
[Kotlin] 다양한 클래스와 인터페이스 (2) 모든 내용은 Do it! 코틀린 프로그래밍을 바탕으로 정리한 것입니다. 데이터 클래스 특정 동작을 가지지 않고 오로지 데이터 저장을 위해 사용한다면 일반적인 클래스가 가지는 구현부가 필요 없음 → 자원의 낭비를 막고자 오로지 데이터 저장에 초점을 맞춘 데이터 클래스 제공 데이터 전달을 위한 데이터 클래스 DTO(Data Transfer Object) : 데이터 전달을 위한 객체 POJO(Plain Old Java Object) : 자바에서 부르는 데이터 전달을 위한 객체 DTO는 구현 로직을 가지고 있지 않고 순수한 데이터 객체를 표현함 속성과 속성을 접근하고자 하는 getter/setter를 가짐 추가적으로 toString(), equals() 등과 같은 데이터를 표현하거나 비교하는 메서드를 가짐 DT.. 2021. 5. 10.
728x90