🗂️ Go 언어 29강 - 프로젝트 구조 리팩토링 & 설정 통합
이제 점점 커지는 프로젝트를 정리할 타이밍입니다. 이번 강의에서는 구조 정리와 설정 통합을 진행합니다.
1️⃣ config 패키지 만들기
// config/config.go
package config
import (
"log"
"os"
"github.com/joho/godotenv"
)
func LoadEnv() {
err := godotenv.Load()
if err != nil {
log.Fatal(".env 파일을 불러올 수 없습니다")
}
}
func Get(key string) string {
return os.Getenv(key)
}
2️⃣ main.go에서 불러오기
import "yourapp/config"
func main() {
config.LoadEnv()
port := config.Get("PORT")
...
}
3️⃣ 구조 제안
/yourapp
├── main.go
├── config/
│ └── config.go
├── router/
│ └── router.go
├── handler/
│ └── member.go
├── model/
│ └── member.go
└── db/
└── sqlite.go
🧠 요약
- 환경 설정은 config 패키지로 통합
- main은 가능한 얇고 깔끔하게 유지
- 코드의 재사용성과 가독성이 향상됨
한 줄 요약: "리팩토링은 실력자의 증표다!"