Spring Overview.
자바 서버계를 정복한 서버 프레임 워크인 스프링! 어떻게 발전해 왔고 어떤 철학을 가지고 있는지, 왜 자바 생태계에서 표준이 되었는지. 우리는 이 서버 프레임워크에서 어떤 아이디어를 차용 할 수 있을까에 대한 이야기를 해보려고 합니다.
자바의 유명 서버군.
- Spring 은 웹서버 프레임워크로 시작했습니다.
- Servlet 은 기본적으로 블락킹
- 유저가 오면 유저당 쓰레드를 하나씩 할당.
- I/O 등 비동기 콜이 발생되면 유저 쓰레드를 블락
Servlet interface
void do[Method](HttpServletRequest req, HttpServletResponse resp)
void doGet(HttpServletRequest req, HttpServletResponse resp)
웹서버 기본
- 유저의 특정 요청을 처리한다.
- 라우터 + 핸들러
Spring
DispatherHandler
DispatherHandler == 라우터
handler().method(url, criteria, handler)
route().GET("/person/{id}", accept(APPLICATION_JSON), handler::getPerson)
- url, handler mapping.
- 여러가지 조건에 따라 맵핑 가능.
Handler
유저 리퀘스트를 처리해 리스판스를 작성 후 리턴
public class WebHandler {
public String getPerson(ServerRequest request) {
return "Hello"
}
}
Service
비지니스 로직을 수행
public class Service {
public String getPersonName(int id) {
return JDBC.selectName(id);
}
}