본문 바로가기

go6

[Go] 채널과 컨텍스트 [Tucker의 Go 언어 프로그래밍] 책을 참고 채널이란 고루틴끼리 메시지를 전달할 수 있는 메시지 큐로, 채널을 사용하면 뮤텍스 없이 동시성 프로그래밍이 가능하다. 컨텍스트는 고루틴에 작업을 요청할 때 작업 취소나 작업 시간, 추가 데이터 등을 설정할 수 있는 작업 명세서 역할을 한다. → 채널과 컨텍스트를 사용해 특정 데이터를 전달하거나, 특정 시간 동안만 작업을 요청하거나, 작업 도중에 작업 취소를 요청할 수 있다. 01 채널 채널 인스턴스 생성 var messages chan string = make(chan string) chan string은 string 타입의 메세지를 전달하는 채널 타입이다. 채널에 데이터 넣기 messages 2022. 3. 6.
[Go] 인터페이스(Interface) [Tucker의 Go 언어 프로그래밍] 책을 참고 인터페이스 인터페이스란 구현을 포함하지 않는 메서드 집합이다. 인터페이스만 가지고 메서드를 호출할 수 있어 추후 프로그램 요구사항 변경 시 유연하게 대처할 수 있다. 인터페이스를 이용하면 메서드 구현을 포함한 구체화된 객체가 아닌 추상화된 객체로 상호작용할 수 있다. type DuckInterface interface { Fly() Walk(distance int) int } 인터페이스 타입의 변수 선언이 가능하고 변수의 값으로 사용할 수 있다. 인터페이스에 포함된 메서드 집합의 유의사항 메서드는 반드시 메서드명이 있어야 한다. 매개변수와 반환이 다르고 이름은 같은 메서드는 있을 수 없다. 인터페이스에서는 메서드 구현을 포함하지 않는다. package m.. 2022. 3. 5.
[go/gin/gorm] Basic REST API 만들기 튜토리얼 (4) 이전 포스트 (1) : https://dev2som.tistory.com/152 이전 포스트 (2) : https://dev2som.tistory.com/153 이전 포스트 (3) : https://dev2som.tistory.com/154 저번 편에 이어서 gorm 패키지를 이용해 DB에 데이터를 바인딩할 수 있는 REST API를 만들어보려 한다. 우선 패키지 구조 go project를 만들어주고 다음 구조로 디렉터리와 go 파일들을 생성한다. models 패키지 : DB에 저장될 데이터의 구조체와 DB에 연결하는 코드가 들어있다. controllers 패키지 : HTTP 요청에 따라 호출되는 핸들러 함수들이 들어있다. main.go package main import ( "github.com/gin.. 2021. 12. 21.
[go/gin] Basic REST API 만들기 튜토리얼 (3) [go/gin/gorm] Basic REST API 만들기 튜토리얼 (4) 이전 포스트 (1) : https://dev2som.tistory.com/152 이전 포스트 (2) : https://dev2som.tistory.com/153 DB에 데이터를 적재하지 않는 방식으로 CRUD를 구현하는 API를 만들어보려고 한다. 데이터베이스와 연결하지 않으므로 이번 편에서는 gorm 패키지를 사용하지 않는다. 왕간단하다... main 함수 func main() { r := gin.Default() r.GET("/info", readInfo) r.POST("/info", createInfo) r.PUT("/info/:id", updateInfo) r.DELETE("/info/:id", deleteInfo) r.R.. 2021. 12. 18.
[go/gin] Basic REST API 만들기 튜토리얼 (2) : 데이터 바인딩 이전 포스트 바로가기 https://dev2som.tistory.com/152 [Go/Gin] Basic REST API 만들기 (1) IDE : Goland(고랜드) 이라는 책을 참고해 Go 언어로 웹 서버를 만들어보려 한다. (웹에 대한 기본 지식을 전제함) 책에는 Gin 프레임워크에 대한 내용은 없어서 따로 찾아보면서 진행했다. (REST API in G dev2som.tistory.com 이번 포스트에서는 request의 데이터 바인딩하는 방법에 대해 알아보려 한다. 01.Query String type user struct { Id int `form:"id"` Name string `form:"name"` Email string `form:"email"` } func main() { r := g.. 2021. 12. 16.
[go/gin] Basic REST API 만들기 튜토리얼 (1) : 서버 실행 및 데이터 바인딩 IDE : Goland(고랜드) 이라는 책을 참고해 Go 언어로 웹 서버를 만들어보려 한다. (웹에 대한 기본 지식을 전제함) 책에는 Gin 프레임워크에 대한 내용은 없어서 따로 찾아보면서 진행했다. (REST API in Golang using Gin Gonic : https://www.youtube.com/playlist?list=PL8-bdB4cHmXynirCIPtW0G5mCnaoMfr5u) 00. Gin 패키지 설치 go get -u github.com/gin-gonic/gin 01. Gin으로 API 서버 만들기 package main import ( "github.com/gin-gonic/gin" "net/http" ) func main() { r := gin.Default()// defaul.. 2021. 12. 16.