first commit
This commit is contained in:
77
config/config.go
Normal file
77
config/config.go
Normal file
@@ -0,0 +1,77 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"log"
|
||||
"os"
|
||||
"strconv"
|
||||
|
||||
"github.com/joho/godotenv"
|
||||
)
|
||||
|
||||
// Config 애플리케이션 전역 설정
|
||||
type Config struct {
|
||||
Env string
|
||||
ServerPort string
|
||||
AppKey string
|
||||
AppSecret string
|
||||
BaseURL string
|
||||
DartAPIKey string
|
||||
NaverClientID string
|
||||
NaverClientSecret string
|
||||
GroqAPIKey string // Groq API 키
|
||||
GroqModel string // Groq 모델명
|
||||
CacheTTLSeconds int
|
||||
WSMaxClients int
|
||||
WSPollIntervalMS int
|
||||
AdminID string // 관리자 ID
|
||||
AdminPassword string // 관리자 비밀번호
|
||||
}
|
||||
|
||||
var App *Config
|
||||
|
||||
// Load .env 파일을 읽어 설정을 초기화
|
||||
func Load() {
|
||||
// 개발 환경에서만 .env 파일 로딩 (.env 없어도 오류 무시)
|
||||
if err := godotenv.Load(); err != nil {
|
||||
log.Println("경고: .env 파일이 없습니다. 환경변수를 직접 설정해야 합니다.")
|
||||
}
|
||||
|
||||
App = &Config{
|
||||
Env: getEnv("APP_ENV", "development"),
|
||||
ServerPort: getEnv("SERVER_PORT", "8080"),
|
||||
AppKey: getEnv("KIWOOM_APP_KEY", ""),
|
||||
AppSecret: getEnv("KIWOOM_APP_SECRET", ""),
|
||||
BaseURL: getEnv("KIWOOM_BASE_URL", "https://openapi.koreainvestment.com:9443"),
|
||||
DartAPIKey: getEnv("DART_API_KEY", ""),
|
||||
NaverClientID: getEnv("NAVER_CLIENT_ID", ""),
|
||||
NaverClientSecret: getEnv("NAVER_CLIENT_SECRET", ""),
|
||||
GroqAPIKey: getEnv("GROQ_API_KEY", ""),
|
||||
GroqModel: getEnv("GROQ_MODEL", "llama-3.3-70b-versatile"),
|
||||
CacheTTLSeconds: getEnvInt("CACHE_TTL_SECONDS", 1),
|
||||
WSMaxClients: getEnvInt("WS_MAX_CLIENTS", 100),
|
||||
WSPollIntervalMS: getEnvInt("WS_POLL_INTERVAL_MS", 1000),
|
||||
AdminID: getEnv("ADMIN_ID", "admin"),
|
||||
AdminPassword: getEnv("ADMIN_PASSWORD", ""),
|
||||
}
|
||||
}
|
||||
|
||||
// IsDevelopment 개발 환경 여부 반환
|
||||
func (c *Config) IsDevelopment() bool {
|
||||
return c.Env == "development"
|
||||
}
|
||||
|
||||
func getEnv(key, defaultVal string) string {
|
||||
if val := os.Getenv(key); val != "" {
|
||||
return val
|
||||
}
|
||||
return defaultVal
|
||||
}
|
||||
|
||||
func getEnvInt(key string, defaultVal int) int {
|
||||
if val := os.Getenv(key); val != "" {
|
||||
if n, err := strconv.Atoi(val); err == nil {
|
||||
return n
|
||||
}
|
||||
}
|
||||
return defaultVal
|
||||
}
|
||||
Reference in New Issue
Block a user