Notice
Recent Posts
Recent Comments
Link
- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- posting
- coroutine
- github
- n3문법
- CustomTab
- jlpt
- androidstudio
- GIT
- blog
- 일본어기초
- 책추천
- 진짜일본어
- KotlinInAction
- 인공지능
- Kotlin
- rxjava
- ai
- PR
- 진짜학습지
- pullrequest
- 안드로이드
- 코틀린
- 진짜학습지후기
- 학습지
- 책리뷰
- Android
- suspend
- errorhandling
- webflux
- 일본어문법
Archives
코딩하는 개굴이
[Kotlin IN ACTION] 코틀린이란 무엇이고 왜 필요할까? 본문
반응형
본 내용은 Kotlin IN ACTION (드미트리 제메로프, 스베트라나 이사코바 지음 / 에이콘 출판사) 책을 기반으로 작성되었습니다.
Kotlin IN ACTION 1강 : 코틀린이란 무엇이며, 왜 필요한가?
Kotlin 이란?
- 코틀린은 자바 플랫폼에서 돌아가는 새로운 프로그래밍 언어
- 대표적으로 서버상의 코드 (웹 애플리케이션의 백엔드 등), 안드로이드의 모바일 애플리케이션에 활용 가능
- 자바와 같이 정적 타입 (statically typed) 지정 언어
- 정적 타입 지정 언어 : 모든 프로그램 구성 요소의 타입을 컴파일 시점에 알 수 있으며, 프로그램 안에서 객체의 필드, 메소드 등의 사용시에 컴파일러가 타입을 검증해 준다.
- 동적 타입 지정 언어 : 타입과 관계없이 모든 값을 변수에 넣을 수 있고, 객체의 필드, 메소드 등의 검증이 실행 시점에 일어난다. 코드가 더 짧아지고, 데이터 구조를 더 유연하게 사용할 수 있으나, 네이밍 및 실수 등이 컴파일 시 걸러지지 않고 실행 시점에 오류로 발생한다. Groovy, JRuby 가 예시이다.
- 정적 타입 지정 언어임에도, 자바와 달리 코틀린은 컴파일러가 문맥으로부터 변수 타입을 자동으로 유추하여 모든 변수의 타입을 직접 명시하지 않아도 변수 타입을 결정하는 타입 추론 가능
- 코틀린은 또한 null 이 될 수 있는 타입인 nullable type을 지원
- 컴파일 시점에 Null pointer exception 여부를 검사하여 신뢰성을 넢임
- 함수 타입을 지원하여, 함수형 프로그래밍의 장점인 간결성, 다중 스레드 사용에도 안전성, 독립적인 테스트를 확보할 수 있다.
- 무료 오픈소스
- 실용적이고 안전하며, 간결하고 상호운용성이 좋다.
코틀린 응용
코틀린 서버 프로그래밍
- 자바 코드와 상호운용 가능
- 빌더 패턴을 활용하여 간결하게 구현 가능
- DSL 기능을 사용가능 (Exposed 프레임워크로 SQL 데이터베이스의 구조를 기술할 수 있는 DSL제공)
코틀린 안드로이드 프로그래밍
- 애플리케이션의 신뢰성이 높아짐 (Null pointer 문제를 줄여준다.)
- 자바 6와 완전히 호환된다.
- 성능 측면에서 손해가 없다.
- 자바와 비교해 런타임 시스템 및 패키징 애플리케이션도 그리 늘어나지 않는다.
- 람다 함수를 inlining 하여 람다 사용시에도 새로운 객체가 생성되지 않으므로, 객체 증가로 인한 가비지 컬렉션 유발을 최소화한다.
반응형
'안드로이드 > KOTLIN' 카테고리의 다른 글
[Kotlin IN ACTION] 코틀린 타입 시스템 (0) | 2021.04.11 |
---|---|
[Kotlin IN ACTION] 클래스, 객체, 인터페이스 (0) | 2021.04.04 |
[Kotlin IN ACTION] 함수 정의와 호출 (0) | 2021.03.29 |
[Kotlin IN ACTION] 코틀린 기초 문법 (1) | 2021.03.21 |
[Kotlin] let, apply, run, with, also (0) | 2021.03.01 |
Comments