Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
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
Archives
Today
Total
관리 메뉴

밤빵's 개발일지

[TIL]20241102 백틱(`) 활용 본문

Kotlin

[TIL]20241102 백틱(`) 활용

최밤빵 2024. 11. 2. 21:32

코틀린을 공부하면서 자바와는 다른 기능 중 하나로 백틱(`)을 활용한 함수와 변수 이름 정의 방식을 알게 되었다. 자바를 공부할 때는 함수나 변수 이름을 지을 때 특정 문법 규칙을 엄격하게 따랐어야 했다. 하지만 코틀린에서는 백틱을 활용하여 일반적으로 허용되지 않는 예약어를 함수나 변수 이름으로 사용할 수 있고, 심지어 공백이 포함된 테스트 이름도 정의할 수 있다. 이러한 기능은 코드의 가독성을 높이고 테스트 코드 작성 시 의도를 더욱 명확히 전달할 수 있게 해준다. 

 

▶백틱(`)을 활용한 함수와 변수 정의

코틀린에서는 일반적으로 사용할 수 없는 이름이나 예약어를 백틱(`)으로 감싸면 함수나 변수 이름으로 사용할 수 있다. 예를 들어, when, class, in` 같은 코틀린의 예약어는 보통 이름으로 사용할 수 없지만, 백틱을 사용하면 이러한 예약어를 변수나 함수 이름으로 정의할 수 있다. 이를 통해 코드를 작성할 때 더 자연스럽고 의미 있는 이름을 사용할 수 있게 된다.

fun `class`(): String {
    return "This is a function named 'class'"
}

fun main() {
    println(`class`()) // 출력: This is a function named 'class'
}

→ 위 코드에서 class는 코틀린의 예약어이지만, 백틱으로 감싸면 함수 이름으로 사용할 수 있다. 자바에서는 예약어를 함수나 변수로 사용할 수 없기 때문에 코틀린의 이러한 기능은 유연성과 표현력을 높여준다.

 

▷백틱을 사용해야 하는 상황

백틱을 사용한 이름은 코드의 가독성을 높이고 표현력을 높여줄 수 있지만, 무분별하게 사용하는 것은 오히려 혼란을 줄 수 있다. 예약어와 충돌하지 않도록 이름을 지정해야 하거나, 특정한 상황에서 코드의 의미를 더 분명히 전달할 필요가 있을 때 유용하게 사용할 수 있다.

 

▶백틱을 활용한 특수 문자가 포함된 함수와 변수

코틀린에서는 함수나 변수 이름에 일반적으로 허용되지 않는 공백이나 특수 문자를 백틱으로 감싸서 사용할 수 있다. 주로 테스트 코드에서 많이 사용되며, 테스트 함수 이름을 더 명확하게 작성할 수 있다. 예를 들어, 함수 이름을 "should return true when input is valid"처럼 특정 조건을 설명하는 방식으로 작성하면 테스트 의도가 더 분명하게 드러난다.

fun `should return true when input is valid`() {
val result = true // 예시 결과
    assert(result)
        }

→ 이러한 방식은 테스트 코드에서 함수 이름을 읽기 쉽게 만들어주며, 테스트의 목적과 의도를 명확하게 전달할 수 있어 유용하다. 자바에서는 함수 이름에 공백을 사용할 수 없기 때문에, 테스트 이름을 길게 작성할 때 가독성이 떨어지는 경우가 있었다. 하지만 코틀린의 백틱 기능을 활용하면 이러한 제약 없이 읽기 좋은 테스트 코드를 작성할 수 있다.

 

▶테스트 코드에서 백틱 활용

테스트 코드를 작성할 때 백틱을 활용하면, 테스트의 목적을 자연어처럼 표현할 수 있다. 이를 통해 코드 리뷰어나 개발자 동료들이 테스트의 의도를 쉽게 파악할 수 있다. 특히, BDD(Behavior-Driven Development) 스타일의 테스트 작성에 유용하다. 예를 들어, 다음과 같은 코드에서 테스트 이름을 백틱으로 감싸 "사용자가 로그인할 때"와 같은 자연스러운 표현을 사용하여 테스트의 목적을 명확하게 전달할 수 있다.

import org.junit.Test
import kotlin.test.assertTrue

class LoginTest {

    @Test
    fun `should return true when user logs in successfully`() {
        val isLoggedIn = true // 예시 결과
        assertTrue(isLoggedIn)
    }
}

→ 위 코드에서 should return true when user logs in successfully라는 함수 이름은 테스트가 성공할 조건을 명확히 표현하며, 테스트 의도를 더욱 직관적으로 전달할 수 있다. 자바의 JUnit에서는 메서드 이름에 공백을 사용할 수 없기 때문에 메서드 이름을 CamelCase로 작성하거나 밑줄로 구분해야 했다. 코틀린에서는 백틱을 사용해 자연어 형태의 이름을 그대로 함수 이름으로 쓸 수 있어 테스트 코드가 더 명확해진다.

 

▶자바와 코틀린의 차이점: 백틱을 사용한 이름 정의

자바에서는 변수나 메서드 이름에 공백이나 특수 문자를 사용할 수 없으며, 예약어 역시 이름으로 사용할 수 없다. 따라서 자바에서는 CamelCase 스타일로 이름을 작성하는 것이 일반적이며, 예를 들어 isUserLoggedIn처럼 단어를 이어 붙여 이름을 정하는 방식이 흔하다. 또한, 자바에서는 class, for, if 같은 예약어를 변수나 함수 이름으로 사용할 수 없다. 이로 인해 자바에서는 코드의 표현력에 제약이 있다. 반면, 코틀린에서는 백틱(`)을 사용해 공백이나 특수 문자가 포함된 함수나 변수 이름을 작성할 수 있다. 이를 통해 예약어를 이름으로 사용할 수도 있고, 테스트 함수의 이름을 자연어처럼 표현해 코드의 가독성을 높일 수 있다. 특히, 테스트 코드 작성 시 이러한 기능이 유용하며, 코드 리뷰 과정에서 테스트의 목적을 명확히 파악하는 데 도움을 준다. 코틀린의 백틱 기능 덕분에 더 유연하고 직관적인 코드 작성이 가능하다.

fun `this is a function with spaces in its name`() {
println("Hello, Kotlin!")
}

fun `class`() {
println("Using a reserved keyword as a function name")
}

→ 위와 같은 방식은 테스트 코드에서 특히 유용한데, 테스트 이름을 좀 더 자연어에 가깝게 작성함으로써 코드의 가독성을 높일 수 있다. 예를 들어, should return true when user logs in successfully 같은 이름을 백틱을 사용해 그대로 함수 이름으로 작성할 수 있어, 테스트의 의도를 명확하게 전달하는 데 큰 도움이 된다.

 

▶요약 비교

특징 자바(Java) 코틀린(Kotlin)
백틱(`) 사용 불가능 가능
예약어 사용 가능 여부 불가능 백틱으로 감싸면 사용 가능
함수/변수 이름에 공백 포함 불가능 백틱으로 감싸면 사용 가능
주로 사용되는 이름 스타일 CamelCase CamelCase 또는 백틱(`)을 사용한 자연어 스타일
코틀린의 백틱 기능은 테스트 코드 작성 시 특히 유용하며, 코드 가독성과 의도 전달력을 높여주는 중요한 차별점으로 작용한다. 자바에서는 이러한 기능이 제공되지 않기 때문에, 코틀린의 백틱 사용이 코드 표현력 측면에서 더 유연하다고 할 수 있다.

 

▶백틱 사용 시 주의사항

백틱을 사용하면 코드가 더욱 직관적이고 읽기 쉬워지지만, 잘못 사용하면 오히려 혼란을 줄 수 있다. 예를 들어, 지나치게 긴 함수 이름이나 변수 이름에 백틱을 남용하면 가독성이 떨어질 수 있다. 또한, 너무 많은 특수 문자를 포함하는 이름은 오히려 코드의 의도를 파악하기 어렵게 만들 수 있다. 따라서 백틱은 꼭 필요한 상황에서만 신중하게 사용하는 것이 좋다.

코틀린의 백틱(`)을 활용한 함수 및 변수 정의 방식은 자바와 비교해 유연하고 표현력 있는 코드를 작성할 수 있게 해준다. 특히, 테스트 코드에서 백틱을 사용하여 자연어처럼 테스트 이름을 작성하면 테스트의 의도가 더 명확히 드러나고 코드 가독성이 높아진다. 자바에서는 불가능했던 이러한 표현 방식은 코틀린의 장점 중 하나이며, 더욱 읽기 쉬운 코드를 작성하는 데 유용하다. 코드를 작성할 때 백틱을 적절히 활용해 함수와 변수 이름을 직관적으로 정의하는 것은 코틀린을 사용하는 개발자에게 매우 유익한 기술이 될 것이다.