코틀린(Kotlin) 개요

Java는 들어봤는데, Kotlin은 뭔가요?
요즘 Android 개발이나 백엔드에서 심심찮게 보이는 그 언어, 오늘 제대로 알아보자.
1. 코틀린이 무엇인가?
코틀린(Kotlin)은 JetBrains가 만든 정적 타입 프로그래밍 언어다. 2016년에 공식 출시됐고, 2017년에는 구글이 Android 공식 개발 언어로 채택하면서 폭발적으로 주목받았다.
가장 큰 특징은 Java와 100% 호환된다는 점이다. Kotlin 코드는 JVM 위에서 동작하기 때문에, 기존 Java 라이브러리를 그대로 사용할 수 있고, 하나의 프로젝트 안에서 Java와 Kotlin을 함께 사용하는 것도 가능하다.
2. 왜 Kotlin을 쓰는가?
한마디로 요약하면 Java보다 코드가 훨씬 간결하고, 안전하다.
Java로 10줄 써야 할 코드를 Kotlin은 3줄로 끝내는 경우가 많다. 거기다 언어 차원에서 NPE(NullPointerException)를 방어하는 문법을 제공해서 런타임 에러도 줄어든다.
기본 문법에 대한 내용은 다음 포스팅에서 자세히 다룰 예정이다. 이번 글에서는 “코틀린이 어디에 쓰이는가”에 집중해보자.
3. 어디에 쓰이나?
| 분야 | 설명 |
|---|---|
| Android 개발 | Google 공식 언어. Jetpack Compose도 Kotlin 기반 |
| 백엔드 (Spring) | Spring Boot 5부터 Kotlin을 공식 지원 |
| 멀티플랫폼 | Kotlin Multiplatform으로 iOS, Web도 커버 가능 |
백엔드 개발자라면 특히 자프링 vs 코프링 이야기를 한 번쯤 들어봤을 것이다.
4. 자프링 vs 코프링
자프링(Javaspring)은 Java + Spring의 조합, 코프링(Kopring)은 Kotlin + Spring의 조합을 부르는 말이다.
같은 Spring 프레임워크를 쓰지만, 어떤 언어로 작성하느냐에 따라 코드 스타일이 꽤 달라진다.
코드로 비교해보기
Entity 클래스를 예로 들어보자.
자프링 (Java + Spring)
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private int age;
protected User() {}
public User(String name, int age) {
this.name = name;
this.age = age;
}
public Long getId() { return id; }
public String getName() { return name; }
public int getAge() { return age; }
}
코프링 (Kotlin + Spring)
@Entity
class User(
val name: String,
val age: Int,
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
val id: Long = 0
)
같은 기능인데 코드량 차이가 상당하다. Kotlin의 data class나 기본 생성자 문법 덕분에 보일러플레이트가 확 줄어든다.
5. 어떤 걸 선택해야 할까?
정답은 없다. 다만 각각의 특징을 정리하면 이렇다.
자프링이 유리한 경우
- 팀 내 Java 숙련도가 높을 때
- 레거시 Java 코드베이스를 유지보수할 때
- Spring 관련 레퍼런스와 예제가 Java 기반일 때
코프링이 유리한 경우
- 새로운 프로젝트를 시작할 때
- Null Safety와 간결한 문법의 장점을 활용하고 싶을 때
- Android 개발과 백엔드를 함께 진행할 때
6. 마치며
Kotlin은 단순히 “Java의 대체제”가 아니다. Java 생태계를 그대로 활용하면서도 더 현대적인 언어 기능을 사용할 수 있다는 점에서, Java를 아는 개발자라면 배워두면 확실히 무기가 하나 더 생기는 느낌이다.
'☕ Backend > Kotlin' 카테고리의 다른 글
| [Architecture] Java to Kotlin 마이그레이션 하는 이유 (0) | 2026.04.28 |
|---|