🌟 왜 Kotlin인가?
📖 Kotlin을 배워야 하는 5가지 이유
Kotlin은 단순히 "또 다른 프로그래밍 언어"가 아닙니다. 개발자의 삶을 바꿔줄 실용적인 언어입니다.
1️⃣ 생산성이 2배 높아집니다
코드량이 40% 줄어듭니다
Java 코드:
public class User {
private String name;
private String email;
public User(String name, String email) {
this.name = name;
this.email = email;
}
public String getName() {
return name;
}
public String getEmail() {
return email;
}
@Override
public String toString() {
return "User(name=" + name + ", email=" + email + ")";
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
User user = (User) o;
return Objects.equals(name, user.name) &&
Objects.equals(email, user.email);
}
@Override
public int hashCode() {
return Objects.hash(name, email);
}
}
Kotlin 코드 (동일한 기능):
data class User(val name: String, val email: String)
스마트 캐스팅
// Java - 반복되는 캐스팅
if (obj instanceof String) {
String str = (String) obj; // 캐스팅 필요
System.out.println(str.length());
}
// Kotlin - 자동 캐스팅
if (obj is String) {
println(obj.length) // 자동으로 String으로 인식!
}
함수형 프로그래밍
// Java - 장황함
List<String> names = new ArrayList<>();
for (User user : users) {
if (user.getAge() >= 18) {
names.add(user.getName());
}
}
// Kotlin - 간결함
val names = users
.filter { it.age >= 18 }
.map { it.name }
2️⃣ NullPointerException을 원천 차단합니다
Java 개발자들의 영원한 적, NullPointerException! Kotlin에서는 기본적으로 불가능합니다.
Null 안전성
// Java - 언제든 터질 수 있는 폭탄
String name = user.getName(); // user나 name이 null이면 NPE!
int length = name.length(); // 💥 NullPointerException
// Kotlin - 컴파일 에러로 미리 방지
val name: String = user.name // null 불가
val length = name.length // 안전함!
// Null을 허용하려면 명시적으로 ?를 붙여야 함
val nullableName: String? = user.name // null 가능
val length = nullableName?.length // 안전한 호출 (?.)
실제 예시
fun processUser(user: User?) {
// user가 null이면 함수 종료
user ?: return
// 여기서부터는 user가 null이 아님을 보장!
println(user.name)
// 안전한 호출 체이닝
val cityName = user.address?.city?.name ?: "알 수 없음"
}
3️⃣ Android 공식 언어입니다
2019년, Google이 Kotlin을 Android 개발 공식 언어로 지정했습니다.
통계
현재 Android 앱 개발:
├─ 상위 1000개 앱 중 80%가 Kotlin 사용
├─ Google의 모든 새 샘플 코드는 Kotlin
├─ Jetpack Compose는 Kotlin 전용
└─ 대부분의 신규 프로젝트는 Kotlin
Jetpack Compose
// 최신 Android UI - Kotlin 전용!
@Composable
fun Greeting(name: String) {
Text(text = "Hello $name!")
}
@Composable
fun UserList(users: List<User>) {
LazyColumn {
items(users) { user ->
Text(text = user.name)
}
}
}
4️⃣ 취업에 유리합니다
국내 채용 공고 (2024년 기준)
Android 개발자 채용:
├─ Kotlin 필수: 85%
├─ Java도 가능: 10%
└─ Java만: 5%
백엔드 개발자:
├─ Kotlin 우대: 증가 추세
├─ Spring Boot + Kotlin 조합 인기
└─ 카카오, 네이버 등 대기업도 사용
연봉 경쟁력