최근 바뀜
통계
임의의 문서로
도움말
문서
토론
원본 보기
역사 보기
로그인
코틀린 문서 원본 보기
내위키
←
코틀린
이동:
둘러보기
,
검색
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다:
사용자
.
문서의 원본을 보거나 복사할 수 있습니다.
Kotlin, [https://kotlinlang.org/ 공식 웹사이트]. 통합 개발환경인 인텔리 J로 유명한 [[제트브레인]]에서 내놓은 프로그래밍 언어. [[자바]] 가상머신 위에서 동작하며 [[자바]]와 100% 호환된다는 것이 제트브레인 측의 설명이다. 즉 [[자바]]가 돌아가는 환경이라면 코틀린도 돌아간다. 그 대표적인 예가 안드로이드로, 지금도 코틀린을 사용해서 안드로이드 프로그래밍을 하는 것이 가능하며<ref>[[안드로이드 스튜디오]]에서 코틀린 플러그인을 설치해서 쓸 수 있다.</ref> [[안드로이드 스튜디오]] 3.0부터는 아예 [[자바]]와 함께 코틀린도 지원한다. 물론 [[자바]] 라이브러리도 제약 없이 갖다 쓸 수 있다. ==특징== ===간결함=== 자바에 비해서 훨씬 간결하게 코드를 짤 수 있으며, 현대 프로그래밍의 여러 개념들을 적극 수용했다. 실제로 똑같은 일을 하는 프로그램을 [[자바]]와 코틀린으로 짜 보면 코틀린의 코드 양이 훨씬 적다. 예를 들면 아래의 코드는 단 한 줄로 name, email, company 세 개의 필드를 가지고 이에 대한 getters와 setters는 물론 equals(), hashCode(), toString() 그리고 copy()까지 모두 지원하는 POJO 클래스를 정의한다. <source lang="kotlin"> data class Customer(val name: String, val email: String, val company: String) </source> 이걸 [[자바]]로 짜려면 몇 줄이나 나올까? 말도 하지 말자. 그런데 자세히 보면 변수 혹은 매개변수를 정의하는 방법이 [[자바]]와 많이 다르다. val이라는 키워드가 먼저 나오고, 변수 이름이 나온 다음 콜론을 찍고 변수의 타입을 쓴다. 변수 타입 → 이름 순서인 [[자바]]<ref>[[자바]]만이 아니라 대부분 언어가 그렇다. 반면 [[Go]]는 코틀린처럼 변수의 타입을 나중에 쓴다.</ref>와는 반대다. <ref>코틀린의 변수 선언과 가장 비슷한 언어는 놀랍게도 지금 별로 쓰이지 않고 있는 파스칼이다! 코틀린의 변수 선언 방식은 <code>val a: Int = 10000</code>인데 파스칼도 <code>var a : integer = 10000;</code>.</ref> 또한 과도하게 엄격한 예외 처리를 강요하는 [[자바]]와는 달리 모든 예외 처리를 강제하지 않는다. 모든 예외를 다 프로그래밍으로 처리함으로써 오류 문제에 단단한 코드를 만들려고 했던 게 [[자바]]지만 지나친 엄격함에 시달리다 못해 그냥 안 받아도 되는 RuntimeException 같은 걸로 다 때워버리든가 해버려서 오히려 프로그램을 부실하게 만드는 [[자바]]의 문제점을 해소한 셈이다. [[자바]]와는 달리 줄 끝에 세미콜론을 쓰지 않는 것도 차이. 요즘 인기 있는 언어들인 [[파이썬]], [[Go]]<del>(응?)</del>, [[스위프트]]도 역시 줄끝에 세미콜론을 쓰지 않는다. ==안전함== 코틀린이 강조하는 또 하나의 특징은 안전함이다. 코틀린은 null 값이 들어가도 되는 변수(nullable)와 그렇지 않은 변수를 구분한다. 기본은 nullable이 아니며 nullable로 지정하려면 변수의 타입 뒤에 ? 기호를 붙여 줘야 한다. 이로 인해 null 값을 잘못 사용해서 생길 수 있는 문제<ref>이른바 The Billion Dollar Mistake라고 부른다.</ref>를 컴파일 단계에서 더 많이 잡아준다. <source lang="kotlin"> var output: String output = null // Compilation error val name: String? = null // Nullable type println(name.length()) // Compilation error </source> {{각주}} [[Category:프로그래밍 언어]]
이 문서에서 사용한 틀:
틀:InlineCode
(
원본 보기
)
틀:각주
(
원본 보기
)
코틀린
문서로 돌아갑니다.
도구
여기를 가리키는 문서
가리키는 글의 최근 바뀜
특수 문서 목록
문서 정보