1) 요구사항 (Requirement) : 시스템이 갖춰야 할 요건
1. 기능적 요구사항 : 시스템이 제공하는 서비스, 시스템이 무엇을 하여야 하는가를 기술
- 입력 (유입된 데이터와 처리)
- 출력 (화면 디스플레이, 인쇄, 다른 시스템에 전달되는 정보)
- 저장 (시스템은 어떤 데이터를 저장하는가, 데이터베이스 관련)
- 컴퓨팅 (어떤 계산 또는 서비스가 이루어지는가)
- 타이밍과 동기화 (하드웨어 장치 제어, 리얼타임으로 작업을 수행하는 시스템에서 중요)
2. 비기능적 요구사항 : 반드시 지켜져야 할 제약조건
1- 소프트웨어 품질 특성 측면 (성능, 신뢰성, 가용성, 사용성 등)
- 반응시간 : 탐색 결과가 1초 이내 나와야 함
- 처리량 : 분당 트랜잭션 처리 수
- 자원 사용량 : 시스템은 최대 ~ 메모리를 사용함
- 신뢰성 : 시스템이 고장없이 동작할 가능성
- 가용성 : 시스템이 항상 실행되고 준비된 상태에 있는 시간 ( ex) down time이 1분 이내여야 한다.)
- 고장에서의 회복 : 고장으로 인해 영향을 받는 최대 허용치
- 유지보수성과 확장의 허용
- 재사용성의 허용
2- 시스템의 환경과 기술적 측면
- 플랫폼 : 시스템이 동잘할 HW, OS
- 사용기술 : 프로그래밍 언어, 프레임워크
3- 프로젝트 계획과 개발 방법에 관한 측면
- 사용하는 개발 프로세스
- 비용과 납기일 (하지만 이부분은 요구사항 명세보다는 개발 계약서, 별도의 프로젝트 계획서에 주로 명시)
ex) 항공권 예약 시스템의 요구 사항
- 항공편, 탑승객, 예약 입력 방법 결정 : 기능(입력)
- 티켓과 리포트에 어떤 정보를 표시할 지 결정 : 기능(출력)
- 요금 계산 방법 결정 : 기능(컴퓨팅)
- 여행사와 고객이 데이터베이스에 접근할 때 어떤 정보를 얻을 수 있는지 결정 : 기능(저장)
- 자주 탑승하는 고객을 서비스하기 위해 시스템을 확장할 수 있도록 설계 : 비기능(유지보수성)
- 시스템은 항상 사용가능해야함. 일주일에 2분정도의 down time만 허용 : 비기능(가용성)
- 항공편 출발 시각으로 정렬할 때 합병 정렬 알고리즘을 사용 : 기능 , 비기능 모두 아님 -> 상세 설계
2) POST 방식
<form action="<%= request.getContextPath() %>/EX2/action.jsp" method="post">
아이디 : <input type="text" name="userId"> <br/>
비번 : <input type="text" name="userPw"> <br/>
권한 : <input type="text" name="userLevel"> <br/>
이름 : <input type="text" name="userName"> <br/>
이메일 : <input type="text" name="userEmail"> <br/>
<input type="submit" value="회원가입버튼">
</form>
- post 방식 한글처리
<%request.setCharacterEncoding("euc-kr"); %>
3) GET방식
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
action.jsp<br>
<%
String userId = request.getParameter("userId");
String userPw = request.getParameter("userPw");
String userLevel = request.getParameter("userLevel");
String userName = request.getParameter("userName");
String userEmail = request.getParameter("userEmail");
System.out.println(userId + "<-userId");
System.out.println(userPw + "<-userPw");
System.out.println(userLevel + "<-userLevel");
System.out.println(userName + "<-userName");
System.out.println(userEmail + "<-userEmail");
out.println(userId + "<-userId <br>");
out.println(userPw + "<-userPw <br>");
out.println(userLevel + "<-userLevel <br>");
out.println(userName + "<-userName <br>");
out.println(userEmail + "<-userEmail <br><br>");
%>
표현식 userId : <%= userId %><br>
표현식 userPw : <%= userPw %><br>
표현식 userLevel : <%= userLevel %><br>
표현식 userName : <%= userName %><br>
표현식 userEmail : <%= userEmail %><br>
<a href="<%= request.getContextPath() %>/EX2/getAction.jsp?userId=<%= userId %>&userPw=<%= userPw %>&userLevel=<%= userLevel %>&userName=<%= userName %>&userEmail=<%= userEmail %>">
get방식 요청 버튼</a>
- get방식 한글처리
Servers > Tomcat v9.0 Server at localhost-config > server.xml 63라인
<Connector connectionTimeout="20000" maxParameterCount="1000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
-> <Connector connectionTimeout="20000" maxParameterCount="1000" port="8007" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="euc-kr" />
4) jsp 문법 구조
| <% %> | 자바코드 : scriptlet(스크립트릿) |
| <%@ %> | 하나의 jsp 설정 : Directive(디렉티브) |
| <%= %> | 변수에 담겨있는 값 또는 리턴값을 출력 : 표현식 |
| <%! %> | 메서드 선언부 -> 향후에는 자바코드로 빠지면 안 쓴다 |
| <%-- --%> | 주석 ( Ctrl + Shift + / ) |
5) include Directive(디렉티브) : 일부 소스코드를 포함시키는 개념
<%@ include file = "/module/top.jsp" %>
'JAVA, JSP' 카테고리의 다른 글
| JDBC(Java data base connectivity) 프로그램 순서 7단계 (0) | 2024.07.18 |
|---|---|
| setAttribute, getAttribute, request.getParameter, session객체, JDBC 프로그램 순서 7단계 (1) | 2024.07.16 |
| java - 오버플로우, 언더플로우, 비교연산자, 주석, 문자열 비교 메서드 (0) | 2024.07.11 |
| post, get 방식, Wrapper class (0) | 2024.07.10 |
| 생성자 메서드 오버로딩, static, 메서드 오버라이딩, 추상 클래스, 추상 메서드, interface (0) | 2024.07.08 |