ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • golang: godoc 철학과 사용방법
    Back-End/Golang 2024. 11. 18. 22:27
    반응형

    Go 언어는 문서화를 매우 중요하게 생각합니다. 좋은 문서는 소프트웨어를 더 접근 가능하고 유지보수하기 쉽게 만들어줍니다. 이를 위해 Go는 코드와 문서를 밀접하게 연계시키는 도구인 godoc을 제공합니다. 이번 글에서는 godoc의 철학과 사용 방법, 그리고 예시를 통해 godoc에 대해 자세히 알아보겠습니다.

    godoc의 철학

    godoc의 핵심 철학은 문서는 코드와 함께 발전해야 한다는 것입니다. 이를 위해 godoc은 Go 소스 코드와 그 주석을 파싱하여 HTML이나 텍스트 형식의 문서를 생성합니다. 이러한 접근 방식은 다음과 같은 장점을 제공합니다:

    • 코드와 문서의 일치성: 문서가 코드와 동일한 저장소에 있기 때문에, 코드 변경 시 문서도 함께 업데이트됩니다.
    • 간단한 주석 규칙: 특별한 문법이나 마크업 없이도, 코드에 좋은 주석을 작성하는 것만으로 문서화가 가능합니다.
    • 개발자 경험 향상: godoc 웹 인터페이스를 통해 함수의 문서에서 구현부로 한 번에 이동할 수 있어, 코드 이해가 용이해집니다.

    godoc 사용 방법

    godoc은 특별한 설정 없이도 간단한 주석 작성 규칙만으로 문서를 생성합니다. 주요 규칙은 다음과 같습니다:

    1. 선언 바로 위에 주석 작성

    타입, 변수, 상수, 함수, 패키지 등을 문서화하려면 해당 선언 바로 위에 주석을 작성합니다. 주석과 선언 사이에는 빈 줄이 없어야 합니다.

    // Fprint는 기본 형식으로 인수를 포맷팅하여 w에 작성합니다.
    // 두 인수가 모두 문자열이 아닐 때 인수 사이에 공백이 추가됩니다.
    // 반환 값은 작성된 바이트 수와 발생한 오류입니다.
    func Fprint(w io.Writer, a ...interface{}) (n int, err error) {
        // 구현부
    }

    위 예제에서 주석은 Fprint 함수에 대한 문서를 제공합니다.

    2. 주석은 선언의 이름으로 시작

    주석은 해당 선언의 이름으로 시작하는 완전한 문장이어야 합니다. 이는 다양한 형식의 문서를 생성할 때 일관성을 유지하고, 첫 문장만 발췌해도 의미가 통하도록 합니다.

    3. 패키지 주석

    패키지 선언 바로 위에 작성된 주석은 패키지 전체에 대한 문서로 사용됩니다. 예를 들어:

    // sort 패키지는 슬라이스와 사용자 정의 컬렉션을 정렬하는 기능을 제공합니다.
    package sort

    더 긴 설명이 필요한 경우 doc.go 파일을 생성하고 그 안에 패키지 주석을 작성할 수 있습니다.

    4. BUG 주석

    최상위 레벨의 주석 중 "BUG(작성자):"로 시작하는 것은 알려진 버그로 인식되어 문서의 "Bugs" 섹션에 포함됩니다.

    // BUG(john): Title 규칙은 유니코드 구두점을 올바르게 처리하지 못합니다.

    5. Deprecated 주석

    더 이상 사용되지 않거나 호환성을 위해 남겨둔 요소는 주석에 "Deprecated:"로 시작하는 단락을 추가하여 표시합니다.

    주석 작성 시 형식 규칙

    godoc은 주석을 HTML로 변환할 때 몇 가지 형식 규칙을 따릅니다:

    • 단락 구분: 빈 줄로 단락을 구분합니다.
    • 사전 서식된 텍스트: 코드 블록이나 예제는 주석의 주변 텍스트보다 들여쓰기하여 작성합니다.
    • URL 링크: 주석 내의 URL은 자동으로 하이퍼링크로 변환됩니다.

    예제

    아래는 godoc을 활용한 간단한 예제입니다.

    // Package calc는 간단한 수학 연산 기능을 제공합니다.
    package calc
    
    // Add는 두 정수를 더한 값을 반환합니다.
    func Add(a int, b int) int {
        return a + b
    }
    
    // Subtract는 두 정수의 차를 반환합니다.
    func Subtract(a int, b int) int {
        return a - b
    }

    이렇게 작성된 주석은 godoc을 통해 깔끔한 문서로 생성됩니다.

    마치며

    godoc은 Go 개발자에게 강력하면서도 사용하기 쉬운 문서화 도구입니다. 특별한 문법이나 마크업 없이도, 코드에 좋은 주석을 작성하는 것만으로도 훌륭한 문서를 생성할 수 있습니다. 코드와 문서를 일치시키고 싶다면, godoc의 철학과 규칙을 따라 프로젝트에 적용해보세요.

    반응형
Designed by Tistory.