Go 언어 프로젝트의 디렉토리 구조

Golang의 프로젝트 디렉토리 구조에는 필수 표준이 없지만 코드를 더 잘 구성하고 관리하기 위해 커뮤니티에서 일부 합의와 모범 사례가 형성되었습니다. 다음은 일반적인 Golang 프로젝트 디렉터리 구조의 예입니다.

/myproject
    ├── /cmd
    | ├── /app
    | | └── main.go
    | └── /anotherapp
    | └── main.go
    |
    ├── /pkg
    | ├── mypackage1
    | | ├── file1.go
    | | └── file2.go
    | └── mypackage2
    | ├── file1.go
    | └── file2.go
    |
    ├── /internal
    | ├── myinternalpackage
    | | ├── file1.go
    | | └── file2.go
    |
    ├── /api
    | └── api_definitions.proto
    |
    ├── /web
    | ├── 정적
    | ├── 템플릿
    | └── main.go
    |
    ├── /scripts
    ├── /configs
    ├── /build
    ├── /deployments
    ├── /test
    ├── 이동합니다. 모드
    └── go.sum
 

이 디렉토리 구조를 설명하십시오.

  •  `/cmd`: 기본 애플리케이션 코드가 포함되어 있습니다. 각 애플리케이션에는 이 디렉터리 아래에 `/cmd/app`, `/cmd/anotherapp`과 같은 별도의 하위 디렉터리가 있어야 합니다. 각 하위 디렉터리에는 일반적으로 애플리케이션을 시작하는 데 사용되는 'main.go' 파일이 포함되어 있습니다.
  •  `/pkg`: 라이브러리 코드가 포함되어 있으며 다른 프로젝트에서 참조할 수 있습니다. 이러한 라이브러리는 재사용이 가능해야 하며 특정 애플리케이션과 독립적이어야 합니다.
  • `/internal`: `/pkg`와 유사하지만 여기의 코드는 현재 프로젝트에만 표시되며 다른 프로젝트에서 가져올 수 없습니다. 이는 내부 구현의 캡슐화를 보장합니다.
  • `/api`: 프로토콜 버퍼 파일과 같은 API 정의가 포함되어 있습니다.
  • `/web`: 정적 파일, 템플릿, 웹 애플리케이션의 기본 코드 등 웹 관련 코드가 포함되어 있습니다.
  • `/scripts`: 스크립트와 도구를 실행하는 장소가 포함되어 있습니다.
  • `/configs`: 애플리케이션 구성을 위한 구성 파일이 포함되어 있습니다. `/build`: 빌드 스크립트와 생성된 실행 파일이 포함되어 있습니다.
  • `/deployments`: 배포 스크립트와 구성 파일이 포함되어 있습니다.
  • `/test`: 테스트 코드가 포함되어 있습니다.
  • `go.mod` 및 `go.sum`: 프로젝트 종속성을 관리하는 데 사용되는 Go 모듈용 구성 파일입니다.

이는 단지 예시일 뿐이며, 실제로 특정 프로젝트의 디렉토리 구조는 프로젝트의 규모와 성격, 팀의 선호도에 따라 달라질 수 있습니다. 그러나 몇 가지 일반적인 디렉터리 구조와 모범 사례를 따르면 코드를 더 읽기 쉽고 유지 관리하기 쉽게 만드는 데 도움이 될 수 있습니다.

Guess you like

Origin blog.csdn.net/weixin_39896629/article/details/134812941
Recommended