올바른 방법 선택하기
각 방법을 사용하는 시점
올바른 방법 선택하기은(는) CoddyKit의 무료 Kotlin Academy 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Kotlin Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Kotlin Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
스코프 함수 선택하기
사용할 수 있는 스코프 함수가 다섯 가지일 때, 적절한 함수를 고르는 기준은 두 가지 질문으로 정리할 수 있습니다.
- 객체를 어떻게 참조하나요?
this인가요,it인가요? - 무엇을 반환하나요? 람다 결과인가요, 객체인가요?
선택 표
전체적인 내용은 다음과 같습니다.
let은it을 사용하고 람다 결과를 반환합니다.run은this를 사용하고 람다 결과를 반환합니다.with는this를 사용하고 인수로 받아 람다 결과를 반환합니다.apply는this를 사용하고 객체를 반환합니다.also는it을 사용하고 객체를 반환합니다.
null 안전성에는 let 사용하기
null 허용 값이 있고 값이 존재할 때만 처리하고 싶다면 안전 호출과 함께 let을 사용합니다.
fun main() {
val name: String? = "Ada"
name?.let { println("Hello $it") }
}this와 결과가 필요할 때 run 사용하기
this로 멤버에 접근하면서 결과를 계산하고 싶을 때는 run을 사용합니다.
fun main() {
val text = "scope"
val info = text.run { "$this has length $length" }
println(info)
}작업을 묶을 때 with 사용하기
null이 아닌 객체에 대해 여러 작업을 수행하고 싶을 때는 with가 자연스럽게 읽힙니다.
fun main() {
val list = listOf(1, 2, 3)
with(list) {
println(sum())
println(size)
}
}구성에는 apply 사용하기
객체를 생성한 후 여러 속성을 설정해야 할 때 apply를 사용하면 코드가 깔끔해지고 객체도 반환됩니다.
data class Server(var host: String = "", var port: Int = 0)
fun main() {
val server = Server().apply {
host = "0.0.0.0"
port = 80
}
println(server)
}부수 효과에는 also 사용하기
객체를 변경하지 않고 로그를 기록하거나 디버깅하거나 검증하고 싶을 때는 it을 사용하는 also를 선택합니다.
fun main() {
val nums = listOf(1, 2, 3)
.also { println("Got ${it.size} items") }
println(nums.sum())
}스코프 함수 결합하기
실제 코드에서는 스코프 함수를 자주 연결합니다. apply로 구성하고, also로 로그를 기록하고, let으로 변환하는 식입니다.
data class User(var name: String = "", var score: Int = 0)
fun main() {
val label = User()
.apply { name = "Max"; score = 90 }
.also { println("Created $it") }
.let { "${it.name}: ${it.score}" }
println(label)
}과도한 사용 피하기
스코프 함수를 중첩하거나 과도하게 사용하면 가독성이 떨어질 수 있습니다. 일반 변수와 명시적인 코드가 더 명확하게 읽힌다면 그렇게 작성하는 것이 좋습니다. 스코프 함수는 영리해 보이기 위해서가 아니라 실제 반복을 줄이기 위해 사용합니다.
중첩할 때의 함정
스코프 함수를 중첩하면 it과 this가 모호해집니다. 중첩해야 한다면 매개변수의 이름을 바꾸어 코드를 명확하게 유지합니다.
fun main() {
val outer = "A"
outer.let { o ->
"B".let { i ->
println("$o then $i")
}
}
}빠르게 이해하는 방법
다음과 같이 기억하세요. 객체를 반환하는 함수인 apply와 also는 파이프라인을 구성하고, 결과를 반환하는 함수인 let, run, with는 값을 변환합니다. 가독성을 기준으로 it과 this 중 적절한 것을 선택하세요.
빠른 확인
새로 만든 객체를 구성한 후 그 객체를 다시 받으려면 어떤 스코프 함수를 사용해야 하나요?
복습
이제 참조 방식(this와 it)과 반환 값(객체와 결과)을 기준으로 선택하는 방법을 익혔습니다. let과 run은 변환하고, with는 작업을 묶고, apply는 구성하고, also는 부수 효과를 추가합니다. 이 함수들은 코드를 복잡하게 만들기보다 불필요한 요소를 줄이는 데 사용하세요.
자주 묻는 질문
“올바른 방법 선택하기” 강의는 무료인가요?
네 — “올바른 방법 선택하기” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Kotlin Academy 강의 전체를 잠금 해제할 수 있습니다. Kotlin Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“올바른 방법 선택하기”에서 뭘 배우나요?
각 방법을 사용하는 시점 브라우저에서 직접 실행하는 실습 코드로 Kotlin Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Kotlin Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Kotlin Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.
“올바른 방법 선택하기” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Kotlin Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Kotlin Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- let과 run
- apply와 also
- with
- 올바른 방법 선택하기