Notice
Recent Posts
Recent Comments
Link
«   2026/05   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Archives
Today
Total
관리 메뉴

ki-sd 님의 블로그

[2026-05-18] Servlet과 JSP의 아키텍처 비교 및 CSS Position 속성 정리 본문

WebStudy

[2026-05-18] Servlet과 JSP의 아키텍처 비교 및 CSS Position 속성 정리

ki-sd 2026. 5. 18. 20:24

오늘은 자바(Java) 코드로 웹 화면을 구성하는 서블릿(Servlet) 방식을 실습하고, 이를 개선하기 위해 등장한 JSP(JavaServer Pages)의 구조적 차이를 확인했다. 또한, 웹 페이지 요소의 배치를 제어하는 CSS position 속성의 특징을 정리했다.

 

1. Servlet의 동작 원리와 JSP의 특징

  • 서블릿(Servlet)의 한계: EmpList.java 실습을 통해 서블릿 클래스를 작성했다. DB에서 사원 정보를 가져와 브라우저에 출력할 때, out.println("<html>...");처럼 HTML 코드를 일일이 문자열로 작성해야 하므로 화면 수정과 유지보수가 까다롭다는 점을 확인했다.
  • JSP의 도입과 동작 사이클: 반면 JSP는 HTML 뼈대 안에 자바 코드를 삽입하는 방식이다. 클라이언트가 .jsp 파일을 요청하면, 톰캣(WAS)이 이를 서블릿(.java -> .class)으로 변환하여 실행한 뒤 HTML 결과물만 브라우저로 응답하는 흐름을 파악했다.

2. JSP 기본 문법 (스크립팅 요소)과 제어문

  • <% %> (스크립틀릿): 일반적인 자바 로직(변수 선언, 반복문, 메서드 호출 등)이 작성되는 영역이다.
  • <%= %> (표현식): 변수나 연산의 결과값을 화면에 출력할 때 사용하며, 끝에 세미콜론(;)을 붙이지 않는 특징이 있다.
  • <%! %> (선언식): 멤버 변수나 메서드를 선언할 때 사용하지만, 동시성 문제와 객체 지향적 설계 원칙으로 인해 실무에서는 잘 쓰이지 않는 점을 짚고 넘어갔다.
  • JSTL 도입: jsp_basic5.jsp 실습에서 <c:forEach> 태그를 사용하여, 자바의 반복문 로직을 HTML과 분리해 가독성을 높이는 방법을 실습했다.

3. 백엔드 데이터 연동: EMP/DEPT 조인(JOIN)

  • EmpDAO에서 사원 테이블(EMP)과 부서 테이블(DEPT)을 조인한 결과를 EmpVO에 담아 JSP로 전달했다. 이를 통해 데이터베이스의 데이터가 Java를 거쳐 웹 화면으로 출력되는 계층 간 데이터 흐름을 확인했다.

4. CSS Position 속성을 이용한 공간 제어 문서의 기본 흐름(static)을 벗어나, 요소를 특정 위치에 배치하는 CSS 레이아웃 속성을 다루었다.

  • relative (상대 위치): 원래 배치되어야 할 기준점에서 top, left 등의 좌표만큼 이동한다. 주로 absolute 요소의 기준점이 되는 부모 영역을 설정할 때 사용한다.
  • absolute (절대 위치): 상위 태그 중 static이 아닌 요소(주로 relative)를 기준으로 삼아 특정 좌표에 배치된다. 문서의 기본 흐름에서 빠져나오기 때문에 다른 요소들과 공간이 겹칠 수 있다.
  • fixed (고정 위치): 브라우저 창(Viewport)을 기준으로 위치가 고정되어, 스크롤을 내려도 화면의 지정된 자리에 머문다.
  • z-index (레이어 깊이): 위치 속성으로 인해 요소들이 겹칠 때, 화면에 보여지는 Z축 순서를 결정한다. 숫자가 클수록 상단에 노출된다.