JSP 커스텀 태그(Custom Tag) 개념
# 커스텀 태그란?
- JSP에서 특정 UI 조각 또는 기능을 재사용 가능하게 캡슐화한 태그
- 모듈화, 태그화, 컴포넌트화 개념
- 과거에는 이런 UI 요소들을 위젯(Widget) 이라고 불렀다
즉, 여러 JSP 페이지에서 반복되는 영역을 하나로 묶어 관리할 수 있음
→ 유지보수 효율 상승
# 커스텀 태그를 사용해야 하는 이유
효과설명
| 결합도 낮춤 | JSP 내부에 자바 로직이 분리되면서 코드 의존성 감소 |
| 응집도 높임 | 관련 기능을 한 파일에 모아 관리 |
| 유지보수 용이 | 한 곳만 수정하면 전체 적용 |
| 가독성 향상 | 페이지 구조가 깔끔해지고 역할이 분리됨 |
# 커스텀 태그 저장 위치
- /WEB-INF/lib 에 태그 파일과 설정 파일을 묶어서 관리
- 상단에 태그 지시어(taglib) 를 선언해 컴파일러가 인식하도록 함
예시)
<%@ taglib prefix="my" uri="/WEB-INF/tags" %>
* 말 그대로 외부 자원을 JSP에 끌어올 때는 태그 지시어가 필수
# <jsp:doBody /> 의 의미
- 태그 내부에 작성된 body 내용을 대신 출력하는 역할
- 외부에서 원하는 값을 넣어 태그가 출력하도록 함 → 확장성↑
예시 흐름)
불러오는 쪽에서 원하는 속성값 전달
태그 내부에서 doBody()가 출력 처리
설정 방식 변화: web.xml vs Annotation
✔ Web.xml 기반 설정 (.xml)
- 프로젝트 전반 설정에 활용
- 세부 제어 가능하지만
- 가독성이 떨어짐
- 분석이 어려움
✔ Annotation 기반 설정 (@WebServlet 등)
- 자바 코드에 직접 선언 → 가독성 좋고 분석 쉬움
- 다만,
- 이미 정의된 어노테이션만 사용 가능
- 자바 관련 설정만 가능
- 광범위한 설정 불가
결론: 두 방식은 보완 관계
구분추천 사용 대상
| 어노테이션 | 클래스 단위, 자바와 직접 연결되는 설정 |
| web.xml | 프로젝트 전체 흐름, 공통 설정 |
예시)
@WebServlet("*.do")
→ 톰캣이 실행될 때 해당 패턴을 가진 요청을 자동 매핑
커스텀 태그 도입 효과
항목효과
| 페이지 구조 개선 | View 코드의 가독성 향상 |
| 재사용성 증가 | 동일 UI, 동일 로직 한 번에 관리 |
| 유지보수 쉬움 | 수정은 한 파일에서 처리 |
| 분리된 구조 | View와 Logic 책임 분리 (MVC에 적합) |
오늘 수업 핵심
- JSP 커스텀태그 = 모듈화 + 재사용성 극대화
- taglib 지시어 필수 (외부 자원 끌어올 때)
- <jsp:doBody /> 로 Body 출력
- Annotation(@WebServlet) 사용 증가 추세지만
.xml 은 여전히 중요 & 보완 관계 - JSP View 파트 마무리 → 다음은 외부 스크립트/프레임워크 기반 진행
'수업 복습' 카테고리의 다른 글
| 다형성 복습 및 과제 (0) | 2026.01.13 |
|---|---|
| Spring Framework (1) | 2026.01.13 |
| 팩토리 패턴 & 싱글톤 복습 (0) | 2025.11.28 |
| 비동기 통신 & FC 패턴 복습 (0) | 2025.11.27 |
| JS 내장객체 (0) | 2025.11.18 |