콘텐츠로 이동

Rust 주석

주석(comment)은 사람이 읽으라고 코드에 남기는 메모예요. Rust는 컴파일할 때 주석을 완전히 무시하기 때문에, 주석은 프로그램 동작에 전혀 영향을 주지 않아요. 좋은 주석은 코드가 무엇을 하는지만이 아니라 왜 그렇게 하는지를 설명해요.

가장 흔한 주석은 //로 시작해요. 그 줄에서 // 뒤에 오는 건 모두 무시돼요.

fn main() {
// 이건 주석이에요. Rust는 완전히 건너뛰어요
println!("안녕하세요!"); // 주석은 줄 끝에 둘 수도 있어요
}

실행 결과:

안녕하세요!
▶ 직접 실행해 보기

메모가 길다면 각 줄을 //로 시작하면 돼요.

fn main() {
// 이 프로그램은 사용자에게 인사해요.
// 텍스트 한 줄을 출력해요.
// 첫 번째 예제로 작성했어요.
println!("안녕하세요!");
}

실행 결과:

안녕하세요!
▶ 직접 실행해 보기

Rust는 /*와 */ 사이에 쓰는 블록 주석도 지원해요. 블록 주석은 여러 줄에 걸쳐 쓸 수 있어요.

fn main() {
/*
이건 블록 주석이에요.
줄마다 //를 붙이지 않아도
여러 줄에 걸쳐 쓸 수 있어요.
*/
println!("안녕하세요!");
}

실행 결과:

안녕하세요!
▶ 직접 실행해 보기

실제로는 대부분의 Rust 코드가 여러 줄이어도 //를 써요. 커뮤니티의 관례이기도 하고, 에디터 단축키와도 잘 맞거든요.

뭔가를 테스트하는 동안 특정 줄을 잠깐 꺼 두고 싶을 때도 주석이 편리해요.

fn main() {
println!("이 줄은 실행돼요");
// println!("이 줄은 지금 꺼 두었어요");
}

실행 결과:

이 줄은 실행돼요
▶ 직접 실행해 보기

코드를 그대로 반복하는 주석은 아무 도움이 안 돼요. 무엇을 하는지는 코드가 이미 말해 주니까요. 좋은 주석은 왜 그런지 설명하거나, 읽는 사람이 코드만 봐서는 알 수 없는 걸 경고해 줘요.

fn main() {
let minutes = 135;
// 타이머는 시간 단위로만 표시해요. 정수 나눗셈은 나머지를
// 버리는데, 여기서는 바로 그게 우리가 원하는 동작이에요.
let hours = minutes / 60;
let leftover = minutes - hours * 60; // 한 시간을 채우지 못한 나머지 분
println!("{hours}시간 {leftover}분");
}

실행 결과:

2시간 15분
▶ 직접 실행해 보기

// minutes를 60으로 나눈다 같은 주석과 비교해 보세요. 틀린 말은 아니지만, minutes / 60은 누구나 읽을 수 있어요. 정말 쓸모 있는 정보는 여기서 나눗셈을 해도 왜 괜찮은지예요.

익혀 두면 좋은 습관이 몇 가지 더 있어요.

  • 주석을 최신 상태로 유지하세요. 코드와 더 이상 맞지 않는 주석은 주석이 없는 것보다 나빠요. 사람들은 주석을 믿거든요.
  • // TODO: 주석은 아직 끝내지 못한 작업을 표시하는 흔한 방법이에요. // TODO: 음수 처리하기처럼 써요. 많은 에디터가 TODO를 강조 표시해 주고, 프로젝트 안의 모든 TODO를 목록으로 보여 주기도 해요.
  • Rust의 블록 주석은 중첩할 수 있어요. C와 달리, 이미 /* */ 주석이 들어 있는 코드를 다른 블록 주석으로 한 번 더 감싸도 잘 동작해요.
fn main() {
/* 지금은 꺼 두었어요:
println!("예전 인사말"); /* 모두에게 인사했어요 */
*/
println!("새 인사말");
}

실행 결과:

새 인사말
▶ 직접 실행해 보기

Rust에는 ///(슬래시 세 개)로 시작하는 특별한 주석이 있어요. 이걸 문서화 주석(doc comment)이라고 해요. 함수를 설명하는 데 쓰고, cargo doc을 실행하면 Rust가 이 주석으로 둘러볼 수 있는 문서 웹사이트를 만들어 줘요.

/// 두 숫자를 더해서 결과를 반환해요.
fn add(a: i32, b: i32) -> i32 {
a + b
}

초보자라면 아직 문서화 주석을 쓸 일은 없어요. ///는 문서용이고 //는 일반 메모용이라는 것만 알아 두세요. 준비가 되면 문서화 페이지에서 문서화 주석을 쓰는 법, 문서를 빌드하는 법, 그리고 예제를 테스트로 만드는 법까지 배울 수 있어요.

이 프로그램은 세 줄을 출력해요. 가운데 줄을 주석으로 바꿔서 1번 줄과 3번 줄만 출력되게 해 보세요. 힌트: 꺼 두고 싶은 줄 맨 앞에 //를 붙이면 돼요.

fn main() {
println!("1번 줄");
println!("2번 줄");
println!("3번 줄");
}
정답 보기
fn main() {
println!("1번 줄");
// println!("2번 줄");
println!("3번 줄");
}

실행 결과:

1번 줄
3번 줄
▶ 직접 실행해 보기

이번에는 1번 줄부터 4번 줄까지 출력하되, 블록 주석 하나로 2번 줄과 3번 줄을 꺼 두세요. 힌트: 2번 줄 앞에 /*로 주석을 시작하고, 3번 줄 뒤에 */로 끝내면 돼요.

정답 보기
fn main() {
println!("1번 줄");
/*
println!("2번 줄");
println!("3번 줄");
*/
println!("4번 줄");
}

실행 결과:

1번 줄
4번 줄
▶ 직접 실행해 보기
  • 주석은 Rust가 무시하는 메모예요. 코드를 설명할 때 써요.
  • //는 한 줄 주석을 시작해요(가장 흔한 종류예요).
  • /* ... */는 여러 줄에 쓰는 블록 주석이고, 블록 주석은 중첩할 수 있어요.
  • 좋은 주석은 코드가 이미 말해 주는 무엇이 아니라 왜를 설명해요.
  • ///는 문서를 생성할 때 쓰는 문서화 주석이에요.

이해도 점검

1. Rust는 코드를 컴파일할 때 주석을 어떻게 처리할까요?

2. /// 문서화 주석은 어디에 쓸까요?

점수: 0 / 2