golang (5) 썸네일형 리스트형 golang 조건문 사용시 주의할 점 ! golang 으로 조건문을 사용할 때 주의할점이 있다. package main import "fmt" func setInt() (int, int, error) { return 5, 6, nil } func main() { var err error if err != nil { fmt.Println("error event occurred") } myInt := 3 if true { myInt, newInt, err := setInt() if err != nil { fmt.Println("error event occurred") } fmt.Println("inside of if condition: ", myInt, newInt) } fmt.Println("after if condition: ", myInt) .. Go gin middleware 적용하기 middleware(미들웨어) ?? client server 통신에서, 중복되는 일(인증, 로깅, ...)을 효과적으로 처리하기 위해 middleware를 활용합니다. cleint middleware server middleware(미들웨어)를 golang의 API Server 에서 적용시키는 예제를 확인합니다. 예제 지난 포스트 에서 gin 패키지를 이용한 API 를 만들었었는데 비슷하게 활용할 예정이다. main.go package main import "github.com/gin-gonic/gin" // middleware 구현 func DummyMiddleware() gin.HandlerFunc { // Do some initialization logic here return func(c *gin.. [golang] go routine과 chan 이용한 메세지 입력 golang의 가장 강력한 무기는 go routine을 이용한 효율적인 비동기 프로세스로 볼 수 있는데, 이를 잘 활용하기 위해 chan을 활용한다. (chan 역시 go의 아주 큰 장점이다) 아래 예제는 사용자의 입력을 10초동안 기다리면서 1초에 한번 알람을 출력하다가, 입력값이 들어오면 프로그램을 종료하는 내용이다. package main import ( "fmt" "time" ) func main() { ch := make(chan string) go sendMessage(ch) remainSec := 10 for remainSec > 0 { select { case tmp := [golang] defer, panic, recover golang에는 try~ catch역할을 할 수 있는 기능을 defer, panic, recover type으로 제공한다. 1. defer defer는 함수의 마지막에 호출할 수 있도록 stack에 해당 라인을 추가한다. (stack으로 추가되니 여러개의 defer가 있는 경우 LIFO(Last In First Out)으로 실행) 예를 들어 file 입출력을 할 때, file Open 이후 바로 defer close() 와 같이 선언하여 함수 종료 후 file을 close 할 수 있게된다. 만약 함수 실행 중 에러로 인해 비정상 종료되는 경우에도 defer 실행 후 종료되는데, 이 때 발생한 에러보다 이전에 defer가 수행되어 있어야 한다. 2. panic go 프로그램 실행 도중 에러로 인해 프로그램.. [golang] 구조체 , 메소드 예제 (map 초기화) 구조체 golang은 struct를 지원하지만, 메소드는 객체 밖에서 선언하여 사용할 수 있다. 이름과 성별, 그리고 성적을 저장하는 struct를 예제로 확인해보자 package main import "fmt" type student struct { name string gender string score map[string]int } func createStudent(name string, gender string) student{ s := student{name: name, gender: gender} s.score = map[string]int{} return s } func main() { var numStu, numScore, valueScore int var name, gender, name.. 이전 1 다음