라우터에 핸들러를 등록하기 위한 메서드 정의
이제 라우터에 핸들러를 등록하기 위한 메서드인 HandleFunc를 만들어 보자.
▼ router.go
func (r *router) HandleFunc(method, pattern string, h http.HandlerFunc) { // http 메서드로 등록된 맵이 있는지 확인 m, ok := r.handlers[method] if !ok { // 등록된 맵이 없으면 새 맵을 생성 m = make(map[string]http.HandlerFunc) r.handlers[method] = m } // http 메서드로 등록된 맵에 URL 패턴과 핸들러 함수 등록 m[pattern] = h }
router의 HandleFunc 메서드 내부에서는 매개변수로 전달된 http 메서드, URL 패턴, 핸들러 함수를 2차원 맵인 handlers 필드에 등록한다.