본문 바로가기

수업 & 공부/수업 내용

28- jspmvc 구성도와 요구사항 명세

1. jspmvc 시스템 구성도


OS안에 DBMS, 웹 브라우저, Apache Tomcat, JVM 등등..들어있는 구조이고
(JVM은 Java Virtual Machine 의 줄임말 이며 Java Byte Code를 OS에 맞게 해석 해주는 역할)
우리가 만든 웹 프로그램 jspMvc는 Apache Tomcat 에서 실행된다

 

 

RDBMS란?

relational database 즉 관계형 DBMS이다
관계형 데이터베이스는 테이블(table)로 이루어져 있으며, 이 테이블은 키(key)와 값(value)의 관계를 나타낸다.

이처럼 데이터의 종속성을 관계(relationship)로 표현하는 것이 관계형 데이터베이스의 특징이다

 

 


 



2. url의 뜻과 apache Tomcat의 역할을 써보자

2-1 : http://localhost:8080/jspmvc/boardList.bbs?id=4 요청 url의 한국어 번역 :
웹 브라우저에서 // localhost컴퓨터의 8080번 포트를 사용해서// jspmvc서버(기능)의 (jspmvc 웹 어플리케이션)

// boardList.bbs 실행하여 id=4를 요청

> http 프로토콜로 localhost 머신에 접속한다.
> 해당 머신의 포트는 8080이고 
> 머신의 ip와 포트에 해당하는 웹 어플리케이션의 이름은 jspmvc이다
> 이 jspmvc웹 어플리케이션이 기능하는 url중 boardList.bbs를 요청함
> 이 boardList.bbs의 요청 파라미터의 키는 id이고 값은 4이다

 


2-2 : apache Tomcat의 역할 : 
apache는 HTTP요청을 처리하는 웹서버, tomcat은 WAS(Web Application Server)
여기서 웹서버(apache)는 요청받고 Data(정적Data)를 보내는 프로그램 , 
비즈니스 로직 같은 동적 데이터는 WAS(tomcat)에서 처리


여기서 동적, 정적 데이터란?
동적D : 실시간으로 변환되어 적용되어지는 데이터
정적D : 메모리에 데이터를 올려놓은 상태에서 > 데이터를 호출하여 사용하는 데이터

OS에서 실행되는 프로세스의 하나
웹 어플리케이션 서버를 담는 웹 컨테이너
원격지의 머신으로부터 웹요청(http,https) 를 받아 url에 따라 해당 웹 어플리케이션에게 요청을 전달

         



                 
 3.  jspmvc요구사항 명세                      
                           


  모든 submit 버튼은 용도에 맞게 이름지정    

                    
                           
<<1. 로그인>>          

             
  사용자는 웹브라우저를 통해 아이디와 비밀번호를 입력하여 로그인 한다                        
  아이디는 대소문자를 구분하지 않고 10글자 까지 허용한다                        
  비밀번호는 특수문자 '!', '@', '#' 만 포함하여 20자 까지 허용한다                  > 기능적              
  사용자의 비밀번호는 MD5 해시와 256byte 길이의 salt 값 (무작위 문자열)을 SHA-1 으로 해싱하여 저장 > 비기능적                     

 

   
                           
<<2. 글 목록 보기 기능>>    

                   
  글 목록 최상단에서 사용자가 임의로 페이지당 보여줄 글 수를 정할 수 있게 한다                        
  > 문자는 숫자만 입력받을 수 있다                        
  > 사용자가 정한 글 수에 따라 페이징 처리. 페이지는 최하단에 출력한다
  :: 글 내용은 페이징처리 되어 1페이지당 N개의 글을 보여줄 수 있다
                       
  글번호, 작성자, 제목, 작성일, 작성시간, 조회수, 댓글갯수 총 7가지 컬럼 순서로 글 리스트 출력                        
  > 사용자가 글 제목을 누르면 해당 글 읽기 페이지로 이동한다  
  :: 사용자는 boardList.bbs 요청을 받아 글 컨텐츠를 저장하는 DB테이블로 부터 글 내용을 가져와서 jsp로 보낸다                        
  [글 추가하기] 버튼을 통해 글 쓰기 기능 페이지로 넘어간다                        
                           
   


                    
<<3. 글 읽기 기능>>   기능적   

                       
  글 번호, 제목, 작성자, 작성일, 작성시간, 조회수, 댓글수 순서로 해당 글과 정보출력                        
  글 목록 보기, 수정하기, 삭제하기, 답글쓰기 버튼 구현                        
  > 버튼을 누르면 해당기능을 수행하는 페이지로 이동                        
  > 글 목록 보기 버튼 클릭 시, '1. 글 목록 보기' 페이지로 이동                        
  최하단에 댓글 입력, 댓글 목록보기 기능 구현                        
                           
:: 사용자는 글 목록에서 하나의 글을 선택하여 상세내용을 보는 페이지로 이동                        
:: 글 상세보기 라고도 한다.
:: 글 상세보기 에서는 해당 글에 대한 댓글과 답글을 작성가능
:: 글 상세보기 에서는 해당 글에 대한 댓글 목록을 볼 수 있다

 

 



<<4. 글 쓰기 기능>>   기능적   

                     
  제목, 작성자, 내용, 수정삭제 비밀번호 총 4가지 input박스 구현                       
  > 비밀번호를 제외한 모든 입력바 type은 text. 비밀번호는 password type 으로 받는다.                        
  하단에 submit 버튼과 취소버튼 생성                        
  > 취소버튼 클릭 시 '1. 글 목록 보기' 페이지로 이동한다                        
                           
                           

 


<<5. 글 수정 기능>>   기능적   

                       
  '3. 글 읽기' 페이지에서 이동                   
  글 수정을 위한 비밀번호 확인 페이지로 이동. password type을 받는 입력바, 확인, 취소 버튼 생성                        
  비밀번호 확인 실패시 안내 페이지로 이동                        
  > 안내 페이지에는 목록보기 버튼 생성. 버튼 클릭 시 글 목록 보기 페이지로 이동한다                        
  글 수정 페이지에서는 글번호, 제목, 작성자, 내용, 작성일, 작성시각, 조회수, 댓글수 순서로 해당 글 출력                        
  > 제목과 내용은 수정 가능하게 text type의 입력바로 나타낸다.                        
  하단에는 submit버튼과, '1. 글 목록 보기' 페이지로 이동하는 '취소하기' 버튼 생성                        
  > submit버튼 클릭 시, '1. 글 목록 보기' 페이지로 이동                        
                           

 


                           
<<6. 글 삭제 기능>>   기능적   

                     
  '3. 글 읽기' 페이지에서 이동                         
  글 삭제를 위한 비밀번호 확인 페이지로 이동. password type을 받는 입력바, submit, 취소 버튼 생성                        
  비밀번호 확인 실패시 안내 페이지로 이동                        
  > 안내 페이지에는 목록보기 버튼 생성. 버튼 클릭 시 '1. 글 목록 보기' 페이지로 이동한다                        
  비밀번호 일치 시, 해당 글을 삭제하고 '1. 글 목록 보기' 페이지로 이동                        
                           
                           

 


<<7. 댓글 기능>>   기능적   

                       
  '3. 글 읽기' 페이지에 댓글기능을 구현한다.                          
  하단에 댓글 달기 기능을 수행가능하도록 '작성자'와 '댓글내용' 두 개의 text type 입력바생성 그리고 submit버튼 구현                        
  작성자 내용 작성일 작성시각 총 4가지 칼럼의 순서로 댓글 리스트 출력                        
                           

 

 


                           
<<8. 답글 기능>>   기능적   

                     
  '3. 글 읽기' 페이지에서 이동                          
  제목, 작성자, 내용, 수정삭제 비밀번호 총 4가지 input박스 구현                        
  > 비밀번호를 제외한 모든 입력바 type은 text. 비밀번호는 password type 으로 받는다.                        
  하단에 submit 버튼과 취소버튼 생성                        
  > 취소버튼 클릭 시 '1. 글 목록 보기' 페이지로 이동한다                        
  8-1 답글 작성 시, 해당 부모 글 하단에 답글을 추가.                        
  8-2 해당 부모글에 깊이가 같은 답글이 여러개 달릴 시, 최근 답글이 상단에 위치하게 구현.