Skip to main content

🚀 첫 Kotlin 프로젝트

📖 무엇을 만들까요?

이 가이드에서는:

  1. Hello World - 첫 Kotlin 프로그램
  2. 계산기 - 사용자 입력받기
  3. 간단한 게임 - 숫자 맞추기 게임

🎯 프로젝트 생성

IntelliJ IDEA에서 생성

1. IntelliJ IDEA 실행
2. New Project 클릭
3. Generators → Kotlin (또는 왼쪽에서 Kotlin 선택)
4. 설정:
Name: my-first-kotlin
Location: 원하는 위치
Build system: Gradle Kotlin
JDK: 17 또는 21
Gradle DSL: Kotlin

5. Create 클릭
6. Gradle 동기화 대기 (1-2분)

프로젝트 구조 확인

my-first-kotlin/
├── src/
│ └── main/
│ └── kotlin/
│ └── Main.kt ← 우리가 작성할 파일
└── build.gradle.kts

👋 Hello World

1. Main.kt 파일 열기

// src/main/kotlin/Main.kt

fun main() {
println("Hello World!")
}

2. 실행하기

방법 1: 재생 버튼 클릭
→ main 함수 왼쪽의 초록색 ▶ 버튼 클릭

방법 2: 단축키
→ Windows/Linux: Ctrl + Shift + F10
→ macOS: Ctrl + Shift + R

방법 3: 터미널
→ ./gradlew run

3. 결과

Hello World!

축하합니다! 첫 Kotlin 프로그램 실행 성공! 🎉

💬 이름 물어보기

조금 더 발전시켜봅시다:

fun main() {
println("안녕하세요!")
println("이름이 뭔가요?")

val name = readln() // 사용자 입력
println("반갑습니다, ${name}님!")
}

실행 결과

안녕하세요!
이름이 뭔가요?
홍길동 ← 입력
반갑습니다, 홍길동님!

🧮 간단한 계산기

두 수 더하기

fun main() {
println("=== 간단한 계산기 ===")

println("첫 번째 숫자를 입력하세요:")
val num1 = readln().toInt() // 문자열을 정수로 변환

println("두 번째 숫자를 입력하세요:")
val num2 = readln().toInt()

val sum = num1 + num2

println("$num1 + $num2 = $sum")
}

실행 결과

=== 간단한 계산기 ===
첫 번째 숫자를 입력하세요:
10 ← 입력
두 번째 숫자를 입력하세요:
20 ← 입력
10 + 20 = 30

사칙연산 추가

fun main() {
println("=== 계산기 ===")

println("첫 번째 숫자:")
val a = readln().toInt()

println("연산자 (+, -, *, /):")
val operator = readln()

println("두 번째 숫자:")
val b = readln().toInt()

val result = when (operator) {
"+" -> a + b
"-" -> a - b
"*" -> a * b
"/" -> a / b
else -> {
println("잘못된 연산자입니다")
return
}
}

println("$a $operator $b = $result")
}

실행 결과

=== 계산기 ===
첫 번째 숫자:
15 ← 입력
연산자 (+, -, *, /):
* ← 입력
두 번째 숫자:
3 ← 입력
15 * 3 = 45

🎮 숫자 맞추기 게임

조금 더 재미있는 프로그램을 만들어봅시다!

fun main() {
println("=== 숫자 맞추기 게임 ===")
println("1부터 100 사이의 숫자를 맞춰보세요!")

// 1부터 100 사이의 랜덤 숫자
val answer = (1..100).random()
var attempts = 0 // 시도 횟수

while (true) {
println("\n숫자를 입력하세요:")
val guess = readln().toInt()
attempts++

when {
guess < answer -> println("UP! 더 큰 숫자입니다.")
guess > answer -> println("DOWN! 더 작은 숫자입니다.")
else -> {
println("정답입니다! 🎉")
println("시도 횟수: $attempts")
break
}
}
}
}

게임 플레이

=== 숫자 맞추기 게임 ===
1부터 100 사이의 숫자를 맞춰보세요!

숫자를 입력하세요:
50 ← 입력
UP! 더 큰 숫자입니다.

숫자를 입력하세요:
75 ← 입력
DOWN! 더 작은 숫자입니다.

숫자를 입력하세요:
63 ← 입력
정답입니다! 🎉
시도 횟수: 3

📝 주석 달기

코드를 설명하는 주석:

fun main() {
// 한 줄 주석
println("Hello")

/*
* 여러 줄 주석
* 여러 줄에 걸쳐
* 설명을 작성
*/
println("World")

/**
* KDoc 주석 (문서화용)
* 함수나 클래스에 사용
*/
}

🔧 자주 하는 실수

1. readln() vs readLine()

// ❌ 잘못된 방법
val input = readLine() // Deprecated

// ✅ 올바른 방법
val input = readln()

2. 타입 변환 잊어버리기

// ❌ 오류 발생
val num = readln()
val result = num + 10 // String + Int는 불가능!

// ✅ 올바른 방법
val num = readln().toInt()
val result = num + 10

3. null 처리

// ❌ 오류 가능성
val num = readln().toInt() // 숫자가 아니면 에러!

// ✅ 안전한 방법
val input = readln()
val num = input.toIntOrNull() // 실패하면 null

if (num != null) {
println("숫자: $num")
} else {
println("숫자가 아닙니다!")
}

💡 실전 프로젝트: BMI 계산기

배운 것을 종합해서 BMI 계산기를 만들어봅시다:

fun main() {
println("=== BMI 계산기 ===")

// 키 입력
println("키를 입력하세요 (cm):")
val heightCm = readln().toDoubleOrNull()

if (heightCm == null) {
println("올바른 숫자를 입력해주세요!")
return
}

// 몸무게 입력
println("몸무게를 입력하세요 (kg):")
val weight = readln().toDoubleOrNull()

if (weight == null) {
println("올바른 숫자를 입력해주세요!")
return
}

// BMI 계산
val heightM = heightCm / 100
val bmi = weight / (heightM * heightM)

// 결과 출력
println("\n=== 결과 ===")
println("BMI: %.2f".format(bmi))

// BMI 평가
val evaluation = when {
bmi < 18.5 -> "저체중"
bmi < 23.0 -> "정상"
bmi < 25.0 -> "과체중"
bmi < 30.0 -> "비만"
else -> "고도비만"
}

println("평가: $evaluation")
}

실행 결과

=== BMI 계산기 ===
키를 입력하세요 (cm):
175 ← 입력
몸무게를 입력하세요 (kg):
70 ← 입력

=== 결과 ===
BMI: 22.86
평가: 정상

🎯 도전 과제

스스로 만들어보세요!

과제 1: 성적 계산기

세 과목의 점수를 입력받아
평균을 계산하고 학점(A~F)을 출력

힌트:
- 90점 이상: A
- 80점 이상: B
- 70점 이상: C
- 60점 이상: D
- 60점 미만: F

과제 2: 가위바위보 게임

컴퓨터와 가위바위보 게임

힌트:
- (1..3).random()으로 컴퓨터 선택
- 1: 가위, 2: 바위, 3: 보

과제 3: 환율 계산기

원화를 달러, 엔화, 유로로 변환

힌트:
- 환율을 변수로 저장
- when으로 통화 선택

🤔 자주 묻는 질문

Q1. println과 print의 차이는?

print("Hello ")     // 줄바꿈 없음
print("World")
// 출력: Hello World

println("Hello") // 줄바꿈 포함
println("World")
// 출력:
// Hello
// World

Q2. 변수명은 어떻게 짓나요?

// ✅ 좋은 변수명 (의미 있음)
val userName = "홍길동"
val studentAge = 20
val totalPrice = 15000

// ❌ 나쁜 변수명 (의미 불명)
val a = "홍길동"
val x = 20
val temp = 15000

Q3. 프로그램이 바로 종료돼요

fun main() {
println("Hello")
// 여기서 바로 종료됨
}

// 해결: 입력 대기
fun main() {
println("Hello")
readln() // Enter 누를 때까지 대기
}

🎬 마치며

첫 Kotlin 프로젝트를 완성했습니다! 🎉

배운 것:
✅ 프로젝트 생성
✅ println으로 출력
✅ readln()으로 입력
✅ 변수 사용
✅ 조건문 (when)
✅ 반복문 (while)

이제 본격적으로 Kotlin 문법을 배워봅시다!

다음 단계: 변수로 val과 var의 차이를 알아보세요!