일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 실행권한
- perfect
- GoCD
- Jupyter Notebook
- port forwarding
- Materials
- nGrinder
- postgres
- nohup
- Jupyter
- openpyxl
- centos
- insert
- appium server
- PYTHON
- ubuntu
- 28015
- kitura
- sshpass
- STF_PortForwarding
- SWIFT
- postgresql
- create table
- ftp
- ssh
- mysql
- appium
- nmap
- rethinkdb
- STF
- Today
- Total
목록Golang (42)
don't stop believing
url path에 paramater가 추가되는 경우의 binding 방법입니다.https://github.com/gin-gonic/gin#bind-uri 바로 코드를 보겠습니다. package main import ( "github.com/gin-gonic/gin" ) type User struct { Name string `uri:"name" binding:"required"` Age uint16 `uri:"age" binding:"required"` ID string `uri:"id" binding:"required,uuid"` } func setupRouter() *gin.Engine { // Disable Console Color // gin.DisableConsoleColor() r := gin..
로그 파일을 만들어 보겠습니다.https://github.com/gin-gonic/gin#how-to-write-log-file 코드는 몇지 되지 않습니다.먼저 command 창에 로그를 찍지 않도록 합니다.gin.DisableConsoleColor() 로그 파일 이름을 지정하기 위해 날짜를 받아와 로그파일 이름을 만들어 줍니다.t := time.Now()startTime := t.Format("2006-01-02 15:04:05")logFile := "example/ngleLog-" + startTime 그리고 os.Create()로 로그 파일을 만들어 줍니다.f, err := os.Create(logFile) 로그파일을 gin.DefaultWriter에 넣습니다.gin.DefaultWriter = i..
어떤 Method로 오건 Query String 데이터를 binding하려면 ShouldBindQuery()를 사용하면 됩니다.https://github.com/gin-gonic/gin#only-bind-query-string 아래 간단한 예제 코드가 있습니다.r.Any()에 ShouldBindQuery()를 사용했습니다. package main import ( "net/http" "time" "github.com/gin-gonic/gin" ) type User struct { User string `form:"user" json:"user" xml:"user" binding:"required"` Password string `form:"password" json:"password" xml:"passwo..
binding은 method에 따라 달라집니다.ShouldBind() 함수는 GET일때와 POST일때가 다릅니다. GET method일 때는 Query String이 bind로 오고, POST method일 경우 header의 content-type를 확인해 Json인지, XML인지를 확인합니다. 만약 Json도 XML도 아니라면 Form 데이터를 받습니다.https://github.com/gin-gonic/gin#bind-query-string-or-post-data 아래와 같이 코드를 작성했습니다.살펴볼 것은 r.Any()를 사용했습니다. 그리고 ShouldBind()를 사용해 binding 합니다. package main import ( "net/http" "time" "github.com/gin-..
request로 전달되는 데이터를 지정된 type 또는 model에 바로 적용(bind)하는 기능입니다. 또한 넘어오는 데이터를 binding할때 필수 데이터가 있는지를 validation 할 수도 있습니다.https://github.com/gin-gonic/gin#model-binding-and-validation 우선 bind type에는 크게 두가지가 있습니다. Must bind, Should bindMust bind의 Method는 Bind, BindJSON, BindXML, BindQuery, BindYAML 이렇게 있습니다.Must bind는 request로 넘어온 데이터 중 bind할 대상이 없을 경우 바로 에러를 리턴합니다.c.AbortWithError(400, err).SetType(Er..
Gin에서 mysql의 CURD 예제를 확인해 보겠습니다.https://gist.github.com/rsj217/26492af115a083876570f003c64df118#file-golang-gin-mysql-curd-go-L99 먼저 go-sql-driver의 mysql package를 다운 받습니다. $ go get -u github.com/go-sql-driver/mysql go-sql-driver/mysql에 대한 설명은 아래 링크에서 확인하세요.https://github.com/go-sql-driver/mysql 이번엔 mysql에 테이블을 만들어 줍니다.저는 아래와 같이 간단한 테이블을 하나 만들었습니다. CREATE TABLE IF NOT EXISTS person( id INT AUTO_I..
API 서버를 만드는데있어 문서화는 필수입니다.Gin에서 Swagger를 사용하는 걸 확인해 보겠습니다.https://github.com/swaggo/gin-swagger 먼저 Go에서 swag를 사용할 수 있게 source code를 다운로드 합니다. $ go get -u github.com/swaggo/swag/cmd/swag swag가 잘 다운로드 돼었는지 확인해 봅니다. $ ll $GOPATH/src/github.com/swaggo total 0 drwxr-xr-x 3 tongchunkim staff 96B 3 4 17:58 . drwxr-xr-x 30 tongchunkim staff 960B 3 4 17:58 .. drwxr-xr-x 34 tongchunkim staff 1.1K 3 4 17:5..
이번에는 route를 그룹핑하는 기능입니다.https://github.com/gin-gonic/gin#grouping-routes 사용은 간단합니다. 하위 그룹으로 묶을 route를 Group()으로 묶으면 됩니다.바로 예제 코드를 보면 아래와 같습니다. package main import ( "github.com/gin-gonic/gin" ) func setupRouter() *gin.Engine { // Disable Console Color // gin.DisableConsoleColor() r := gin.Default() // Simple group: v1 v1 := r.Group("/v1") { v1.POST("/login", loginEndpoint) v1.POST("/submit", sub..
Gin의 기능을 확인하다 아래와 같은 코드를 확인확인했습니다.r.MaxMultipartMemory = 8 > 3 // 01110000인 비트를 오른쪽으로 3번 이동합니다. fmt.Printf("%08b", b) // 비트로 확인하면 00001110이 되고 정수로는 14입니다. 만약 오른쪽으로 5번 이동하게 되면 00000011이 되고 정수로는 13이 됩니다. 이제 Gin에서 봤던 메모리 설정 코드입니다.파일 업로드를 하는데 업로드되는 파일의 사이즈를 메모리에 할당 할 수 있도록 설정을 하게 됩니다. // Set a lower memory limit for multipart forms (default is 32 MiB) r.MaxMultipartMemory = 8
이번에는 파일 업로드를 해보겠습니다.https://github.com/gin-gonic/gin#upload-files 파일 하나 올리는 것과, 여러개를 동시에 올리는 것을 해보겠습니다.우선 파일을 올릴 수 있는 html 파일을 아래와 같이 만들어 줍니다. 저는 uploadfiles.html로 만들었습니다.위치는 templates 폴더 안에 위치합니다. page: {{ .page }} upload file: 이번에는 server.go 내용입니다. package main import ( "fmt" "log" "net/http" "path/filepath" "github.com/gin-gonic/gin" ) func setupRouter() *gin.Engine { // Disable Console Color..