[golang] panic 없이 interface{} 타입 변환하기
·
Language/Go
서론Go 언어에서 interface{} 타입은 모든 타입을 담을 수 있어 매우 유연하게 사용 되는 타입이다. 주로 다양한 데이터 타입을 처리하거나 동적 데이터를 다룰 때 사용된다. 그러나 interface{} 타입으로 처리하다가 원래의 타입으로 변환할 때 잘못된 타입으로 변환을 시도하면 panic이 발생할 수 있다. 이 글에서는 interface{} 타입을 사용할 때 panic을 방지하고 안전하게 타입을 변환하는 방법을 다룬다. 잘못된 단언var gpa interface{} = 4.5// panic: interface conversion: interface {} is float64, not stringmsg := "GPA: " + gpa.(string)fmt.Println(msg)GPA는 float64 ..
[golang] Base64 인코딩과 디코딩 처리하기
·
Language/Go
서론Base64는 데이터를 바이너리에서 텍스트로 변환하는 데 널리 사용되는 방식이다. 주로 바이너리 데이터를 JSON과 XML과 같은 텍스트 기반 프로토콜로 전송할 때나 로그 파일에 기록할 때 사용된다. Go 언어는 Base64 인코딩과 디코딩 작업을 쉽게 처리할 수 있는 표준 패키지를 제공한다. 이 글에서는 encoding/base64 패키지를 사용하여 Base64 인코딩과 디코딩을 하는 방법을 다룬다. Base64 인코딩 / 디코딩 예제package mainimport ( "encoding/base64" "fmt")func main() { data := "Jae-Sung~" encoded := base64.StdEncoding.EncodeToString([]byte(data)) ..
[golang] 런타임에 콜 스택 출력하기
·
Language/Go
서론디버깅은 소프트웨어 개발 과정에서 중요한 부분을 차지한다. 코드가 예상대로 동작하지 않거나 오류가 발생했을 때, 문제의 원인을 추적하고 해결하는 데 많은 시간이 소요된다. 특히 함수 호출 순서나 실행 흐름을 파악하는 것이 어려울 때, 콜 스택을 출력하는 방법은 매우 유용한 도구가 된다. Go 언어는 runtime과 debug 패키지를 제공하여, 런타임 중 함수 호출 정보를 쉽게 출력하고 코드 흐름을 추적할 수 있게 한다. 이러한 콜 스택 출력 기능은 디버깅 과정에서 매우 유용하며, 예기치 않은 오류를 해결하는 데 큰 도움이 된다. STDERR에 콜 스택 출력package mainimport "runtime/debug"func subModule() { debug.PrintStack()}func M..