[Tistory] 코틀린이란?

원글 페이지 : 바로가기

https://blog.kakaocdn.net/dn/NBAvm/btrWwL0pzxu/nS4k23vedpMHeNCOavLffk/img.png 코틀린이란? 2011년 JetBrains사가 공개한 프로그래밍 언어로 JVM에서 동작한다 간결하고 실용적이며 자바 코드와의 상호운영성을 중시한 언어라고 한다. 구글에서 코틀린을 자바에 이어 안드로이드 공식언어로 선언했다고 한다. 호환성과 성능 코틀린은 JDK 6과 완벽하게 호환가능하다 구형 안드로이드 기기 지원이 된다는 점은 코틀린을 사용하는 하나의 장점이라고 할 수 있다. 안드로이드 스튜디오에서 지원이 되는 언어이기 때문에 안드로이드의 빌드 시스템과도 완벽히 호환된다. 자바 만큼 빠르다는 이야기가 많다. 주요 특성 대상 플랫폼 코틀린의 주 목적은 현재 자바가 사용되고 있는 모든 용도에 적합하면서도 더 간결하고 생산적이며 안전한 대체 언어를 제공하는 것이다. 서버상의 코드 – 웹 애플리케이션의 백엔드 안드로이드 디바이스에서 실행되는 모바일 애플리케이션 타입 정적 타입 지정 언어 정적 타입 지정 언어 란? 모든 프로그래밍 구성 요소의 타입을 컴파일 시점에 알 수 있고 프로그램 안에서 객체의 필드나 메소드를 사용할 때마다 컴파일러가 타입을 검증해 준다. 성능 실행 시점에 어떤 메소드를 호출할지 알아내는 과정이 필요 없으므로 메소드 호출이 더 빠르다(나중에 사용해봐야 성능을 좋은지 알 수 있을거 같다) 신뢰성 컴파일러가 프로그램의 정확성을 검증한다. 따라서 프로그램이 오류로 중단될 가능성이 더 적어진다 유지 보수성 코드에서 다루는 객체가 어떤 타입에 속하는지 알 수 있다. 그래서 처음보는 코드를 다룰 때도 더 쉽게 다룰 수 있다. 도구 지원 도구는 더 정확한 코드 완성 기능을 제공할 수 있으며 IDE의 다른 지원 기능도 동적 타입 지정언어에 비해 더 잘 만들 수 있다. 타입 추론 자바와는 다르게 코틀린에서는 모든 변수의 타입을 직접 명시할 필요가 없다. 대부분의 경우 코틀린 컴파일러가 문맥으로부터 변수 타입을 자동으로 유추할 수 있기 때문에 타입 선언을 생략해도 된다. 널이 될 수 있는 타입 코틀린은 null이 될 수 있는 타입을 지우너함에 따라 텀파일 시점에 null pointer exception이 발생 할 수 있는지 여부를 검사할 수 있어서 좀 더 프로그램의 신뢰성을 높일 수 있다. 함수형 프로그래밍 핵심 개념 일급객체인 함수 함수를 일반 값처럼 다룰 수 있다. 함수를 변수에 저장할 수 있고 함수를 인자로 다른 함수에 전달할 수 있으며 함수에서 새로운 함수를 만들어서 반환할 수 있다. 불변성 함수형 프로그래밍에서는 일단 만들어지고 나면 내부 상태가 절대로 바뀌지 않는 불변 객체를 사용해 프로그램을 작성한다. 부수 효과 없음 함수형 프로그래밍에서는 입력이 같으면 항상 같은 출력을 내놓고 다른 객체의 상태를 변경하지 않으며, 함수 외부나 다른 바깥 환경과 상호작용하지 않는 순수함수를 사용한다. 이점 간결성 명령형 코드에 비해 더 간결하다. 순수 함수를 값처럼 활용할 수 있으면 더 강력한 추상화 할수 있고 강력한 추상화를 사용해 코드 중복을 막을 수 있다. Thread Safe 불변 데이터 구조를 사용하고 순수 함수를 데이터 구조에 적용한다면 다중 스레드 환경에서 같은 데이터를 여러 스레드가 변경 할 수 없다. 테스트 용이 side effect 가 있는 함수는 그 함수를 실행 하기 위해 필요한 환경을 구성하는 준비 코드가 필요하지만 순수함수는 준비 코드 없이 독립적인 테스트가 가능하다. 코틀린이 빌드되는 과정 https://img1.daumcdn.net/thumb/R800x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbkzrUi%2FbtrbwgE4TDu%2FuR4kizBlafieULJ8VVXh31%2Fimg.png JVM에서 동작하는 부분때문에 JAVA 컴파일 과정과 비슷하다. 다른 부분은 코틀린은 kotlin compiler를 통해 바이트 코드로 변환 되는데 이 코드는 kotlin runtime library에 의존되어 실행된다. kotlin runtime library에는 코틀린 자체 표준 라이브러리, JAVA API를 확장한 내용 등이 있다. 이는 Gradle, Maven과 같은 빌드 도구가 Application 으로 패키징할 때 알아서 kotlin runtime library를 포함 시키게 된다. https://velog.velcdn.com/images/chc0331/post/f378920b-5c6b-46c5-ac4f-d51caabe9e2e/image.png 위의 사진은 JAVA와 Kotlin이 함께 있을 때 컴파일 되는 과정을 나타낸 것이다. 1. Kotlin 컴파일러가 Kotlin 코드를 컴파일해서 바이트 코드(.class)를 생성한다. → 이때 Kotlin 코드가 참조하는 JAVA 코드도 함께 로딩되어 사용된다. 2. JAVA 컴파일러가 JAVA코드를 컴파일해서 바이트 코드(.class)를 생성한다. → 이때 컴파일된 Kotlin의 바이트 코드(.class)의 경로를 class path에 추가해 컴파일한다. ※ 아직 코틀린을 사용해 보지 않아 코틀린이 무엇인지 알아보고자 글을 작성했으며, 사용해 보고 난 뒤 추가 글을 작성할 예정. 참고한 사이트 https://velog.io/@gosgjung/%EC%BD%94%ED%8B%80%EB%A6%B0%EC%96%B8%EC%96%B4-%EA%B8%B0%EB%B3%B8%EA%B0%9C%EB%85%90-%EC%B4%9D%EC%A0%95%EB%A6%AC-%EC%8A%A4%EC%95%95%EC%A3%BC%EC%9D%98 코틀린언어 기본개념 총정리 (스압주의) 깊은 내용은 다루지 않습니다. 빠르게 하나의 페이지에서 필요한 개념만 찾아보기 위해 굉장히 길게 요약했습니다. 깊은 내용들은 책을 찾아보고 파악해야 합니다. (관리 및 유지보수가 되지 않 velog.io https://velog.io/@dbsdlswp/Kotlin%EC%9D%B4%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B4%EB%A9%B0-%EC%99%9C-%ED%95%84%EC%9A%94%ED%95%9C%EA%B0%80 Kotlin이란 무엇이며 왜 필요한가? 코틀린(Kotlin)이란? 코틀린( Kotlin )은 2011년 7월 JetBrains사가 공개한 JVM에서 동작하는 프로그래밍 언어로서, 간결하고 실용적이며 자바코드와의 상호운용성( interoperability )를 중시한 언어이다. 주 velog.io https://mhwan.tistory.com/71 [Kotlin] Kotlin의 컴파일 과정 & Kotlin VS JAVA (Annotation Processor) 이 글은 코틀린을 이미 어느정도 아시는 분들을 위한 포스팅입니다. 코틀린을 모르시는 분들에게는 다소 불친절할 수 있으니 양해부탁드립니다. 다들 이미 아시겠지만 코틀린은 JVM위에서 동작 mhwan.tistory.com

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다