filepath 를 알고 있을 때 ext 추출 참고 https://pkg.go.dev/path/filepath filepath package - path/filepath - Go Packages HasPrefix exists for historical compatibility and should not be used. Deprecated: HasPrefix does not respect path boundaries and does not ignore case when required. pkg.go.dev import ( "fmt" "path/filepath" ) func main() { ext := filepath.Ext("/tmp/test.go") fmt.Println("ext 1:", ext) ext..
Language
Go 에서 지역 시간 추가 해야 될 때 kst 기준 9시간을 더해줘야한다. package main import ( "fmt" "time" ) func main() { loc, err := time.LoadLocation("Asia/Seoul") if err != nil { panic(err) } now := time.Now() fmt.Println("now", now) kst := now.In(loc) fmt.Println("kst", kst) } now 2009-11-10 23:00:00 +0000 UTC m=+0.000000001 kst 2009-11-11 08:00:00 +0900 KST
Go 에서 웹 프레임워크 선택이 어렵다. 그 이유는 치우치지 않고 여러가지를 개발자들이 사용하고, 기본 http/net 을 이용하여 만들어서 사용하기 때문이다. 3가지를 전부 깊게 다뤄본건 아니지만 Document 를 참고하고 프레임워크를 이해 하려고 여러가지 문서를 찾아본 뒤 차이점이 보이기 때문에 작성을 한다. ( Gin , Echo ) vs Fiber 첫번째 분류를 이렇게 하고 Fiber 를 먼저 살펴보자. https://github.com/gofiber/fiber GitHub - gofiber/fiber: ⚡️ Express inspired web framework written in Go ⚡️ Express inspired web framework written in Go. Contribute ..
Go 에서 time format 하는 방법 The layouts use the reference time on Mon Jan 2 15:04:05 MST 2006 to indicate the pattern under which to format the time object. layout 의 형태가 정해져있다. 2006-01-02 15:04:05 이 형태를 알아두고 time format 하면 된다. 처음에 Go time format 이 layout 에 대해 잘 이해되지 않았는데 한번 해보면 다음부터는 헷갈리지 않고 바로 사용 할 수 있다. package main import ( "fmt" "time" ) func main() { t := time.Now() fmt.Println(t) fmt.Println(t..
Go 에서 Unix time to UTC time 으로 변경 할 때가 종종 있어서 기록 func main() { t := time.Unix(1658322376, 0) fmt.Println(t) } 2022-07-20 22:06:16 +0900 KST func time.Unix(sec int64, nsec int64) time.Time Unix returns the local Time corresponding to the given Unix time, sec seconds and nsec nanoseconds since January 1, 1970 UTC. It is valid to pass nsec outside the range [0, 999999999]. Not all sec values have a..
코드 안에 민감한 정보를 넣고 커밋하기가 꺼려질때가 있다. 그리고 더 중요한건 배포 환경 간에 변경 될 수 있는 코드는 따로 환경 변수로 두는 것이 맞다. Go 언어에서 좋은 라이브러리가 있어서 소개 하려고 한다. godotenv https://github.com/joho/godotenv GitHub - joho/godotenv: A Go port of Ruby's dotenv library (Loads environment variables from `.env`.) A Go port of Ruby's dotenv library (Loads environment variables from `.env`.) - GitHub - joho/godotenv: A Go port of Ruby's dotenv lib..
Go 언어에서 server port 가 열려있는지 확인하는 방법을 알아보자. https://pkg.go.dev/net net package - net - Go Packages Package net provides a portable interface for network I/O, including TCP/IP, UDP, domain name resolution, and Unix domain sockets. Although the package provides access to low-level networking primitives, most clients will need only the basic interface prov pkg.go.dev net.Dial 함수가 있는데 server 연결이 안되어있..
Go 언어로 client 가 되어 요청을 할 때, 사용하는 방법이 net/http 사용하여 요청하는 방법이다. package main import ( "fmt" "io/ioutil" "net/http" ) func main() { // Request 객체 생성 req, err := http.NewRequest("GET", "http://csharp.tips/feed/rss", nil) if err != nil { panic(err) } //필요시 헤더 추가 가능 req.Header.Add("User-Agent", "Crawler") // Client객체에서 Request 실행 client := &http.Client{} resp, err := client.Do(req) if err != nil { pan..