세로줄의 정체
안드로이드 스튜디오나, IntelliJ와 같은 IDE(Integrated Development Environment)를 사용하다 보면 우측에 세로로 줄이 그어져 있는 것을 확인할 수 있습니다. 오늘은 이 세로줄에 대해 알아보겠습니다.
본론부터 말하면, 이 세로줄은 "한 줄에 코드가 몇 자까지 들어가야 하는가"를 알려주는 가이드 라인입니다.
이 선을 넘어가는 코드의 경우, 줄바꿈을 하도록 권장하는 기준 선이라 볼 수 있습니다.
Google Android Kotlin 스타일 가이드의 경우, 이를 100자로 규정하고 있으며 안드로이드 스튜디오 역시 기본 100자로 설정되어 있습니다.
[ 참조 : https://developer.android.com/kotlin/style-guide?hl=ko#line_wrapping ]
Kotlin 스타일 가이드 | Android Developers
Kotlin 스타일 가이드 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 이 문서에서는 Kotlin 프로그래밍 언어의 소스 코드와 관련된 Google의 Android 코딩 표준을
developer.android.com
실제 안드로이드 스튜디오에 들어가 확인해 보면, 100자에 딱 맞춰 가이드라인이 설정 돼 있는 것을 확인할 수 있습니다.
줄바꿈 방법
그렇다면 이 가이드라인을 넘어가는 경우, 어떻게 줄바꿈을 해야 하는지 알아보겠습니다.
우선 아래 3가지 항목은 이 열 제한에 영향을 받지 않습니다.
- 열 제한을 준수할 수 없는 줄(예: KDoc의 긴 URL)
- package 및 import 문
- 잘라서 셸에 붙여 넣을 수 있는 주석의 명령줄
이를 제외한 함수, 속성, 조건문 등 같은 경우 여러 인자, 조건을 처리하다 보면 가이드라인을 넘어가는 경우가 있습니다. 이 경우, 다음과 같이 줄바꿈을 처리합니다.
1. 함수
// 줄바꿈 전
fun longFunctionName(argument1: Type, argument2: AnotherType, argument3: AnotherType, argument4: AnotherType): ReturnType {
// function body
}
// 줄바꿈 후
fun longFunctionName(
argument1: Type,
argument2: AnotherType,
argument3: AnotherType,
argument4: AnotherType,
): ReturnType {
// function body
}
// 관련이 있는 인자는 같은 줄에 그룹화 할 수 있다
fun longFunctionName(
argument1: Type,
width: Int, height: Int,
x: Int, y: Int,
): ReturnType {
// function body
}
2. 속성
// 줄바꿈 전
private val defaultCharset: Charset? = EncodingRegistry.getInstance().getDefaultCharsetForPropertiesFiles(file)
// 줄바꿈 후
private val defaultCharset: Charset? =
EncodingRegistry.getInstance().getDefaultCharsetForPropertiesFiles(file)
3. 조건문
// 줄바꿈 전
if (!component.isSyncing && !hasAnyKotlinRuntimeInScope(module)) {
return createKotlinNotConfiguredPanel(module)
}
// 줄바꿈 후
if (!component.isSyncing &&
!hasAnyKotlinRuntimeInScope(module)
) {
return createKotlinNotConfiguredPanel(module)
}
추가로, 단축키 Ctrl + Alt + L 을 입력하면 자동으로 개행 및 줄바꿈을 처리해 주는 것을 확인할 수 있습니다.
마치며
오늘은 IDE의 가이드라인의 존재 이유와 줄바꿈 방식에 대해 간략히 알아보았습니다.