Toy Project/URL Mapping 프레임워크 구현하기
Spring @RequestMapping과 같은 URL 매핑 프레임워크 구현하기
johnna_endure
2020. 3. 31. 13:13
이 프로젝트는 본래 채팅앱 프로젝트의 일부분이었으나,
현재 채팅 프로젝트의 덩치가 워낙 커지는 바람에... 따로 분리했습니다.
그리고 이 부분은 애너테이션, 정규표현식, 리플렉션 등을 이용한
프레임워크에 필요한 편리한 기능을 구현하는 바탕이 될 수 있다고 판단해 따로 정리해두려고 합니다.
시나리오
서버는 클라이언트의 요청을 받고 controller 에 해당하는 객체에 request 정보를 넘겨 준다.
컨트롤러는 request에 포함된 url에 따라 핸들러를 매핑할 책임을 가진다.
우리는 이 핸들러들을 식별하기 위해 handlers 클래스를 작성할 때, 미리 식별정보를 같이 적어둔다.
@RequestMapping 이라는 애너테이션을 이용해 이를 수행한다.
@RequestMapping에 url format을 요청과 1:1로 대응되도록 작성할 수도 있지만, ("/user/1/cws")
좀 더 유연하게 작성할 수도 있다. ("/user/{id}/{name}")
그리고 이 형태의 매핑에서 id와 name은 메서드의 인수로 값이 자동으로 넘어가게 하고 싶다.
(스프링의 @RequestMapping 과 동일한 기능이다)