시사

JSP 자바 서블릿 차이점.. 동작 원리 및 EL JSTL 기초 총정리

안전보건환경의 모든것 2026. 1. 22. 20:46
반응형

혹시 웹 브라우저에서 화면이 어떻게 만들어지는지 궁금하신 적 있으신가요? 단순히 고정된 화면이 아니라 내가 로그인하면 내 이름이 나오고 장바구니에 담은 물건이 바로 보이는 그런 동적인 화면 말이에요. 이런 마법 같은 일을 가능하게 해주는 기술 중 하나가 바로 JSP라는 친구랍니다.

오늘은 자바를 기반으로 하는 웹 페이지 제작 기술인 JSP에 대해 아주 쉽고 자세하게 알아보려고 해요. 처음 프로그래밍을 접하시는 분들도 이해하기 쉽게 옆에서 설명해 주는 것처럼 하나씩 풀어서 말씀드릴게요. 이 글을 다 읽고 나면 복잡해 보이던 웹 서버의 동작 원리가 한눈에 들어오실 거예요.

JSP는 Java Server Page의 약자예요. 이름 그대로 서버 쪽에서 실행되어서 동적인 웹 페이지를 만들어 브라우저에 보내주는 역할을 해요. 우리가 흔히 보는 웹사이트의 뼈대는 HTML이라는 언어로 만들어지는데 JSP는 이 HTML 안에 자바 코드를 넣어서 상황에 따라 변하는 화면을 구성할 수 있게 도와준답니다.

재미있는 사실은 우리가 JSP 파일을 만들어서 서버에 올리면 서버가 이 파일을 그대로 사용하는 게 아니라는 점이에요. 실행되는 시점에서 자바 서블릿이라는 형태로 변신하고 컴파일 과정을 거쳐서 동작하게 돼요. 한 번 변신한 뒤에는 내용이 바뀌기 전까지 계속 재사용되기 때문에 효율도 아주 좋답니다.

공부하다 보면 서블릿이라는 말과 JSP라는 말을 동시에 듣게 되실 거예요. 두 친구는 웹 콘텐츠를 만들기 위해 자바 기술을 사용한다는 점과 웹 컨테이너 안에서 실행된다는 공통점이 있어요. 클라이언트의 요청을 받아서 처리하는 방식도 비슷하죠.

하지만 가장 큰 차이점은 바로 생긴 모양새예요. 서블릿은 자바 언어 중심이라서 파일 확장자도 점 자바인 경우가 많고 코딩 로직을 짜기에 적합해요. 반면에 JSP는 HTML 태그가 중심이라서 화면을 디자인하고 보여주는 역할을 주로 맡게 된답니다. 그래서 보통은 서블릿이 뒤에서 복잡한 계산을 하고 JSP가 앞에서 예쁜 화면을 보여주는 식으로 협력하곤 해요.

JSP가 우리 눈앞에 나타나기까지는 크게 다섯 가지 단계를 거쳐요. 먼저 우리가 브라우저에서 특정 주소로 접속해서 요청을 보내면 서버가 해당 JSP 파일을 찾아내요. 그 다음에는 이 JSP 파일을 자바 소스 파일로 변환하는 작업을 시작한답니다.

이때 HTML 코드는 화면에 글자를 뿌려주는 코드로 바뀌고 우리가 넣은 자바 코드들은 제자리를 찾아가게 돼요. 변환이 끝나면 자바 컴파일러가 이 파일을 기계가 읽을 수 있는 클래스 파일로 컴파일해요. 이제 실행할 준비가 다 된 셈이죠.

컴파일된 파일은 메모리에 로딩되어서 실제 객체로 만들어져요. 이때 중요한 점은 이 객체가 딱 하나만 생성된다는 거예요. 이걸 어려운 말로 싱글톤 구조라고 불러요. 한 번 만들어지면 나중에 다른 사람이 또 요청을 해도 새로 만드는 게 아니라 이미 만들어진 객체의 서비스 메소드를 불러서 바로 응답해 준답니다. 속도가 훨씬 빠르겠죠?

예전에는 JSP 안에 자바 코드를 직접 넣어서 썼는데 그러면 코드가 너무 복잡해지고 읽기도 힘들었어요. 그래서 등장한 게 바로 EL이라는 표현 언어예요. 달러 기호와 중괄호를 사용해서 아주 간단하게 데이터를 화면에 출력할 수 있게 해준답니다.

예를 들어 자바 코드로 길게 써야 했던 내용을 짧은 기호 하나로 끝낼 수 있는 거죠. 마치 우리가 스마트폰에서 단축키를 쓰는 것과 비슷하다고 생각하시면 돼요. 화면을 만드는 사람 입장에서는 복잡한 자바 문법을 몰라도 데이터를 쉽게 가져올 수 있으니까 정말 편리한 도구랍니다.

이 EL을 사용할 때 꼭 알아야 할 개념이 바로 스코프예요. 우리말로 하면 영역이나 수명 주기라고 할 수 있는데요. 어떤 데이터를 어디까지 공유하고 언제까지 유지할지를 정하는 약속이에요. JSP에는 크게 네 가지 영역이 있어요.

가장 작은 단위인 페이지 영역은 현재 보고 있는 페이지 안에서만 데이터가 유효해요. 그다음인 요청 영역은 한 번의 요청과 응답 사이에서만 데이터가 살아있죠. 우리가 자주 듣는 세션은 브라우저를 끄기 전까지 로그인을 유지하는 것처럼 좀 더 긴 시간 동안 데이터를 기억해요. 마지막으로 애플리케이션 영역은 서버가 켜져 있는 내내 모든 사용자가 공유하는 가장 큰 영역이랍니다.

EL이 데이터를 화면에 뿌려주는 역할이라면 JSTL은 조건문이나 반복문 같은 복잡한 로직을 태그 형태로 쓸 수 있게 도와주는 라이브러리예요. 원래 자바에서 쓰던 이프 문이나 포 문을 HTML 태그처럼 뾰족한 괄호 안에 넣어서 사용할 수 있게 해주는 거죠.

이렇게 하면 화면 디자인 코드와 프로그램 로직 코드가 섞이지 않아서 나중에 코드를 수정하거나 관리하기가 훨씬 수월해져요. 디자이너와 개발자가 협업할 때도 서로의 코드를 이해하기 쉬워지니까 실무에서도 정말 많이 사용되는 아주 중요한 기술이랍니다.

마지막으로 자바빈이라는 개념도 살짝 짚고 넘어갈게요. 이건 데이터를 담는 바구니라고 생각하시면 돼요. 이름이나 나이 같은 정보를 한데 묶어서 전달하는 객체인데 일정한 규칙을 지켜서 만들어야 해요. 이 바구니를 활용하면 EL에서 점 하나만 찍어서 원하는 정보를 쏙쏙 꺼내 쓸 수 있어서 정말 효율적이에요.

오늘 이렇게 JSP의 기초부터 동작 원리 그리고 편리한 도구들까지 쭉 훑어보았는데 어떠셨나요? 처음에는 낯설게 느껴질 수 있지만 구조를 이해하고 나면 웹 개발이 훨씬 재미있어질 거예요. 차근차근 실습도 해보시면서 나만의 멋진 동적 페이지를 만들어보시길 응원할게요.

#JSP #자바웹개발 #서블릿 #웹프로그래밍 #EL #JSTL #코딩공부 #백엔드입문 #자바빈 #서버개발

반응형