💻 프로젝트명: JSP 웹 계산기

🌐 프로젝트 개요
본 프로젝트는 JSP(Java Server Pages)를 활용하여 웹 환경에서 사칙연산(+, -, *, /)을 수행할 수 있는 간단한 계산기 프로그램을 구현한 것입니다. 사용자가 브라우저에서 직접 숫자와 연산자를 입력하면, 결과를 실시간으로 계산하여 출력합니다. 이 프로젝트는 JSP 기본 문법, 폼 데이터 전송, 서버 사이드 로직 처리 등을 실습하며 웹 애플리케이션의 기초를 다지기 위해 제작되었습니다.
🛠 사용 기술
-
개발 도구: Eclipse IDE, Apache Tomcat
-
프론트엔드: HTML5, CSS (기본 폼 구성)
-
백엔드: JSP (Java 기반 서버사이드 처리)
-
서버 연동: GET 방식으로 사용자 입력 처리
📄 주요 기능
-
입력 폼 페이지 (calcForm.jsp)
-
사용자로부터 두 개의 정수와 연산자를 입력받는 HTML 폼 제공
-
form
태그를 통해calcPro.jsp
로 데이터 전송<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>계산기</title> </head> <body> <h2>계산기</h2> <form method="post" action="calcPro.jsp"> <input type="text" name="num1" size="5"> <select name="operator"> <option value="+">+</option> <option value="-">-</option> <option value="*">*</option> <option value="/">/</option> </select> <input type="text" name="num2" size="5"> <input type="submit" value="입력"> </form> </body> </html>
-
-
처리 로직 페이지 (calcPro.jsp)
-
전송된 숫자와 연산자를 파라미터로 받아 Java 코드로 처리
-
switch문을 활용한 사칙연산 로직 구현
-
0으로 나눌 경우 오류 처리 메시지 출력
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% int num1 = Integer.parseInt(request.getParameter("num1")); int num2 = Integer.parseInt(request.getParameter("num2")); String operator = request.getParameter("operator"); int result = 0; boolean error = false; switch (operator) { case "+": result = num1 + num2; break; case "-": result = num1 - num2; break; case "*": result = num1 * num2; break; case "/": if (num2 != 0) { result = num1 / num2; } else { error = true; } break; } %> <% if (!error) { %> <p>결과: <%= num1 %> <%= operator %> <%= num2 %> = <%= result %></p> <% } else { %> <p>0으로 나눌 수 없습니다.</p> <% } %>
-
-
출력 결과
-
예:
5 / 3 = 1
형식으로 결과 반환 -
계산 결과를 HTML 텍스트로 사용자에게 시각적으로 보여줌
-
🧠 구현 시 고려한 사항
-
잘못된 입력이나 0으로 나누기와 같은 예외 상황에 대한 기본적인 에러 처리
-
JSP 내 Java 코드 작성 시 가독성과 유지보수를 고려한 구조
-
입력값 검증을 통한 안정성 확보 (향후 JavaScript 검증 추가 가능)
📌 프로젝트 시사점
이 프로젝트를 통해 JSP의 기본 구조와 데이터 흐름(HttpServletRequest → 서버 처리 → 결과 출력)에 대한 이해도를 높였습니다. 또한 사용자와 서버 간의 상호작용 방식 및 웹 애플리케이션 개발 흐름을 실습해보며 웹 백엔드 기초를 탄탄히 다졌습니다. 향후에는 DB 연동을 통한 회원 관리 기능, 계산 이력 저장 기능 등으로 확장 가능성이 있습니다.