일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- spring boot
- 완전 탐색
- 메모이제이션
- 구간 트리
- 도커
- 비트마스킹
- Logback
- 스택
- 다익스트라
- spring cloud
- 구현
- 이분 매칭
- 달팽이
- ZuulFilter
- docker-compose
- 주울
- dp
- Gradle
- Java
- Zuul
- Spring Cloud Config
- 백트래킹
- 게이트웨이
- 유레카
- 서비스 디스커버리
- 이분 탐색
- 트리
- 플로이드 와샬
- BFS
- 스프링 시큐리티
- Today
- Total
목록Toy Project/URL Mapping 프레임워크 구현하기 (4)
Hello, Freakin world!
단위 테스트 ... import static org.assertj.core.api.Assertions.assertThat; public class TestChatRoomController { ChatRoomController controller; DummyRequestHandler requestHandler; @Before public void init() { controller = new ChatRoomController(); requestHandler = new DummyRequestHandler(); } @Test public void testInvoke_bracedUrlMethod() throws NoSuchMethodException, InvocationTargetException, Illega..
글의 제목만으로는 추가하려는 기능의 정의가 와닿지 않는다. 간단하게 코드를 이용해 추가하려는 기능을 정의하자. 기능 정의 @RequestMapping(method = Method.GET, url = "/room/{id}") public Response canJoinRoom(Request request, int id) { ... } @RequestMapping의 url 속성의 값을 살펴보자. 특이한 점은 "{ id }" 라는 중괄호가 포함된 url을 가지고 있다. 이는 스프링 프레임워크를 써본 사람이라면 한번 쯤은 써본 기능이다. 중괄호는 일종의 유연한 url 매핑이 가능하도록 해준다. 예를 들어, "/room/12", "/room/idstring" 은 모두 위의 url을 만족한다. 다만, 아래 인수의 i..
public Response dispatch(Request request) { Method[] methods = RequestHandler.class.getMethods(); Optional handlerOpt = findHandler(methods, request.getUrl(), request.getMethod()); try { Method handler = handlerOpt.orElseThrow(() -> new NotFoundException("url 에 해당하는 핸들러를 찾지 못했습니다.")); return invoke(requestHandler ,handler, request);; } catch (NotFoundException e) { e.printStackTrace(); return ne..
이 프로젝트는 본래 채팅앱 프로젝트의 일부분이었으나, 현재 채팅 프로젝트의 덩치가 워낙 커지는 바람에... 따로 분리했습니다. 그리고 이 부분은 애너테이션, 정규표현식, 리플렉션 등을 이용한 프레임워크에 필요한 편리한 기능을 구현하는 바탕이 될 수 있다고 판단해 따로 정리해두려고 합니다. 시나리오 서버는 클라이언트의 요청을 받고 controller 에 해당하는 객체에 request 정보를 넘겨 준다. 컨트롤러는 request에 포함된 url에 따라 핸들러를 매핑할 책임을 가진다. 우리는 이 핸들러들을 식별하기 위해 handlers 클래스를 작성할 때, 미리 식별정보를 같이 적어둔다. @RequestMapping 이라는 애너테이션을 이용해 이를 수행한다. @RequestMapping에 url format을..