더북(TheBook)

Server 타입 정의

server.go 파일을 생성하고 Server 타입을 정의해 보자.

▼ server.go

type Server struct {
    *router
    middlewares []Middleware
    startHandler HandlerFunc
}

Server 타입에는 router, middlewares, startHandler가 내부 필드로 정의되어 있다. middlewares에 사용할 미들웨어를 모두 등록해두고, 웹 서버가 구동되면 등록된 미들웨어를 체인 형태로 연결한다. 미들웨어 체인 마지막 부분에 실제 웹 요청 처리 로직이 담긴 핸들러 함수를 연결하면 웹 요청 처리 시 미들웨어를 차례로 수행한 후 마지막에 핸들러 함수로 제어권을 넘긴다. startHandler는 체인 형태로 연결된 미들웨어의 시작점을 가리키고 있다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.