티스토리 뷰

Spring&Spring Boot/JSP

JSP와 Servlet 비교

on1ystar 2019. 1. 11. 02:23
728x90
반응형

전에 간단하게 JSP와 Servlet을 이용해 웹 페이지를 만들어 봤는데요, 만들면서 간단하게 둘의 차이점을 느끼게 됐습니다.

하지만 왜 비슷한 방식의 웹 페이지를 만드는 언어가 공존하며 같이 사용되는지, 구체적인 차이점은 무엇인지에 대해 궁금증을 느끼게 됬습니다. 여러 글들을 찾아 보았는데요, 나름대로 정리를 해보겠습니다.


JSP와 Servlet 둘 다 java를 사용 !

JSP와 Servlet은 기본적으로 java 프로그래밍 언어를 base로 둡니다.

html과 java를 합쳐 쓰기 때문에(css, 간단한 javascript 등도 있겠지만) JSP와 Servlet을 이용해 웹 프로그래밍을 하기 위해서는 두 언어, 특히 java를 필수적으로 알아야 합니다.

그리고 java를 이용하기 때문에 동적인 프로그래밍을 할 수 있으므로 동적인 언어로써 back-end 언어 입니다. 따라서 당연히 서버에 웹 컨테이너가 필요하게 되고, 웹 컨테이너의 기능에는 JDK를 실행시킬 수 있는 요소들이 포함되어야 하겠죠.

둘 다 JDK의 javac 프로그램에 의해 컴파일되어 .class파일을 만들고, 이를 java.exe가 JVM(자바 가상 머신)위에서 실행시켜 줍니다.


등장 순서는 Servlet → JSP


Servlet은 일단 .java파일에 코드를 작성합니다. 때문에 java코드가 주가 되고 그 코드 안에 html을 작성할 수 있는 클래스를 가져와 html태그들을 삽입하는 형식입니다. 웹 페이지가 늘어나고 필요한 코드들도 덩달아 늘어나면서 복잡한 java코드속에 html들이 섞여 있게 되어 코드를 봤을 때 가독성도 떨어지고 그로인해 유지 보수가 힘들어지는 측면이 생기게 됩니다.

이로 인해 JSP가 만들어 집니다.  JSP는 기본적으로 .jsp파일에 html로 틀을 잡아 놓고 그 안에 java코드를 삽입하는 형식입니다. 때문에 html태그들이 틀을 잡아 주어 가독성이 보다 좋아지고 Servlet보다 코드들에 있어서 복잡성이 줄어들게 됩니다. 

하지만 이 역시 JSP의 코드 길이가 길어지면 역시 둘의 구별이 힘들어 지게 됩니다. 그리고 오히려 JSP코드가 점점 복잡해 지는 현상도 발생하게 됩니다. 

사실상 .jsp 파일도 was에 의해 .java파일 즉, Servlet으로 변환 과정을 거치게 됩니다. (속도 차이는 있지만 거의 없다고 합니다.)


JSP와 Servlet을 같이 쓰자 !



위와 같은 이유들에 의해 요즘은 두 언어를 같이 사용하는 추세입니다. MVC 프로그래밍이라 하는데, 

보다 정적인 View 부분을 개발하는 코드는 HTML을 주로 하여 위해 JSP로 작성하고

보다 동적인 Controller 부분을 개발하는 코드는 java를 주로 하여 데이터를 컨트롤하고 데이터베이스와 연결하는 부분 등 java의 클래스와 메소드들을 많이 이용해야하는 Servlet으로 작성합니다.

위처럼 두 부분이 나누어지기 때문에 가독성이나 후에 유지 보수에도 매우 좋은 장점을 가지게 됩니다.

즉 ! 필요한 부분에 필요한 언어를 사용하는 것이 중요하고(다른 프로그래밍도 마찬가지겠죠?), 이왕 공부할꺼면 둘다 알아야 겠네요..ㅎㅎㅎ



728x90
반응형

'Spring&Spring Boot > JSP' 카테고리의 다른 글

HttpServlet  (2) 2019.01.17
Servlet Mapping  (0) 2019.01.11
Servlet 개요  (0) 2019.01.11
JSP 개요  (0) 2019.01.10
웹이란 ? 웹 프로그래밍의 개요  (0) 2019.01.10
댓글