TIL 2023-01-10 (화) 함수형 기반 인터페이스

이성호·2023년 1월 10일
0

TIL

목록 보기
20/21
post-thumbnail

함수형 기반 인터페이스에 대한 강의를 듣고 실습 해본 것을 올려보고자 한다.

우선 다음의 코드는 기존에 있던 annotation으로 컨트롤러를 만든 것이다. 이걸 함수형으로 바꿔보자.

아래와 같이 RouterFuntion을 통해서 Router클래스를 새로 만들고 구성해준다.
builder를 사용하는 것과 유사하게 작성할 수 있다.
GetMapping인 경우에는 동일하게 .GET()형태로 만들고 response 부분은 람다를 이용해서 구성해주면 된다.

코드를 보면 패턴 부분에 경로가 중복인 부분이 있는데 이걸 따로 빼서 한 번에 처리할 수도 있다.
다음 처럼 nest()라는 메소드를 이용하면 각각의 pattern에서 중복되는 부분을 RequestMapping으로 처리하듯이 할 수 있다. 물론 기존에 pattern에 들어가 있던 부분은 없애주어야 한다.

다음은 람다로 구현했던 부분을 따로 Handler라는 클래스로 구현해서 만든 것이다. 이를 통해서 코드가 난잡했던 부분을 정리하고 조금 더 보기 쉬워졌다.

최종적인 형태는 다음과 같다. 처음과 비교했을 때 중복되는 부분은 정리가 되었고 길고 난잡했던 부분은 Handler를 통해서 정리해주었다.

annotation을 통해서 구현하는 방법과 이처럼 함수형으로 Controller를 만드는 방법 두 가지를 사용할 수 있는데, 어느 것이 크게 좋다라는 느낌을 받지는 못했다. 오히려 함수형이 알아야 할 것이 조금 더 많은 느낌이 들어서 별로라는 생각이다. 하지만 지금은 코드가 간단한 형태여서 그렇게 느껴진다고 생각이 든다.

profile
이따금씩 올라오는 개발자 블로그

0개의 댓글