[go] Go 언어를 사용한 고성능 웹 서버의 RESTful API 구축 방법

본 포스트에서는 Go 언어를 사용하여 고성능 웹 서버를 구축하고 RESTful API를 구현하는 방법에 대해 다루고자 합니다. Go 언어는 간결하고 효율적인 코드를 작성할 수 있는 강력한 언어로, 웹 서버를 개발하는 데 적합한 언어입니다.

목차

  1. Go 언어 소개
  2. Go를 사용한 웹 서버 구축
  3. RESTful API 구현
  4. 마무리

Go 언어 소개

Go 언어는 2009년 구글에서 개발된 정적으로 타입을 검사하는 컴파일 언어로, 고성능 및 동시성을 강조한 언어입니다. C와 유닉스 스타일의 표현을 바탕으로 만들어져 있어 간결하면서도 효율적인 언어로 평가를 받고 있습니다.

Go를 사용한 웹 서버 구축

먼저, Go 언어를 사용하여 간단한 웹 서버를 구축하는 방법을 살펴보겠습니다. 아래는 간단한 HTTP 핸들러를 등록하여 웹 서버를 구동하는 예제 코드입니다.

package main

import (
	"fmt"
	"net/http"
)

func handler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "안녕, 웹")
}

func main() {
    http.HandleFunc("/", handler)
    http.ListenAndServe(":8080", nil)
}

위의 예제 코드는 “/hello” 경로로 요청이 오면 “안녕, 웹”이라는 응답을 반환하는 간단한 웹 서버를 구동합니다.

RESTful API 구현

이제 Go 언어를 사용하여 RESTful API를 구현하는 방법에 대해 살펴보겠습니다. RESTful API를 구현하기 위해 기본적으로는 HTTP 메서드와 URL 패턴을 사용하여 리소스에 대한 CRUD(Create, Read, Update, Delete) 동작을 정의합니다.

아래는 간단한 RESTful API를 구현하는 예제 코드입니다.

package main

import (
	"encoding/json"
	"net/http"
)

type Product struct {
    ID    int    `json:"id"`
    Name  string `json:"name"`
    Price int    `json:"price"`
}

var products = []Product{
    {ID: 1, Name: "사과", Price: 1000},
    {ID: 2, Name: "바나나", Price: 1500},
}

func getProducts(w http.ResponseWriter, r *http.Request) {
    w.Header().Set("Content-Type", "application/json")
    json.NewEncoder(w).Encode(products)
}

func main() {
    http.HandleFunc("/products", getProducts)
    http.ListenAndServe(":8080", nil)
}

위의 예제 코드는 “/products” 경로로 GET 요청이 오면 상품 목록을 반환하는 간단한 RESTful API를 구현한 것입니다.

마무리

본 포스트에서는 Go 언어를 사용하여 고성능 웹 서버를 구축하고 RESTful API를 구현하는 방법에 대해 알아보았습니다. Go 언어를 사용하면 간결하고 효율적인 코드를 작성할 수 있으며, 이를 통해 고성능 웹 서버를 구축할 수 있습니다.

Go 언어에 익숙하지 않은 개발자라면, 공식 Go 언어 웹사이트에서 Go 언어에 대한 자세한 정보를 확인할 수 있습니다.