서버와 클라이언트의 시간차가 9시간이 나는 이유 나는 개발을 진행하던 도중 유독 서버와 클라이언트의 시간차가 9시간이 나는 경우를 자주 만나곤 한다. 이처럼 클라이언트에서 작성한 코드가 서버에서 다르게 보이는 이유는 각 컴퓨터가 위치한 시간대(timezone)가 다르기 때문이다. GMT(그리니치 표준시)와 UTC(협정 세계시) 그리니치 표준시(GMT)는 말 그대로 영국에 위치한 그리니치 천문대를 기준으로 경도를 나누는 시간대이다. 보통 시차를 붙여 GMT+01, GMT-02처럼 표현한다. 여기서 헷갈리면 안 되는 게, 플러스가 적힌 시간대가 더 시간이 이른 것이다. JavaScript의 코드 결과물을 살펴보면 GMT+0900라고 적힌 것을 자주 봤을 것이다. 이는 GMT 기준으로 한국이 9시간을 앞선 시..
스프링 MVC를 공부하던 도중 요청에 맞는 컨트롤러가 매핑되어 호출되는 과정에서 그 내부 구조가 궁금하여 학습하게 되었다. 스프링 MVC는 위와 같은 흐름으로 진행된다. 그림을 보면 Dispatcher Servlet이 중간에서 요청과 반환의 중심에 있는 것을 확인할 수 있다. 1. Dispatcher Servlet Dispatcher Servlet이란? dispatch는 "보내다"라는 뜻을 가지고 있다. 이는 다른 많은 웹 프레임워크와 마찬가지로 HTTP 프로토콜로 들어오는 모든 요청을 가장 먼저 받아 적합한 컨트롤러에 위임해 주는 프론트 컨트롤러(Front Controller)라고 정의할 수 있다. 즉 Dispatcher Servlet은 request에 대한 전반적인 요청을 처리한다고 볼 수 있다. 지..