앞서 다루었던 HTTP 챕터의 연장이다. 이번 장에서는 go 언어를 이용해서 완전히 작동하는 웹 서버를 만들 것이다. 원문에서는 중국어 flash card(단어장)를 서비스하는 예제를 제공하고 있는데, 예제로 하기에는 좀 직관적이지 않다는 생각이 들었다. 그래서 단어장 서비스 대신에, 유저 정보를 관리하는 "유저 정보 데이터 베이스" 서비스를 만들기로 했다.
단순히 코드만 설명하는 것에 머무르지 않고, 실제 배포하는 것을 가정해서 완전한 소프트웨어 구조를 만들려고 한다. 이를 위해서 1. 개발을 위한 완전한 디렉토리 구조를 설계 한다. 2. 설계하고 개발하는 코드들은 github에 올려서 다른 팀에서 협업할 수 있도록 한다.
서비스 소개
나는 유저 정보를 관리하는 웹 서비스를 만들 것이다. 이 서비스는 "유저 등록", "유저 검색", "유저 삭제", "유저 목록 확인", "유저 정보 수정" 등의 기능을 가지고 있다. 유저정보는 SQLite 데이터베이스에 저장한다. 저장된 데이터는 (유저가 요청하면) JSON 형태로 반환한다.
REST API 서버
만드려는 웹 애플리케이션 서버는 유저 정보에 대한 CRUD를 RESTful API형태로 제공한다. REST는 REST에 대하여문서를 참고 한다. 나는 아래와 같은 API를 준비했다.
GET /users : 유저 목록을 가져온다.
GET /users/123 : 특정 유저의 세부 정보를 가져온다.
POST /users : 유저 정보를 입력 한다.
PUT /users/123 : 특정 유저 정보를 업데이트 한다.
DELETE /users/123 : 특정 유저를 삭제한다.
웹 애플리케이션 구조
웹 애플리케이션을 만들 때, 가장 먼저하는 일은 애플리케이션 구조를 만드는거다. 나는 아래와 같은 구조를 만들었다. 웹 애플리케이션의 이름은 simpleweb으로 정했다.
Contents
장 소개
서비스 소개
REST API 서버
웹 애플리케이션 구조
Bitbucket
패키지 구성
유저 데이터베이스 생성
라우팅 & 핸들러 패턴
개발
main.go
server.go
Recent Posts
Archive Posts
Tags