golang에는 기본 패키지에 http가 포함되어있습니다만, 매우 원시적인 형태라서 이걸가지고 웹서버를 구현하려면 생각보다 할 일이 많습니다.

마치 win32 API를 사용해서 windows GUI 프로그램을 만드는 것과 같지요.


그래서 찾다보니 golang에도 많지는 않지만 web server용 framework이 있습니다.


이번에는 그 중 martini를 소개할까 합니다.


https://github.com/go-martini/martini


에서 소스 및 기본적인 내용을 확인할 수 있습니다. (무려 한국어 번역 페이지도 있습니다.)


다음과 같은 기본적인 형태를 가지고 웹서버의 base를 구축할 수 있습니다.


package main

import "github.com/go-martini/martini"

func main() {
  m := martini.Classic()
  m.Get("/", func() string {
    return "Hello world!"
  })
  m.Run()
}


NodeJS의 express와 ruby의 sinatra에서 영감을 받아서 만들었다고 하니 express 및 sinatra로 작업하시던 분들은 금방 익숙해질 수 있을 것 같습니다.