디버그 출력
DD 는 개발과 디버그 단계의 데이터 시각화를 위한 빠른 디버그 출력 함수 세트를 제공합니다.
패키지 수준 디버그 함수
dd. 접두사로 직접 호출합니다.
Print 시리즈
| 함수 | 시그니처 | 설명 |
|---|---|---|
Print | (args ...any) | 전역 로거의 Writer 로 출력 (LevelInfo, 보안 필터 적용) |
Println | (args ...any) | Print 와 동일 (내부 Log() 가 자동 줄바꿈, 보안 필터 적용) |
Printf | (format string, args ...any) | 포맷팅 출력 (LevelInfo, 보안 필터 적용) |
dd.Print("값:", 42, true)
dd.Println("Print 와 동일 동작")
dd.Printf("사용자: %s, ID: %d", name, id)팁 보안 필터
Print 시리즈 함수는 민감 데이터 필터를 거치므로 민감 정보를 포함할 수 있는 디버그 데이터 출력에 적합합니다.
JSON 출력
| 함수 | 시그니처 | 설명 |
|---|---|---|
JSON | (data ...any) | stdout 으로 컴팩트 JSON 출력 (caller 정보 포함) |
JSONF | (format string, args ...any) | 포맷팅 문자열을 컴팩트 JSON 으로 stdout 에 출력 (caller 정보 포함) |
user := map[string]any{"name": "admin", "role": "super"}
dd.JSON(user)
// 출력: main.go:42 {"name":"admin","role":"super"}경고 보안 필터 미적용
JSON/JSONF는 원본 데이터를 직접 출력하며 민감 데이터 필터를 거치지 않습니다. 프로덕션 환경에서 사용을 금지합니다.
Text 출력
| 함수 | 시그니처 | 설명 |
|---|---|---|
Text | (data ...any) | stdout 으로 보기 좋게 출력 |
Textf | (format string, args ...any) | stdout 으로 포맷팅된 텍스트 출력 |
dd.Text(complexData)
dd.Textf("처리 결과: %+v", result)Exit 함수
| 함수 | 시그니처 | 설명 |
|---|---|---|
Exit | (data ...any) | caller 정보 포함 텍스트 출력 후 종료 (exit code 0), 복잡한 타입은 자동 보기 좋게 출력, 보안 필터 미적용 |
Exitf | (format string, args ...any) | caller 정보 포함 포맷팅 출력 후 종료 (exit code 0, 보안 필터 미적용) |
dd.Exit("디버그 중단점", someData)
// caller 정보 포함 텍스트 (복잡한 타입은 자동 보기 좋게 출력) 출력 후 os.Exit(0) 호출Logger 메서드
Logger 인스턴스도 동명의 메서드를 제공합니다 (단, Exit/Exitf는 제외되며 패키지 수준 함수로만 사용 가능).
logger := dd.Default()
// Print 시리즈는 구성된 Writer 로 쓰기 (보안 필터 적용)
logger.Print("인스턴스 메서드")
// JSON/Text는 stdout 으로 직접 출력 (보안 필터 미적용)
logger.JSON(data)
logger.Text(data)경고 Logger 메서드와 패키지 수준 함수의 차이
logger.Print()는 현재 Logger 인스턴스에 구성된 Writer 로 출력하며 보안 필터를 거치고, dd.Print()는 전역 로거의 Writer 로 출력하며 보안 필터를 거칩니다. 두 행동은 비슷하지만 출력 대상이 다를 수 있습니다. logger.JSON()과 logger.Text()는 dd.JSON()과 dd.Text()와 마찬가지로 stdout 으로 직접 출력하며 보안 필터를 거치지 않습니다.
적용 시나리오
| 시나리오 | 권장 함수 |
|---|---|
| 값 빠른 출력 | dd.Print() |
| 구조체 보기 | dd.JSON() |
| 포맷팅 출력 | dd.Text() |
| 디버그 중단점 | dd.Exit() |
| 민감 정보 포함 가능 | dd.Print()(자동 필터) |
| 성능 분석 데이터 | dd.JSON() |
위험 디버그 전용
JSON, Text, Exit 시리즈는 개발 디버그용으로 설계되었으며 프로덕션 코드에 사용해서는 안 됩니다(민감 데이터 필터를 거치지 않고 stdout 으로 직접 출력). Print/Println/Printf는 Info와 동일한 동작 (LevelInfo + 보안 필터 + 구성된 writer) 이므로 프로덕션에 사용할 수 있습니다. 프로덕션 환경에서는 Info, Error 등 표준 로그 메서드를 우선 사용하세요.