Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewHTTPServer ¶ added in v1.0.1
func NewHTTPServer(cfg HTTPServerConfig) *echo.Echo
NewHTTPServer 설정된 미들웨어를 포함한 Echo 인스턴스를 생성합니다.
미들웨어는 다음 순서로 적용됩니다 (순서가 중요합니다):
PanicRecovery - 패닉 복구 및 로깅 - 핸들러에서 발생한 panic을 복구하여 서버 다운 방지 - 스택 트레이스와 함께 에러를 로깅 - 가장 먼저 적용되어야 다른 미들웨어의 panic도 복구 가능
RequestID - 요청 ID 생성 - 각 요청에 고유한 ID를 부여 (X-Request-ID 헤더) - 로깅 및 디버깅 시 요청 추적에 사용 - 로깅 미들웨어보다 먼저 적용되어야 로그에 request_id 포함 가능
HTTPLogger - HTTP 요청/응답 로깅 - 모든 HTTP 요청과 응답 정보를 구조화된 로그로 기록 - 민감 정보(app_key, password 등)는 자동으로 마스킹 - 요청 처리 시간, 상태 코드, IP 주소 등 기록
CORS - Cross-Origin Resource Sharing - 허용된 Origin에서의 크로스 도메인 요청 처리 - Preflight 요청(OPTIONS) 자동 응답 - 프로덕션 환경에서는 특정 도메인만 허용 권장
Secure - 보안 헤더 설정 - X-XSS-Protection, X-Content-Type-Options 등 보안 헤더 자동 추가 - XSS, 클릭재킹 등의 공격 방어 - 가장 마지막에 적용되어 모든 응답에 보안 헤더 추가
라우트 설정은 포함되지 않으며, 반환된 Echo 인스턴스에 별도로 설정해야 합니다.
func SetupRoutes ¶ added in v1.0.1
func SetupRoutes(e *echo.Echo, h *handler.SystemHandler)
SetupRoutes 시스템 전반에 적용되는 공통 라우트를 설정합니다.
포함되는 라우트:
- System 엔드포인트: /health, /version (인증 불필요)
- Swagger UI: /swagger/*
- 커스텀 HTTP 에러 핸들러 (404, 500 등)
Types ¶
type HTTPServerConfig ¶ added in v1.0.1
type HTTPServerConfig struct {
// Debug는 Echo의 디버그 모드 활성화 여부를 설정합니다.
Debug bool
// AllowOrigins는 CORS에서 허용할 Origin 목록을 설정합니다.
// 프로덕션 환경에서는 특정 도메인만 허용하도록 설정해야 합니다.
AllowOrigins []string
}
HTTPServerConfig 서버 생성 시 필요한 설정을 정의합니다.
type Service ¶ added in v1.0.1
type Service struct {
// contains filtered or unexported fields
}
Service Notify API 서버의 생명주기를 관리하는 서비스입니다.
이 서비스는 다음과 같은 역할을 수행합니다:
- Echo 기반 HTTP/HTTPS 서버 시작 및 종료
- API 엔드포인트 라우팅 설정 (Health Check, Version, 알림 메시지 전송 등)
- Swagger UI 제공
- 서비스 상태 관리 (시작/중지)
- Graceful Shutdown 지원 (5초 타임아웃)
서비스는 고루틴으로 실행되며, context를 통해 종료 신호를 받습니다. Start() 메서드로 시작하고, context 취소로 종료됩니다.
func NewService ¶ added in v1.0.1
func NewService(appConfig *config.AppConfig, notificationSender notification.Sender, buildInfo common.BuildInfo) *Service
NewService Service 인스턴스를 생성합니다.
Returns:
- 초기화된 Service 인스턴스
func (*Service) Start ¶ added in v1.0.1
Start API 서비스를 시작합니다.
서비스는 별도의 고루틴에서 실행되며, 다음 작업을 수행합니다:
- Echo 서버 설정 (미들웨어, 라우트)
- HTTP/HTTPS 서버 시작
- Shutdown 신호 대기
- Graceful Shutdown 처리
Parameters:
- serviceStopCtx: 종료 신호를 받기 위한 Context (cancel 호출 시 종료)
- serviceStopWG: 서비스 종료 대기를 위한 WaitGroup
Returns:
- error: notificationService가 nil이거나 이미 실행 중인 경우 에러 반환
Note: 이 함수는 즉시 반환되며, 실제 서버는 고루틴에서 실행됩니다.