티스토리 뷰

Server

Kotlin이 뭐에요?

니용 2020. 6. 22. 15:57
반응형

Author: 니용

 


이번 글에서는 Kotlin이 무엇인지와 태어난 배경과 어디 사용되고 있는지 간단히 알아보려고 합니다.

 

1. Kotlin(코틀린)이라고 읽으며 프로그래밍 언어(ex: Java, Python)의 계열 중 하나입니다.

1-1. 2011년에 태어났습니다.

1-2. JetBrains에서 개발하였습니다.

1-3. 어원은 JetBrains의 R&D Center가 위치한 상트페테르부르크 근처 '코틀린(Ко́тлин)' 섬 이름입니다.

(참고로 러시아어는 할 줄 모릅니다 :p)

1-4. 확장자는 .kt 또는 .kts 를 사용합니다.

 

2. IntelliJ IDEA를 만든 JetBrains 사에서 만든 언어입니다.

2-1. IntelliJ IDEA에서 최적화되어 있습니다.

2-2. Android Studio도 JetBrains에서 공식 지원하는 툴입니다.

 

3. 2019년 5월에 Google의 Android에서 공식으로 채택한 언어입니다.

3-1. Java로 안드로이드의 개발이 가능하지만, Kotlin으로 개발하는 것을 지향합니다.

3-2. 승인되며 Android Studio의 Tool Update도 관할하게 되었습니다.

 

4. Java의 종속성을 100% 따릅니다.

4-1. Java 언어에서 가지고 있는 모든 속성을 구현할 수 있습니다.

4-2. 안정성면에서도 버전에 따라 다르지만 안정화되었습니다.

4-3. 2020년 6월 22일 기준 최신 버전은 1.3.70 입니다.

4-4. IntelliJ IDEA에서 .kt 파일에 Java 언어를 치면 자동 변환해줍니다.

.kt 파일에 Java 소스를 넣으면 이처럼 물어봅니다

 

5. JVM 바이트코드 기반이지만 Kotlin/Native 컴파일러를 사용합니다.

5-1. 기존에 Java를 개발하였던 JVM에서 사용 가능합니다.

5-2. Android / Spring Framework / Tomcat의 개발에도 사용합니다.

5-3. 의미하는 바는 JVM 기반이라는 것이 아닌, '속도'입니다.

 

6. 최근에 개발된 안드로이드 앱은 100% Kotlin을 지원합니다.

6-1. 지원이 가능하지만 Java를 사용하여 개발하여도 됩니다.

6-2. Kotlin 개발 라이브러리가 더 간결화되어 있지만, 기존에 Java 라이브러리가 오랫동안 사용되어 왔기에 레퍼런스는 Java 문서가 더 많을 수 있습니다.

 


 

그럼 Kotlin은 왜 사용할까요?

 

Java의 속성을 100% 치환가능하고 안정적인 자바의 특징을 그대로 활용했습니다. 새로운 언어를 선택하시는 개발자분들은 아무래도 정적인 언어를 선호하실 수 밖에 없죠. 왜? 안정되어있는 언어를 사용해야 서비스가 안정적으로, 그리고 정상적으로 작동하고 개발 퍼포먼스도 빨라질 수 밖에 없으니 그럴 것입니다. Java 기반 언어로 되어 있는 프로그램을 리뉴얼하여 재개발할 때도 사용할 수 있습니다.

 

그리고 이전에 Java를 한 번이라도 접하셨거나 배우셨다면 러닝 커브(Learning Curve)가 완만합니다. 다시 말하면 배우기 쉽습니다. 기존 Java 소스를 변환하는 방법을 잘 모르겠다하면 위에 자동 변환한 것처럼 적용하여 학습도 가능합니다. 물론 변환된 소스가 100% 작동될리 만무하기에 이는 따로 공부를 하셔야겠죠.

 

Java의 군더더기를 뺐습니다. 나중에 다룰 내용이지만 Class 기반인 Java언어의 특성상 대부분의 파일은 컴파일러로 .class로 변환시키기 위해 public class로 시작하는 것이 많습니다. 하지만 Kotlin은 그렇지 않습니다. class가 존재하지 않아도 프로그램을 작동시키는데 무리가 없습니다. 

public class Abbo {
   private String nickname;
   private String id;
   
   public void setNickname(String nickname) {
      this.nickname = nickname;
   }
   
   public void setId(String id) {
      this.id = id;
   }
   
   public String getNickname() {
      return this.nickname;
   }
   
   public String getId() {
      return this.id;
   }
   
   public String toString() {
      // ...
   }
   
   public boolean equals(Abbo anotherClass) {
      // ...
   }
   
   public int hashCode() {
      // ...
   }
}

 

이를 Kotlin의 data class로 변환하게 되면 이렇게 됩니다.

 

data class Abbo(val nickname:String, val id:String)

 

그럼 다음 글에서부터는 어떻게 사용하면 좋을지 하나하나 면밀하게 살펴보도록 하겠습니다 :)

반응형

'Server' 카테고리의 다른 글

[Spring] @Bean과 @Component의 차이  (0) 2020.06.25
Kotlin 변수의 Wrapper Type  (0) 2020.06.25
Kotlin 설치법  (0) 2020.06.24
이모지를 저장하자  (0) 2020.06.16
MySQL Function 만들기  (1) 2020.06.12
MySQL 의 LEFT OUTER JOIN - 23년 7월 수정  (0) 2020.06.11
댓글
공지사항