Go

· Go
Go 언어로 Rest API 개발 시, 구조체를 이용하여 JSON이나 XML로 직렬화하여 사용하는 경우가 대부분입니다. 구조체를 바로 직렬화 할 수 있지만, Go 언어의 경우 직렬화를 하려면 구조체 내의 필드들의 첫 글자를 모두 대문자로 써야 합니다. Tag 없이 직렬화를 하면 대문자 그대로 직렬화가 되죠. type User struct { ID int Name string Age int } func main() { user := User{ ID: 1, Name: "yeo", Age: 30, } userMarshal, err := json.Marshal(user) if err != nil { log.Fatal(err) } fmt.Println(string(userMarshal)) } 출력 결과 {"ID"..
· Go
회사 프로젝트에서는 go의 기본 net/http 모듈과 라우터패키지인 gorilla/mux 만 사용해서 웹 서비스를 구현했었다. 현재 GO 언어 웹 프레임워크 중 유명한 Gin을 한번 사용해보려고 한다. 아래 페이지는 Go 웹프레임워크들의 순위를 매겨놓은 페이지인데, Gin이 현재 1위인듯.. https://github.com/mingrammer/go-web-framework-stars mingrammer/go-web-framework-stars :star: Web frameworks for Go, most starred on Github - mingrammer/go-web-framework-stars github.com Gin 웹 프레임워크 Github 페이지 https://github.com/gin-..
· Go
Go로 작성한 프로그램에서 로그를 별도의 파일에 쓸 때, 프로그램에서 Panic 발생 시 Panic에 출력은 해당 파일에 남지 않는다. Panic 에 대한 출력을 로그 파일에 남기고 싶을 때, 첫 번째 방법은 프로그램 실행 시 아래와 같이 실행하는 것. Program 2> ./log.txt& 두 번째 방법은 syscall 패키지를 사용해서 stderr을 로그 파일로 리디렉션 시키는 방법이 있다. func main() { logFile, _ := os.Create("log.txt") syscall.Dup2(int(logFile.Fd()), 2) } 이렇게 하면 패닉이 발생했을 때, 로그 파일에 패닉에 대한 내용이 남는다. 근데 syscall 패키지는 크로스플랫폼이 아니다. 즉, 이 방법은 리눅스에 한정된다..
yeo311
'Go' 카테고리의 글 목록