1. 코틀린이란 무엇이며, 왜 필요한가?

Jacob Kwak·2022년 4월 14일
0

Kotlin

목록 보기
1/4

1.1 코틀린 맛보기

Kotlin : 자바 플랫폼에서 돌아가는 새로운 프로그래밍 언어

Kotlin 특징

1)간결
2)실용적
3)자바 코드와의 상호운용성

1.2 코틀린 주요 특성

1.2.1 대상 플랫폼: 서버, 안드로이드 등 자바가 실행되는 모든 곳

코틀린이 나온 이유

기존의 자바 코드를
1) 보다 간결하게
2) 보다 편하게
3) 보다 안전하게

일반적인 영역

1) 서버상의 코드 (특히 웹의 백엔드)
2) 안드로이드

But, 다른 환경에서도 잘 작동한다.
Ex) 인텔의 멀티OS 엔진을 이용해서 iOS.

1.2.2 정적 타입 지정 언어

자바와 마찬가지로 코틀린도 정적 타입 지정 언어.

정적 타입 지정이란?
모든 프로그램 구성 요소의 타입을 컴파일 시점에 알 수 있고
프로그램 안에서 객체의 필드나 메서드를 사용할 때마다 컴파일러가 타입을 검증해준다는 뜻.

동적 타입 지정언어와의 차이점

동적 타입은 모든 값을 변수에 넣을 수 있는 등 유동적이고 코드도 짧아지지만
실수를 컴파일러시 걸러내지 못한다.

코틀린은 자바와 달리 모든 변수 타입을 명시할 필요 X -> 타입 추론

정적 타입 지정의 장점

1) 성능
실행 시점에 어떤 메서드를 호출할 지 알아내는 과정 필요 X -> 속도 빠름
2) 신뢰성
컴파일러가 정확성 검증 -> 실행시 오류로 중단될 가능성 낮음
3) 유지 보수성
객체가 어떤 타입에 속하는 지 알 수 있음 -> 코드 리뷰시 이해 쉬움.
4) 도구 지원
안전하게 리팩토링 할 수 있고, 도구는 더 정확한 코드 완성 기능을 제공,
IDE의 다른 지원 기능도 더 잘 만들 수 있음.

코틀린의 새로운 점
1)코틀린이 null 이 될 수 있는 타입(nullable type)을 지원
-> 컴파일 시점에 null pointer exception 발생 여부 검사 가능 -> 신뢰성 높일 수 있다.
2)함수 타입에 대한 지원

1.2.3 함수형 프로그래밍과 객체지향 프로그래밍

함수형 프로그래밍 핵심 개녕

1) 일급 시민인 함수 (first-class)
함수를 일반 값처럼 다룰 수 있음. 함술르 변수에 저장할 수 있고,
함수를 인자로 다른 함수에 전달할 수 있고,
함수에서 새로운 함수를 만들어서 반환할 수 있다.

2) 불변성
생성후 내부 상태가 절대 바뀌지 않는 불변 객체를 사용해 프로그램 작성

3) 부수 효과 없음

함수형 스타일의 장점

1)간결
2)안전
3)테스트하기 쉬움

1.5 코틀린 도구 사용

1.5.1 코틀린 코드 컴파일

1.6 코틀린 요약

1) 코틀린은 타입 추론을 지원하는 정적 타입 지정 언어다.
따라서 소스코드의 정확성과 성능을 보장하면서도 소스코드를 간결하게 유지할 수 있다.

2) 코틀린은 객체지향과 함수형 프로그래밍 스타일을 모두 지원한다.

코틀린에서는 일급 시민 함수를 사용해 수준 높은 추상화가 가능하고, 불변 값 지원을 통해 다중 스레드 앱 개발과 테스트를 더 쉽게 할 수 있다.

3)코틀린을 서버 앱 개발에 잘 활용할 수 있다.
코틀린은 기존 자바 프렝미워크를 완벽하게 지원하는 한편, HTML 생성기나 영속화 등의 일반적인 작업을 위한 새로운 도구를 제공한다.

4)코틀린을 안드로이드에도 할용할 수 있다.
코틀린의 런타임 라이브러리는 크기가 작고, 코틀린 컴파일러는 안드로이드 API를 특별히 지원한다.
그리고 코틀린의 다양한 라이브러리는 안드로이드에서 흔히 하는 작업에 사용할 수 있으면서 코틀린과 잘 통합될 수 있는 함수를 제공한다.

5)코틀린은 무료며 오픈소스다. 또한 주요 IDE와 빌드 시스템을 완전히 지원한다.

6)코틀린은 실용적이며 안전하고, 간결하며 상호운용성이 좋다.
이는 코틀린을 설계하면서 일반적인 작업에 대해 이미 잘 알려진 해법을 채택하고,
NullPointerExceptio과 같은 흔히 발생하는 오류를 방지하며,
읽기 쉽고 간결한 코드를 지원하면서 자바와 아무런 제약없이 통합될 수 있는 언어를 만드는데 초점을 맞췄다는 뜻이다.

profile
안드로이드 개발을 했었고 현재 대학교 블록체인 학회를 설립 및 운영하고 있습니다.

0개의 댓글