GO · Hello World
프로젝트 디렉토리 구조
Go 프로젝트의 표준 디렉토리 구조. cmd/, internal/, pkg/ 패턴이 커뮤니티 표준입니다.
Hello World입문project-structurecmdinternalpkg
핵심 설명
Go 프로젝트의 표준 디렉토리 구조. cmd/, internal/, pkg/ 패턴이 커뮤니티 표준입니다.
Go code
package main
import "fmt"
// 권장 프로젝트 구조:
// myapp/
// ├── cmd/
// │ └── server/
// │ └── main.go // 진입점
// ├── internal/
// │ ├── handler/ // HTTP 핸들러
// │ ├── service/ // 비즈니스 로직
// │ └── repository/ // 데이터 접근
// ├── pkg/ // 외부 공개 패키지
// ├── go.mod
// └── go.sum
func main() {
fmt.Println("cmd/ → 실행 파일 진입점")
fmt.Println("internal/ → 외부 import 불가 (캡슐화)")
fmt.Println("pkg/ → 외부에서 import 가능")
}학습 팁
internal/ 디렉토리는 Go 컴파일러가 강제하는 접근 제한입니다. 외부 모듈에서 절대 import할 수 없으므로 내부 구현을 안전하게 숨길 수 있습니다.
주의할 점
모든 코드를 main 패키지에 넣으면 테스트와 재사용이 어렵습니다. 비즈니스 로직은 별도 패키지로 분리하세요.
자주 묻는 질문
프로젝트 디렉토리 구조란 무엇인가요?
Go 프로젝트의 표준 디렉토리 구조. cmd/ , internal/ , pkg/ 패턴이 커뮤니티 표준입니다.
프로젝트 디렉토리 구조 학습 시 주의할 점은 무엇인가요?
모든 코드를 main 패키지에 넣으면 테스트와 재사용이 어렵습니다. 비즈니스 로직은 별도 패키지로 분리하세요.
Continue Learning
Go 학습을 이어가세요
총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.