본문 바로가기

Program Language12

[Do it! 코틀린 프로그래밍] 11. 코루틴과 동시성 프로그래밍 11. 코루틴과 동시성 프로그래밍 1. 동시성 프로그래밍 프로그램은 작업 수행 방식에 따라 순서대로 작업을 수행하여 1개의 루틴을 완료한 후 다른 루틴을 실행하는 동기적(synchronous) 방식과 여러 개의 루틴이 선행 작업의 순서나 완료 여부와 상관없이 실행되는 비동기적(asynchronous) 방식으로 나뉜다. 코틀린은 비동기 프로그래밍을 위해 코루틴(Coroutine) 을 서드파티가 아닌 기본으로 제공한다. 코루틴을 사용하면 넌블로킹(Non-blocking)또는 비동기 코드를 쉽게 작성할 수 있다. 우선 동시성 프로그래밍에 사용되는 용어를 정리해보도록 한다. NOTE✏️ 서드파티 라이브러리(Third-party Library): 기본으로 제공되는 표준 라이브러리가 아닌 다른 개발자(제 3자)가 .. 2021. 5. 21.
[Do it! 코틀린 프로그래밍] 10. 표준 함수와 입출력 10. 표준 함수와 입출력 1. 코틀린 표준 함수 표준 함수를 이용하면 코드를 더 단순화하고 읽기 쉽게 만들어 준다. 코틀린 표준 함수는 람다식과 고차 함수를 이용해 선언되어 있다. 앞서 클로저에 대해 살펴보고 표준 함수에 대해 알아보도록 한다. 클로저(Closure) 람다식으로 표현된 내부 함수에서 외부 범위에 선언된 변수에 접근할 수 있는 개념을 말한다. 람다식 안에 있는 외부 변수는 값을 유지하기 위해 람다식이 포획(Capture)한 변수라고 부른다. 포획한 변수는 참조가 유지되어 함수가 종료되어도 사라지지 않고 접근하거나 수정할 수 있다. 클로저의 조건 final 변수를 포획한 경우, 변수 값을 람다식과 함께 저장한다. final이 아닌 변수를 포획한 경우, 변수를 특정 래퍼(wrapper)로 감.. 2021. 5. 10.
[Do it! 코틀린 프로그래밍] 9. 컬렉션 9. 컬렉션 1. 컬랙션의 구조와 기본 컬렉션(Collection) 이란 자주 사용하는 기초적인 자료구조를 모아 놓은 일종의 프레임워크로 표준 라이브러리로 제공된다. Link 컬렉션 종류 컬렉션 불변형(읽기 전용) 가변형 List listOf mutableListOf, arrayListOf Set setOf mutableSetOf, hashSetOf, linkedSetOf, sortedSetOf Map mapOf mutableMapOf, hashMapOf, linkedMapOf, sortedMapOf Collection 인터페이스 멤버 멤버 설명 size 컬렉션의 크기를 나타낸다. isEmpty() 컬렉션이 비어 있는 경우 true를 반환한다. contains(element: E) 특정 요소가 있다면 t.. 2021. 5. 1.
[Do it! 코틀린 프로그래밍] 8. 제네릭과 배열 8. 제네릭과 배열 1. 제네릭 다루기 제네릭(Generic) 은 클래스 내부에서 사용할 자료형을 나중에 인스턴스를 생성할 때 확정한다. 객체의 자료형을 컴파일할 때 체크하기 때문에 객체 자료형의 안정성을 높이고 형 변환의 번거로움을 줄인다. /* 간단한 제네릭 예시 */ // 앵글 브래킷() 사이에 형식 매개변수 이름을 넣어 자료형을 대체한다. class Box(var name: T) fun main() { val box1 = Box(1) // 1은 Int 타입이므로 Box으로 추론 val box2 = Box("Hello") // "Hello"는 String 타입이므로 Box으로 추론 println(box1.name) // 1 println(box2.name) // Hello } 일반적으로 제네릭에서 .. 2021. 4. 25.