GoLang 로드맵

...

Goroutine 기다리기

고루틴(Goroutine)는 go언어에서 가장 유용한(그리고 가장 많이 사용하는)기능 중 하나일 거다. 고루틴은 go언어에 내장된(built-in) 기능이다. 개발자는 표준라이브러리나 외부라이브러리의 의존 없이 언어자체로 동시성(concurrency)애플리케이션을 개발 할 수 있다. 고루틴을 가지고 프로그램을 만들다 보면, 고루틴의 종료를 기다리거나 고루틴...

The Behavior of Channels

처음 go의 채널을 사용 했을 때, 나는 채널을 데이터 구조체(스트럭처)처럼 다루는 실수를 했다. 채널은 고루틴(goroutine)사이에서 큐를 제공하고, 자동으로 데이터를 동기화 해주는 것이라고 보았기 때문이다. 이렇게 채널을 구조체로 보는 것 때문에, 복잡하고 나쁜 동시성 코드를 만들게 됐다. 시간이 지나면서 채널을 스트럭처로 보는 대신, 행위에 중점...

웹 애플리케이션에서의 context 활용

Go의 context패키지는 프로세스 혹은 API 간에, 값, 시그널, 취소(cancelation), 데드라인(deadline)등을 전달하기 위해서 사용한다. REST API 서버를 만든다고 가정해보자. 서버는 요청 받으면, 이에 대한 컨텍스트를 만들 수 있다. 그리고 이 요청을 처리하기 위한 함수를 호출 할 수 있다. 이러한 함수의 호출 체인에 컨텍스트를...

예제로 공부하는 Go 언어

Go는 오픈소스 프로그래밍 언어로 빠르게 원하는 애플리케이션을 발할 수 있도록 디자인됐다. 예제로 살펴보는 Go는 go 언어의 기본 적인 사용방법을 예제 코드를 통해서 익히기 위해 만든 문서다. 문서의 원본은 문서를 참고하자. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1...

golang

Go는 시스템/네트워크 프로그램을 개발 할 목적으로 만들어진 범용 프로그래밍 언어(general-purpose languge)다. 2007년 구글의 엔지니어인 Roert Griesemer, Rob Pike, Ken Thompson 에 의해서 개발이 시작됐다. Go는 가비지 컬랙션과 concurrent 프로그래밍을 지원하는 정적 타입의 언어다. 디펜던시 관리...

알고리즘 - 시간변환

AM/PM을 가지는 12시간 시간형식을 군대형식(24시간)으로 변환하라. AM/PM에 대한 시간 정의는 아래 그림을 참고 하자. 12시간 형식에서 AM 12 12시간 형식에서 PM 12hh01 \leq hh \leq 12 와00 \leq mm,ss \leq 59이다."hh00 \leq hh \leq 23입력이07일때 출력은19이다. 에러처리는 하지 않았다...

Joinc Tagging 시스템 구현

태깅은 정보를 관리하기 위한 좋은 방법이다. 완전히 공개된 서비스의 경우 태그관리가 까다롭다는 문제가 있지만, 추천시스템에 대한 노하우가 쌓이면서 많은 부분 해결이 된 것 같다. Joinc는 개임위키이니 만큼 관리하기가 훨씬 쉽다. 태그라고 해봐야 100개가 넘지 않을 것 같은데, 이 정도라면 자동완성이나 추천에 신경쓰지 않고 단순하게 구성 할 수 있을...

알고리즘 - 생일 케이크

매년 조카의 생일케이크를 준비해야 하는 임무가 주어졌다. 당신은 케이크와 함께 조카의 나이 만큼의 초도 준비해야 한다. 케익을 받은 조카가 촛불을 끄기위해서 바람을 불면, 그 중 가장 길이가 긴 촛불이 꺼지게 된다. 조카가 바람을 불었을 때 몇 개의 촛불이 꺼질지를 계산해야 한다.예를 들어 4살 조카의 생일 케이크라면 4개의 초도 함께 준비해야 할 것이다....

Golang를 이용한 S3 serv api 개발

S3에 있는 파일을 서비스하는 방법을 살펴보려 한다. AWS에서 제공하는 공식 말고 좀 더 편하게 쓸만한게 없을까 찾아봤는데 못찾았다. 그냥 aws go sdk 쓰기로 했다.구현을 위해서 아래와 같은 방법들을 고민했다. 1. S3 Static Web Hosting 1. EC2에 S3를 마운트해서 NginX로 파일 서비스 1. EC2에 S3 SDK를 기반으...