백엔드 공부/Golang 3

채널(channel), 컨텍스트(Context)

채널(channel), 컨텍스트(Context) 이전에 고루틴을 나누는 방법을 보았는데, 동시성을 제어하는 방법들을 살펴봤다. 그리고 거기서 역할을 나누는 것이 있었고... 이 때에 쓰이는게 채널이다. 채널 : 고루틴끼리 메세지를 전달할 수 있는 메세지 큐 데이터를 FIFO로 넣고 -> 빼고 이렇게 하는거임 이거 다른말로 Thread-safe Queue이다. 채널의 크기 기본 크기 0 처음 만들면 크기가 0으로 생성된다. 그리고 make(chan int, 20) 이런 식으로 크기를 정해줄 수 있다(이러면 20개짜리 크기) 이거 그래서 채널 만들어놓고 데이터 넣은 다음에 안빼주면 무한히 대기하게 된다ㄷㄷ 이런것을 좀비 고루틴, 록은 고루틴 릭이라고 하는데(채널을 닫아주지 않아 무한 대기를 하는 고루틴) 이..

Go와 Gin Framework 를 사용한 게시판 만들기 (2) - Swagger 붙이기

이번에는 Go에서 Swagger를 통해 API명세를 진행해 보겠다. Go는 자바에 비해 좀 귀찮다. 세팅하기 먼저 Terminal상에서 Swagger에 필요한 세팅을 받아줄 것이다. go get -u github.com/swaggo/swag/cmd/swag 그러면 이렇게 알아서 관련된 것들을 module에 추가해준다. swagger가 제대로 설치되었는지 확인하기 위해 한번 관련 명령어를 쳐본다. swag 이거 만약에 쳐봤는데 안나오면 아마 PATH가 제대로 설정되지 않았을 확률이 높다. export PATH=$(go env GOPATH)/bin:$PATH 이거 해보셈.. 이제 gin Framework에 맞춰서 여기 필요한 gin swagger를 받아준다. go get -u github.com/swaggo..

Go와 Gin Framework 를 사용한 게시판 만들기 (1) - 시작하기

목표는 간단한 기능을 가진 게시판 API를 제작하는 것이다. 프론트는 안붙일건데, 이유는 귀찮아서이다 하핫 먼저 처음부터 막 진행하기는 좀 곤란하니까, Go에 Gin Framework를 붙이고 이를 확인하는 것까지 해보려고 한다. 프로젝트 만들기 Go를 통해 간단한 Get API를 만들 예정이다. 먼저 개인 폴더(chan_personal_go)를 만들어 준다. 그리고 그 아래에 main.go 폴더를 만들고, controller를 관리해줄 controller 폴더를 생성한다. 이후 해당 폴더 아래에 controller.go 파일을 생성한다. go는 기본적으로 main.go를 동작시킨다. 이제 메인을 작성해줄 것이다. main.go 작성 package main import ( "github.com/gin-g..