Go 언어는 간결한 문법과 뛰어난 성능 덕분에 많은 개발자들에게 사랑받고 있습니다. 특히 REST API를 구축하는 데에 효과적입니다. 이번 포스팅에서는 Go 언어를 사용하여 간단한 REST API를 구축하는 방법을 단계별로 안내하겠습니다.
1. Go 언어 설치하기
먼저, Go 언어를 설치해야 합니다. Go 공식 웹사이트에서 운영체제에 맞는 설치 파일을 다운로드하고 설치하세요. 설치가 완료된 후, 터미널에서 다음 명령어를 실행하여 설치가 제대로 되었는지 확인합니다.
go version
2. 프로젝트 디렉토리 설정 및 초기화
이제 REST API 프로젝트를 위한 디렉토리를 생성하고 Go 모듈을 초기화합니다. 다음 명령어를 사용하여 myapi라는 디렉토리를 만들고, 그 안에 프로젝트를 초기화합니다.
mkdir myapi
cd myapi
go mod init myapi
3. 기본 패키지 설치
REST API를 구축하기 위해 필요한 패키지를 설치합니다. 여기서는 Go의 내장 패키지인 net/http를 사용할 것입니다. 하지만 JSON 데이터를 쉽게 처리하기 위해 encoding/json 패키지도 사용할 예정입니다.
4. 기본 서버 구현하기
기본적인 HTTP 서버를 구현해보겠습니다. 다음 코드를 main.go 파일에 작성합니다.
package main
import (
"encoding/json"
"net/http"
)
type Message struct {
Text string json:"text"
}
func helloHandler(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json")
message := Message{Text: "안녕하세요, Go 언어로 만든 REST API입니다!"}
json.NewEncoder(w).Encode(message)
}
func main() {
http.HandleFunc("/hello", helloHandler)
http.ListenAndServe(":8080", nil)
}
위 코드는 /hello 경로에 GET 요청을 보내면 JSON 형식으로 메시지를 응답하는 간단한 REST API 서버를 설정합니다.
5. 서버 실행하기
이제 서버를 실행해보겠습니다. 터미널에서 다음 명령어를 입력합니다.
go run main.go
서버가 정상적으로 실행되면, http://localhost:8080/hello에 접속하여 JSON 응답을 확인할 수 있습니다. 브라우저 또는 Postman과 같은 API 테스트 도구를 사용해도 좋습니다.
6. 더 복잡한 API 만들기
기본적인 REST API를 구현했다면, 이제 더 복잡한 API를 만들어 보겠습니다. 예를 들어, 여러 개의 메시지를 저장하고 조회할 수 있는 API를 만들어보겠습니다.
var messages []Message
func addMessageHandler(w http.ResponseWriter, r http.Request) {
var message Message
if err := json.NewDecoder(r.Body).Decode(&message); err != nil {
http.Error(w, err.Error(), http.StatusBadRequest)
return
}
messages = append(messages, message)
w.WriteHeader(http.StatusCreated)
}
func getMessagesHandler(w http.ResponseWriter, r http.Request) {
w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(messages)
}
func main() {
http.HandleFunc("/messages", addMessageHandler).Methods("POST")
http.HandleFunc("/messages", getMessagesHandler).Methods("GET")
http.ListenAndServe(":8080", nil)
}
위 코드는 메시지를 추가할 수 있는 /messages POST 엔드포인트와 저장된 모든 메시지를 조회할 수 있는 /messages GET 엔드포인트를 추가합니다.
7. API 테스트하기
Postman 또는 curl을 사용하여 API를 테스트할 수 있습니다. 예를 들어, 메시지를 추가하려면 다음과 같이 curl 명령어를 사용할 수 있습니다.
curl -X POST http://localhost:8080/messages -d '{"text": "안녕하세요!"}' -H "Content-Type: application/json"
이후, 저장된 메시지를 조회할 때는 다음과 같이 GET 요청을 보냅니다.
curl http://localhost:8080/messages
마무리
이번 포스팅에서는 Go 언어를 사용하여 간단한 REST API를 구축하는 방법을 소개했습니다. Go의 내장 패키지를 활용하여 빠르게 API를 만들 수 있으며, 필요에 따라 추가적인 기능을 쉽게 구현할 수 있습니다. 이 게시글을 통해 기본적인 API 구축에 대한 이해를 높이고, 여러분의 프로젝트에 활용해보길 바랍니다.