| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- Spring
- Kotlin
- Sort
- 이차전지관련주
- k8s
- 엘라스틱서치
- ElasticSearch
- Effective Java
- 자바스크립트
- 자바
- Effective Java 3
- 알고리즘
- 클린아키텍처
- 이펙티브 자바
- kubernetes
- 카카오 면접
- 이펙티브자바
- 스프링 핵심원리
- 김영한
- 티스토리챌린지
- 카카오
- 알고리즘정렬
- JavaScript
- 스프링부트
- 오블완
- java
- 예제로 배우는 스프링 입문
- 스프링
- 스프링핵심원리
- effectivejava
- Today
- Total
Kim-Baek 개발자 이야기
Kotlin 시작하기 | 왜 Kotlin인가? 개발환경 설정부터 Hello World까지 본문
이 글을 읽으면: Java 개발자가 Kotlin을 배워야 하는 이유와 5분 만에 첫 프로젝트를 시작하는 방법을 알 수 있습니다. IntelliJ 설치부터 Hello World까지 단계별로 따라하세요.
📌 목차
- 들어가며 - 왜 Kotlin을 배워야 할까?
- Kotlin vs Java - 코드량이 40% 줄어든다?
- 개발 환경 설정 - IntelliJ IDEA 설치
- 첫 프로젝트 만들기 - 5분이면 충분합니다
- Hello World 작성 및 실행
- 변수 선언 맛보기 - val과 var
- 마무리 - 다음 편 예고
들어가며 - 왜 Kotlin을 배워야 할까?

솔직히 말하면, 저도 처음엔 회의적이었습니다.
5년간 Java로 Spring Boot, JPA, Stream API까지 다 익혔는데... "굳이 Kotlin을 배워야 하나?" 싶었죠.
그런데 팀에서 신규 프로젝트를 Kotlin으로 시작하기로 결정했고, 떠밀리듯 배우기 시작했습니다.
첫 코드를 작성하고 충격받았습니다.
// Java - 20줄
public class User {
private final Long id;
private final String name;
private final String email;
public User(Long id, String name, String email) {
this.id = id;
this.name = name;
this.email = email;
}
public Long getId() { return id; }
public String getName() { return name; }
public String getEmail() { return email; }
@Override
public boolean equals(Object o) { /* 생략 */ }
@Override
public int hashCode() { /* 생략 */ }
@Override
public String toString() { /* 생략 */ }
}
// Kotlin - 1줄
data class User(val id: Long, val name: String, val email: String)
"이게... 가능하다고?"
같은 기능인데 코드량이 20배 차이가 났습니다.
Kotlin vs Java - 코드량이 40% 줄어든다?
Kotlin을 배워야 하는 5가지 이유를 실제 코드로 보여드리겠습니다.

1️⃣ NullPointerException 컴파일 타임 차단
Java의 고질적인 문제:
// Java - 언제 터질지 모르는 NPE
String name = user.getName(); // user가 null이면? 💥
int length = name.length(); // name이 null이면? 💥
Kotlin의 해결법:
// Kotlin - 컴파일 에러로 미리 차단
val name: String? = user?.name // ?로 null 가능성 명시
val length = name?.length ?: 0 // null이면 0 반환
컴파일 타임에 NPE를 99% 방지합니다.
2️⃣ Boilerplate 코드 제거
Java의 불편함:
// Java - 매번 작성해야 하는 getter/setter
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
Kotlin의 간결함:
// Kotlin - 자동 생성
var name: String
getter/setter가 자동으로 생성됩니다.
3️⃣ 문자열 처리가 Python처럼 편리
Java:
// Java - 지저분한 문자열 결합
String message = "이름: " + name + ", 나이: " + age + "세";
Kotlin:
// Kotlin - 문자열 템플릿
val message = "이름: $name, 나이: ${age}세"
4️⃣ Java와 100% 호환
기존 Java 프로젝트에 점진적으로 도입 가능합니다.
- 같은 프로젝트에 .java와 .kt 파일 공존 ✅
- Java 라이브러리 그대로 사용 가능 ✅
- Spring Boot, JPA 등 기존 프레임워크 완벽 지원 ✅
5️⃣ 업계 표준으로 자리잡음
- Android 공식 언어 (Google 권장)
- Spring 공식 지원 (Spring Boot 가이드에 Kotlin 추가)
- JetBrains (IntelliJ 개발사) 직접 개발
개발 환경 설정 - IntelliJ IDEA 설치
1단계: IntelliJ IDEA 다운로드
Community 버전은 무료입니다!
- Windows / Mac / Linux 모두 지원
- Community Edition 선택 (무료)
- Ultimate Edition은 Spring Boot 등 추가 기능 (유료)
2단계: Kotlin 플러그인 확인
IntelliJ IDEA 2023 이상은 Kotlin이 기본 내장되어 있습니다.
확인 방법:
Settings (Ctrl + Alt + S)
→ Plugins
→ "Kotlin" 검색
→ 설치 확인
3단계: JDK 설치 확인
Kotlin은 JVM 위에서 돌아가므로 JDK가 필요합니다.
Settings → Build, Execution, Deployment → Build Tools → Gradle
→ Gradle JVM: 17 이상 권장
JDK가 없다면:
- Adoptium (무료)
- 또는 IntelliJ에서 자동 다운로드 가능
첫 프로젝트 만들기 - 5분이면 충분합니다
1단계: 새 프로젝트 생성
IntelliJ IDEA 실행
→ New Project
→ Kotlin 선택
2단계: 프로젝트 설정
- Name: kotlin-tutorial
- Location: 원하는 경로
- Language: Kotlin
- Build System: Gradle (Kotlin DSL)
- JDK: 17 이상
- Add sample code: 체크
3단계: 프로젝트 구조 확인
kotlin-tutorial/
├── src/
│ ├── main/
│ │ └── kotlin/
│ │ └── Main.kt ← 여기에 코드 작성
│ └── test/
│ └── kotlin/
├── build.gradle.kts ← Kotlin DSL
└── settings.gradle.kts
Hello World 작성 및 실행
Main.kt 파일 열기
src/main/kotlin/Main.kt 파일을 열어보세요.
fun main() {
println("Hello World!")
}
이게 전부입니다!
Java와 비교
// Java - 복잡함
public class Main {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
// Kotlin - 간결함
fun main() {
println("Hello World!")
}
Kotlin 특징 분석
항목 Java Kotlin
| 키워드 | public static void | fun |
| 클래스 필요 | ✅ 필수 | ❌ 불필요 |
| 파라미터 | String[] args 필수 | 생략 가능 |
| 세미콜론 | 필수 (;) | 생략 가능 |
| 출력 함수 | System.out.println | println |
실행하기
방법 1: IntelliJ 버튼
- main() 함수 왼쪽 ▶️ 버튼 클릭
방법 2: 단축키
- Windows: Ctrl + Shift + F10
- Mac: Cmd + Shift + R
방법 3: 터미널
./gradlew run
출력 결과
Hello World!
변수 선언 맛보기 - val과 var
기본 변수 선언
fun main() {
val name = "규철" // 불변 (Java의 final)
var age = 30 // 가변
println("이름: $name, 나이: $age")
age = 31 // ✅ 가능
// name = "Kim" // ❌ 컴파일 에러!
}
Java와 비교
// Java
final String name = "규철";
int age = 30;
System.out.println("이름: " + name + ", 나이: " + age);
age = 31; // OK
// name = "Kim"; // 컴파일 에러
핵심 차이점
기능 Java Kotlin
| 불변 변수 | final 키워드 | val 키워드 |
| 가변 변수 | 기본값 | var 키워드 |
| 문자열 결합 | + 연산자 | $변수 템플릿 |
| 타입 추론 | ❌ 명시 필수 | ✅ 자동 추론 |
실행 결과
이름: 규철, 나이: 30
마무리 - 다음 편 예고
오늘 배운 것 ✅
- Kotlin이 Java보다 코드량 40% 적은 이유
- IntelliJ IDEA 설치 및 프로젝트 생성
- Hello World 작성 및 실행
- val, var 변수 선언
- 문자열 템플릿 ($변수)
다음 편에서 배울 것 📚
2편: 변수와 타입 완벽 이해 | val vs var, 타입 추론, Nullable
- val과 var의 심화 차이
- 타입 추론 vs 명시적 타입 선언
- nullable과 non-nullable의 차이 (? 연산자)
- Java 개발자가 놓치기 쉬운 함정들
실습 과제 💪
- IntelliJ에서 Kotlin 프로젝트 생성
- 본인 이름과 나이를 출력하는 코드 작성
- val과 var의 차이 직접 테스트
자주 묻는 질문 (FAQ)
Q: Java를 모르는데 Kotlin부터 배워도 되나요?
A: 가능하지만 Java 기초 개념(클래스, 인터페이스 등)이 있으면 더 좋습니다.
Q: Android 개발 안 하는데도 배울 가치 있나요?
A: 네! Spring Boot 백엔드 개발에서도 점점 많이 사용됩니다.
Q: 회사에서 Java만 쓰는데 배워야 하나요?
A: 개인 프로젝트나 이직 준비에 유용하고, 최신 문법을 배우면 Java 코드도 개선됩니다.
관련 글
💬 댓글로 알려주세요!
- Kotlin을 배우려는 이유는 무엇인가요?
- Java에서 가장 불편했던 점은?
- 이 글이 도움이 되셨나요?
'개발 > java basic' 카테고리의 다른 글
| Kotlin 함수 완벽 가이드 | fun으로 시작하는 간결한 코드 (1) | 2025.12.11 |
|---|---|
| Kotlin 시작하기 | Java 개발자를 위한 첫 번째 Kotlin 코드 (0) | 2025.12.10 |
| Kotlin 테스트 완벽 가이드 | Mockito-Kotlin, JUnit5, Spring Boot Test (0) | 2025.12.09 |
| Kotlin 예외 처리 완벽 가이드 | try-catch, runCatching, Result 타입 (1) | 2025.12.06 |
| Kotlin과 Spring Boot 완벽 통합 가이드 | Annotations, DI, 실전 패턴 (0) | 2025.12.05 |
