본문 바로가기

개발일지/TIL

[230703] JavaServlet에 대해 이해하기

내가 잘못 알고 있던 것

❌ 오늘 Servlet를 자세히 알아보기 전까지 Servlet Container를 Servlet으로 잘못 알고 있었다. Dispacther Servlet에서 HttpServletRequest와 HttpServletResponse을 만들어준다고 생각했다. 이를 기반으로 Filter를 보다 보니 전체적인 흐름이 이해가 안 가기 시작했다.

내가 알게 된 것

✅ Tomcat에는 Servlet Container가 있다. 그리고 요청을 받았을 때 HttpServletRequest와 HttpServletResponse을 만든다. 이후 Servlet 분석 후 찾은 Servlet을 init, service 메서드를 호출해 초기화 실행한다. 그리고 요청 메서드에 따라 doGet, doPost 등을 호출한다. Servlet의 모든 작업이 끝난 이후에 destory 호출한다. 위 내용인 내가 이해한 전체적인 흐름이다.
💬 JSP를 찾아보고 나니 이해에 도움이 되었던 것 같다. JSP 위키피디아를 보면, "JSP 파일을 Servlet 클래스로 변환하고 실행시켜 주는 역할을 하는 프로그램은 서블릿 컨테이너라고 부른다"이라는 내용이 나온다. Servlet은 Servlet Container 안에서 만들어지고 상황에 따라 여러 개 만들어질 수 있다는 것이다. 
❓JSP는 무엇인가?
💬 JSP는 Java Server Pages의 약자이며 HTML에 JAVA 코드를 넣어 동적 웹페이지를 생성하는 웹 애플리케이션 도구이다. JSP가 실행되면 Java Servlet으로 변환되며 웹 애플리케이션 서버에서 동작되면서 필요한 기능을 수행한다. 이후 생성된 데이터를 웹페이지와 함께 클라이언트로 응답한다.

생각

내가 잘못 알고 있는 것들이 아직도 많이 있을 것이다. 그래서 사람들과 개발 관련된 대화를 해보는 것이 필요하다고 생각한다. 이야기를 하다 보면 내가 제대로 알고 있는 것과 모르는 것에 대해 확실하게 인지하게 되는 것 같다. 그로 인해 내게 부족했던 부분을 더 채워나갈 수 있는 것 같다. 이후 누군가에게 설명할 때도 잘못된 정보를 전달하지 않을 수도 있고 말이다.