본문 바로가기

Golang

(5)
[Golang] 간단 웹캠 스트리밍 서버 구현하기 이 포스트에서는 golang과 gocv를 이용해 웹캠 이미지를 스트리밍 하는 서버를 구현해 봤다. gocv에 대해 모르고 있다면 여기를 먼저 보고 오도록 하자. 구현한 코드에서는 먼저 gocv로 웹캠을 연결하여 프레임을 받아온다. 이 프레임을 이미지로 변환한 다음, http 프로토콜로 전송한다. package mainimport ( "bytes" "fmt" "image/jpeg" "log" "net/http" "gocv.io/x/gocv")func main() { webcam, err := gocv.OpenVideoCapture(0) if err != nil { log.Fatalf("Error opening webcam: %v", err) } defer webcam.Close() frame := goc..
Golang에서 opencv 사용해보기 - gocv 이 포스트에서는 OpenCV를 golang에서 이용할 수 있게 포팅한 gocv를 프로젝트에 설치하고 간단한 웹캠 스트림을 출력해 보도록 한다.설치해 보기https://github.com/hybridgroup/gocv GitHub - hybridgroup/gocv: Go package for computer vision using OpenCV 4 and beyond. Includes support for DNN, CUDA, OpenCV ContGo package for computer vision using OpenCV 4 and beyond. Includes support for DNN, CUDA, OpenCV Contrib, and OpenVINO. - hybridgroup/gocvgithub.com ..
[Golang 자료구조] 트라이(Trie) 구현하기 Golang은 내장 자료구조가 별로 없다. 하다못해 스택도 없다. 그래서 golang으로 몇몇 자료구조를 직접 구현하여 사용해보는 시리즈를 진행하고자 한다. 그 첫 번째는 간단하게 구현 및 테스트를 할 수 있는 트라이(Trie)이다.Trie  트라이를 간략하게 설명하면 여러 단어들의 집합을 하나의 트리로 관리하여 어떤 단어 $S$의 존재 여부를 $O(|S|)$의 시간 복잡도로 찾을 수 있는 자료구조이다. 비교적 간단하게 구현할 수 있고 트라이를 이용한 다양한 알고리즘 테크닉을 쓸 수가 있어 PS에서 인기가 많은 편이다. 이 포스트에서는 PS 수준에서 활용할 수 있는 간단한 트라이를 구현할 것이다.Node 구조체트라이에 필요한 노드 구조체를 정의해보자. type trieNode struct { child..
Golang으로 백준 빠른 입출력 Golang으로 백준을 할 때는 제약이 많다. 어레이리스트나 트리셋같이 ps에서 자주 사용되는 자료구조도 존재하지 않아 애를 먹는다. 그럼에도 불구하고 실행 속도가 백준에서 지원하는 언어 중에선 상위권이라 언어를 공부 중이거나 자료구조를 그리 중요하게 사용하지 않는 문제에 써먹어볼 수 있다. 물론 golang도 표준 입출력은 오버헤드가 있기 때문에 더 빠르게 받는 방법을 알아둘 필요가 있다. 그 방법이 bufio 모듈과 Fscan/Fprint 메서드를 사용하는 것이다. fmt 모듈에서 Fscan과 Fprint(ln) 메서드를 지원하는데 이는 표준 입출력이 아닌 입출력 버퍼를 지정할 수 있고 속도도 Scan/Print보다 월등히 빠르다. bufio.Writer와 bufio.Reader로 표준 입출력을 받도..
Golang으로 postgreSQL 연동 이 포스트에서는 윈도우 OS 환경에서 postgreSQL을 설치하고 go로 테이블에 레코드를 추가하는 간단한 웹서버를 구현한다. PostgreSQL 설치https://www.postgresql.org/download/ PostgreSQL: Downloads www.postgresql.org 위 링크를 따라 들어가서 본인 환경에 맞는 버전을 찾아 설치해주자. GUI로 편하게 보려면 추가 도구에 있는 pgadmin을 같이 설치해주는 게 좋다.DB와 테이블 생성pgadmin을 실행하자.  기본 설정으로 설치했다면 PostgreSQL {버전} 이름의 서버가 하나 보일 것이다. 처음 설치한 상태에서는 코끼리 모양이 아니라 X 모양의 아이콘이 있을건데 로그인을 해야 한다는 뜻이므로 로그인을 해주자. Database..