학습
Kotlin 입출력 기초
Kotlin 입출력 기초 — 초급
Kotlin 입출력 기초
1. 도입 (왜 배워야 하는가)
Kotlin은 Android 개발과 서버 사이드 개발에서 널리 사용되는 언어입니다. 입출력(IO)은 프로그램이 데이터를 읽고 쓰는 과정으로, 모든 프로그램에서 필수적인 기능입니다. 예를 들어, 사용자가 입력한 데이터를 처리하여 결과를 출력하는 것은 모든 애플리케이션에서 기본적으로 요구되는 기능입니다.
입출력 기능을 제대로 이해하지 못하면, 사용자의 입력을 받을 수 없고, 결과를 보여줄 수 없는 프로그램을 만들게 되어 개발의 기본을 놓칠 수 있습니다. 이는 실무에서 사용자 경험을 저해하고, 프로젝트의 성공 가능성을 낮추는 중요한 문제입니다.
2. 핵심 개념 설명
입출력 개념 정의
- 입력(Input): 사용자 또는 외부 시스템이 프로그램에 데이터를 제공하는 과정입니다.
- 출력(Output): 프로그램이 처리한 정보를 사용자 또는 외부 시스템에 제공하는 과정입니다.
실생활 비유
입출력은 마치 레스토랑의 웨이터와 같다고 비유할 수 있습니다. 사용자가 주문을 하면 웨이터가 주방에 전달하고, 요리가 완성되면 웨이터가 손님에게 가져다줍니다. 여기서 사용자의 주문은 입력이고, 요리는 출력입니다.
관련 용어 정리
| 용어 | 설명 |
|---|---|
| 표준 입력 | 키보드와 같은 기본적인 입력 장치에서 데이터를 입력받는 것 |
| 표준 출력 | 콘솔이나 화면에 데이터를 출력하는 것 |
| 파일 입출력 | 파일 시스템을 통해 데이터를 읽고 쓰는 과정 |
3. 기본 코드 예제
가장 기본적인 입력과 출력을 보여주는 코드는 다음과 같습니다.
fun main() {
// 사용자에게 이름을 입력하라고 요청
print("이름을 입력하세요: ") // 출력: 이름을 입력하세요:
// 입력을 받아 변수에 저장
val name = readLine() // 사용자가 입력한 값을 받음
// 입력된 이름을 출력
println("안녕하세요, $name!") // 출력: 안녕하세요, [사용자가 입력한 이름]!
}
실행 결과
이름을 입력하세요: 홍길동
안녕하세요, 홍길동!
코드 한 줄씩 동작 설명
print("이름을 입력하세요: "): 콘솔에 "이름을 입력하세요:"라는 메시지를 출력합니다. 여기서는print를 사용하여 줄바꿈 없이 출력합니다.val name = readLine(): 사용자가 키보드로 입력한 값을 읽어서name변수에 저장합니다.readLine()함수는 사용자의 입력을 기다립니다.println("안녕하세요, $name!"): 입력된 이름을 포함하여 인사 메시지를 출력합니다.$name은 문자열에서 변수 값을 삽입하는 방법입니다.- 잘못된 코드
- 올바른 코드
- 잘못된 코드
- 올바른 코드
- Kotlin의 입출력은 프로그램의 기본적인 기능으로, 사용자와의 상호작용을 가능하게 합니다.
readLine()과println()을 사용하여 입력과 출력을 처리할 수 있습니다.- 입력받은 데이터는 적절한 타입으로 변환해야 합니다.
- null 처리를 통해 예외를 방지할 수 있습니다.
4. 실전 활용 예제
예제 1: 간단한 계산기
쇼핑몰에서 사용자가 입력한 두 수의 합을 구하는 간단한 계산기를 만들 수 있습니다.
fun main() {
print("첫 번째 숫자를 입력하세요: ")
val num1 = readLine()!!.toInt() // 첫 번째 숫자 입력받기
print("두 번째 숫자를 입력하세요: ")
val num2 = readLine()!!.toInt() // 두 번째 숫자 입력받기
val sum = num1 + num2 // 두 숫자의 합 계산
println("두 숫자의 합은 $sum 입니다.") // 결과 출력
}
예제 2: 사용자 정보 저장
사용자 정보를 입력받아 파일에 저장하는 프로그램입니다.
import java.io.File
fun main() {
print("이름을 입력하세요: ")
val name = readLine()!!
print("나이를 입력하세요: ")
val age = readLine()!!
// 파일에 사용자 정보 저장
File("user_info.txt").writeText("이름: $name, 나이: $age")
println("정보가 저장되었습니다.")
}
5. 흔한 실수와 주의사항
실수 1: 입력 값 타입 변환 실수
val number = readLine() // String 타입
val result = number + 10 // String과 Int의 덧셈
val number = readLine()!!.toInt() // String을 Int로 변환
val result = number + 10 // 정상 작동
실수 2: null 처리 미비
val name = readLine() // null 처리가 없음
println("안녕하세요, $name!") // null일 경우 예외 발생
val name = readLine() ?: "손님" // null일 경우 "손님"으로 대체
println("안녕하세요, $name!")
6. 정리
다음에 학습하면 좋은 주제는 파일 입출력(File I/O)입니다. 파일 읽기 및 쓰기 방법을 배우면, 더 복잡한 데이터 처리가 가능해집니다.