JSP
JSP - 스크립틀릿과 비즈니스 로직: 이해와 활용
jaycheol
2024. 8. 29. 11:41
반응형
JSP에서 스크립틀릿과 비즈니스 로직: 이해와 활용
스크립틀릿(Scriptlet)이란?
스크립틀릿은 JSP(JavaServer Pages)에서 Java 코드를 직접 작성할 수 있는 블록입니다. JSP 페이지에서 <% %> 태그를 사용하여 스크립틀릿을 작성하며, 이 안에 포함된 코드는 JSP 페이지가 실행될 때 서블릿의 일부로 컴파일됩니다.
JSP 페이지에서 <% %> 태그의 위치와 용도:
1. JSP 페이지의 상단에 배치:
- 페이지 전체에서 사용할 초기화 작업이나 설정을 처리하는 Java 코드를 작성할 때 사용됩니다. 예를 들어, 세션 변수 초기화, 데이터베이스 연결 설정 등을 상단에서 처리할 수 있습니다.
- 이 경우, 페이지 전체에서 참조할 수 있는 변수를 선언하거나 초기화하는 데 사용될 수 있습니다.
<%
String userName = "Guest";
if (session.getAttribute("userName") != null) {
userName = session.getAttribute("userName").toString();
}
%>
2. JSP 페이지의 중간이나 특정 HTML 코드 사이에 배치:
- JSP 페이지의 특정 위치에서 조건부로 Java 코드를 실행하거나, 출력할 데이터를 동적으로 생성할 때 사용됩니다.
- 예를 들어, HTML의 특정 부분에서 동적으로 데이터를 출력하거나 조건에 따라 다른 HTML을 렌더링하는 경우 사용됩니다.
<h1>Welcome to our website!</h1>
<%
if ("admin".equals(userName)) {
%>
<p>Hello, Admin!</p>
<%
} else {
%>
<p>Hello, <%= userName %>!</p>
<%
}
%>
3. JSP 페이지의 하단에 배치:
- 페이지 로드 후 클린업 작업이나 마지막으로 실행해야 할 코드를 작성하는 데 사용할 수 있습니다. 예를 들어, 데이터베이스 연결을 닫는 등의 작업이 해당됩니다.
- 하지만 이러한 작업은 보통 필터나 리스너에서 처리하는 것이 더 일반적입니다.
<% %> 태그의 사용 주의 사항:
- 복잡한 로직 지양: 비즈니스 로직을 JSP 내에 포함시키는 것은 권장되지 않습니다. MVC 패턴을 따라 로직은 서블릿이나 백엔드 클래스에서 처리하고, JSP는 뷰 역할만 담당하는 것이 바람직합니다.
- 태그 사용 최소화: 가능하다면 JSTL 및 커스텀 태그를 사용하여 로직을 처리하는 것이 유지보수와 코드 가독성 측면에서 더 좋습니다.
2. 비즈니스 로직이란?
비즈니스 로직(Business Logic)이란 소프트웨어 시스템에서 애플리케이션의 핵심적인 규칙, 프로세스, 계산 등을 처리하는 부분을 의미합니다. 즉, 애플리케이션이 제공하는 기능이 사용자나 다른 시스템에 대해 어떻게 동작해야 하는지를 정의하는 코드입니다. 비즈니스 로직은 데이터의 처리, 계산, 트랜잭션 처리, 데이터 검증, 워크플로우 관리 등과 같은 다양한 작업을 수행합니다.
비즈니스 로직의 주요 특징:
- 규칙과 정책 구현:
- 비즈니스 로직은 특정 비즈니스 도메인에 맞는 규칙과 정책을 구현합니다. 예를 들어, 은행 애플리케이션에서는 "잔액이 0 이하일 경우 인출을 허용하지 않는다"라는 규칙이 비즈니스 로직에 해당합니다.
- 데이터 처리:
- 비즈니스 로직은 입력 데이터를 처리하고 이를 기반으로 필요한 결과를 생성합니다. 예를 들어, 쇼핑몰 애플리케이션에서는 장바구니에 담긴 상품들의 가격을 계산하고, 할인율을 적용해 최종 결제 금액을 산출하는 과정이 비즈니스 로직입니다.
- 결정 로직:
- 비즈니스 로직은 특정 조건에 따라 다른 작업을 수행하도록 결정을 내립니다. 예를 들어, 고객의 등급에 따라 다른 할인율을 적용하는 로직이 여기에 해당합니다.
- 워크플로우 관리:
- 비즈니스 로직은 여러 단계를 거치는 프로세스를 관리할 수 있습니다. 예를 들어, 주문 처리는 "주문 접수 -> 결제 -> 배송 준비 -> 배송 완료"와 같은 여러 단계로 구성되며, 이 단계를 관리하는 것이 비즈니스 로직의 역할입니다.
비즈니스 로직과 프레젠테이션 로직의 차이:
- 비즈니스 로직: 데이터의 처리와 애플리케이션의 핵심 기능에 관련된 모든 것을 다룹니다. 일반적으로 서비스 레이어나 모델 클래스, 컨트롤러에서 처리됩니다.
- 프레젠테이션 로직: 사용자에게 데이터를 표시하고, 사용자로부터 입력을 받아 처리하는 부분입니다. 주로 JSP, HTML, CSS, JavaScript와 같은 뷰 레이어에서 처리됩니다.
비즈니스 로직 예시:
2. 은행 시스템:
public void withdraw(Account account, double amount) {
if (account.getBalance() >= amount) {
account.decreaseBalance(amount);
} else {
throw new InsufficientFundsException("잔액이 부족합니다.");
}
}
2. 쇼핑몰 시스템:
public double calculateTotalPrice(List<Item> items) {
double total = 0;
for (Item item : items) {
total += item.getPrice() * item.getQuantity();
}
if (total > 100) {
total *= 0.9; // 100달러 이상 구매 시 10% 할인
}
return total;
}
왜 비즈니스 로직을 뷰(JSP 등)에서 분리해야 하는가?
- 유지보수성: 비즈니스 로직이 뷰에 포함되면, 애플리케이션의 유지보수가 어렵고 코드의 재사용성이 떨어집니다.
- 테스트 용이성: 비즈니스 로직이 잘 분리되어 있으면, 단위 테스트가 쉬워집니다.
- 역할 분리: 비즈니스 로직은 데이터를 처리하는 데 집중하고, 뷰는 데이터를 사용자에게 보여주는 데 집중하게 됩니다. 이를 통해 애플리케이션 구조가 명확해지고, 각 레이어의 역할이 분명해집니다.
반응형