Kotlin특징

1

코틀린

목록 보기
3/11

프로그래밍 언어로 프로그램을 작성하는 것을 코딩이라고 한다.
코딩을 할 때는 프로그램의 특성에 맞는 언어를 선택하여 작성한다.
코딩이 끝나면 고급 언어로 작성된 명령문을 기계어로 바꾸는데
이 과정을 컴파일 단계라고 한다.

컴파일은 컴파일러를 이용한 방식과 인터프리터를 이용한 방식으로 나뉜다. 또한 두가지를 섞은 하이브리드 방식이 존재한다.

컴파일러를 이용한 방식

컴파일러는 고급 언어로 작성한 원시 코드를 기계어인 목적 코드로 번역한다. 이것은 메모리로 옮겨져 실행되어 결과를 출력한다.

장점

한번 목적 코드로 번역하고 나면 실행할 때마다 번역할 필요가 없으므로 프로그램 실행 시간을 줄일수 있다.

단점

원시 코드의 일부가 수정되면 프로그램 전체를 다시 번역해야 하므로 번거롭다.

인터프리터를 이용한 방식

프로그램을 한 행씩 읽어 번역과 실행을 동시에 하는 방식으로 HTML등에서 활용된다.

장점

원시 코드가 수정될 때마다 프로그램 전체를 번역할 필요가 없으므로 간단한 구조의 프로그램에 편리하다.

단점

반복문이나 계속 호출이 되어야 하는 서브 프로그램처럼 많은 횟수가 필요한 프로그램은 매번 번역과 실행을 동시에 해야하므로 비효율적이다.

코틀린은 어떤 타입일까?

정적 타입 언어

언어는 정적타입과 동적타입으로 나뉘어진다.
정적타입과 동적타입은 무엇일까?

정적타입

컴파일 시 변수의 타입이 결정되는 언어이다. 따라서 프로그래머가 변수에 들어갈 값의 형태에 따라 직접 변수의 타입을 명시해줘야 한다.
즉 위에서 언급한 타입 자료형을 컴파일 시 결정하는 언어이다.
만약 컴파일 시에 자료형에 맞지 않는(String을 쓰고 Int로 받으려고 한다면) 컴파일 에러가 발생한다.
정적타입언어로는 Java,C,C++ C#,Scala,Fortran,Haskell,mL,Pascal등이 존재한다.

장점

타입 에러로 인한 문제점을 초기에 발견할 수 있어 안정성이 높다.
컴파일 시에 미리 타입을 결정해놓기 때문에 실행 속도가 빠르다.

단점

매번 코드 작성시 변수형(이것은Int,저건Double,요건 String과 같이...귀찮다.)을 결정해 줘야 하는 번거로움이 있다.

동적타입

컴파일 시 자료형을 정하는 것이 아니라 런타임 시 결정된다.
따로 타입 선언을 하지 않아도 타입 에러 없이 컴파일이 가능하다.
동적 타입 언어로는 Groovy,Python,JavaScript,Ruby,Smalltalk,Lisp,Objective-C,PHP,Prolog등이 있다.

장점

런타임 까지 타입에 대한 결정을 끌고 갈 수 있기 때문에 유연성이 높다.
컴파일시 타입을 명시하지 않아도 되기 때문에 코드를 빠르게 작성할 수 있고 난이도가 낮다.

단점

실행 도중 변수의 타입을 확실하게 하지 않아 예상치 못한 에러가 발생하기 쉽다.

그래서 코틀린은 무슨 타입의 언어인데?

우선, 코틀린은 정적 언어이다.
컴파일 시점에 변수타입을 정해야 한다는거다.
컴파일러가 타입을 확정하고 검증해준다.

하지만 코틀린의 장점중 하나는 타입추론이 가능하다는 점이다.

profile
러닝커브를 따라서 등반중입니다.

0개의 댓글