지난 포스팅때 예고했던 것처럼 오늘은 Handler를 구현해볼 예정이다. Decorator Handler 우선 부터 만들고 시작한다. 앞선 포스팅에서 했던 것과 같이, 를 만들어주고, 서버 세팅부터 한다. 그리고, Logger라는 이름의 log를 찍어주는 역할의 Decorator를 만들어준다. 를 뜯어보면, log를 찍어주는데, 가 실행되기 전의 시간과, 그때의 시간부터 걸린 시간을 로 찍어주는 decorator이다. 당연히 test code도 한번 작성해보자. log가 찍히는 것을 확인하는 테스트이다. 은 log가 화면에 찍히는 것의 위치를 인자로 받는 곳으로 바꿔주는 함수인데 여기에 buffer를 하나 넣어서 buffer를 확인하는 방식으로 확인한다. buffer에서 log가 어떤방식으로 되어있나? 를 보면 한줄씩 log를 작성한다. 지금 저 buffer는 binary buffer이기 때문에, bufio 패키지의 를 사용해서 읽을 수 있도록 바꿔준다. 이
Decorator란? 프로그래밍의 한 패턴인데, Original한 기능이 있는것에 부가적으로 붙이는 것을 말한다. 좀더 자세히 설명해보자면, 어떤 데이터를 보낸다고 가정해보자. Data를 보낼때, 압축하고/다른사람이 못보게 암호화를 하고/추척가능하도록 log를 달고/ 등등의 다른 것들을 추가해서야 전송이 된다. 이렇게 추가되는 것들이 Decorator다. > Decorator는 왜 쓰는가? 왜냐면, 여러가지 기능이 추가될 수 있는데, 변할 수 있기 때문이다. Original 기능은 그대로 사용하고, Decorator만 변경하면 편하게 변경할 수 있다. Decorator 디자인 코딩을 할 때는 어떤식으로 설계를 할 것인가? 머리 박으면서 하면 할 수는 있지만, 어렵다. Design Pattern을 미리 정해놓고 만들기 시작하면, 편하고 누가 만들어도 패턴화해서 만들 수 있다. ![](https://velog.velcdn.com/images/dasolmon/p