
214
러닝 Go
f(w, r)
}
이를 통해
http
.
Handler
인터페이스를 만족하는 다른 타입을 위해 사용되는 것과 정확히 동
일한 코드 경로를 사용하여 함수, 메서드 혹은 클로저로
HTTP
핸들러를 구현할 수 있게 한다.
Go
에서 함수는 일급 함수 개념이므로 함수에 파라미터가 종종 전달이 된다. 한편,
Go
는 작은
인터페이스를 권장하고 단일 메서드의 인터페이스는 함수 타입의 파라미터를 쉽게 대체할 수
있다. 그럼 함수 또는 메서드는 언제 함수 타입의 파라미터를 지정해야 하고, 언제 인터페이스
를 사용해야 할까?
단일 함수에 많은 다른 함수나 해당 함수의 입력 파라미터에 지정되지 않은 다른 상태에 의존
적인 것 같다면, 인터페이스 파라미터를 사용하고 함수 타입을 선언하여 함수와 인터페이스를
연결하자. 이것이
http
패키지가 수행하는 것이다.
Handler
는 구성해야 하는 일련의 호출에
대한 진입점
entry
point
일 가능성이 높다. 하지만 단순한 함수라면 (
sort
.
Slice
에서 사용되는
것과 같이 ) 함수 타입의 파라미터가 좋은 선택이 된다.
7.14
의존성 주입을 쉽게 만드는 암묵적 인터페이스
어느 정도 프로그래밍을 해본 사람이라면 누구나 시간이 지남에 따라 응용 프로그램의 변경은
불가피하다는 것을 빠르게 배운다. 디커플링을 쉽게 하기 위해 개발된 ...