티스토리 뷰

 

1. 전자정부프레임워크 구조 ( spring framework의 MVC 구조에 기반을 둔다.)

model, view, controller

 

MVC의 흐름은 위 사진과 같습니다. 딱 사진만 보면은 복잡해 보이지만 순서대로 따라가보면 전혀 어렵지 않은데요. 간단하게 요약해보면 모델앤뷰로 절차를 밟게 되고 화면에 출력하기 위해 View와 ViewRewolver가 있다고 생각하면 되겠습니다.

①  웹브라우저에게 정보요청을 받은 디스패쳐서블릿은 어느 컨트롤러에 해당 요청을 전송할지 결정 (method="get" action="${empty serverUrl? 'http://localhost:8080' : serverUrl}/rest/v1/user/info" ) request

② 디스패쳐 서블릿은 핸들러 매핑에 어느 컨트롤러를 사용할건지 물어봄. (URL로 링크) [ 1번의 serverUrl을 통해 찾아감 ]

③ 결정된 컨트롤러는 해당요청을 수행하게 됨

④ 해당요청을 처리한 컨트롤러는 디스패쳐서블릿에 결과를 보냄. 이 과정에서 Model이 생성되어 View(JSP)에서 같이 사용됨 [Model을 통해 값 전달]

⑤ ModelAndView는 실제 JSP정보를 갖고 있지 않기 때문에 ViewResolver가 실제 JSP이름으로 변환하여 해당 view를 검색함.

⑥ 검색한 결과를 View에 전송

⑦ View는 모든 과정에서 처리된 결과를 화면으로 표현함

⑧ 마지막으로 디스패쳐서블릿이 웹브라우저에 최종결과를 출력

1.UTF-8등 설정들을 여기서 해준다. 만들어져 있는 파일을 사용하자

src\main\webapp\WEB-INF\web.xml

2. jsp파일을 만들기

src/main/webapp/WEB-INF/jsp/index/index_User.jsp

 

3. 자바 파일 만들기: 컨트롤러, 서비스, DAO (Java File : Controller, Service, DAO, VO(=DTO))

3-1. src/main/java/egovframework/ubiz/web/rest/UserRestController.java

• 컨트롤러(Controller) : 클라이언트에서 요청이 들어올 때, 해당 요청을 수행할 비즈니스 로직을 제어하는 객체다. 스프링에서는 컨트롤러에서 세부적으로 서비스 레이어(Service Layer)를 만들어 해당 요청사항을 객체 지향적인 방식으로 좀 더 세분화하여 관리한다. 

3-2. src/main/java/egovframework/ubiz/service/TbUserService.java

 

• 서비스(Service) : 서비스 레이어(Service Layer)단에서 세분화된 비즈니스로직을 처리하는 객체

3-3 src\main\java\egovframework\ubiz\service\impl\TbUserServiceImpl.java

 

 

• ServiceImplements : 스프링 구조와 상관없이 일반적으로 Service 하나를 만들면 ServiceImpl을 하나 만들어 준다. ( 그 이유에 관해는 표준화적인것이라 한다. 안정성관련? )

 

3-4 src\main\java\egovframework\ubiz\mapper\TbUserDAO.java

 

• DAO(Data Access Object) : DB를 사용해 데이터를 조회하거나 조작하는 기능을 전담하도록 만든 객체

3-5 src/main/java/egovframework/ubiz/service/TbUserVO.java

 

• VO(Value Object) : 각 계층간 데이터 교환을 위한 자바 객체를 의미한다. 이 객체는 데이터를 각 레이어 간에 전달하는 목적을 가지고 있으며 객체의 속성과 getter, setter만 가지고 있다. DTO(Data Transfer Object)로 불릴 수도 있다. 

 

• src\main\resources\mapper\xml

 

DB SQL 문

DAO-VO를 통한 DB와의 전달과정 , 재료담당

serviceImpl-Service와 한쌍 , 요리 담당

Tb service-Business Service Object, db와 컨트롤러 이음

Tb Vo (DTO)-DTO, DB의 칼럼들에 해당하는 변수를 만듦

xml-DB에서 동작하는 쿼리문을 작성

Controller -Servlet, 로직 작성 , 종업원 담당

+ JSP or Android -View

7개의 파일이 상호작용하여 db와 클라이언트와의 통신을 이룬다. (android or web)

 

 

https://postitforhooney.tistory.com/entry/Spring-MVC-%ED%8C%A8%ED%84%B4%EC%97%90%EC%84%9C%EC%9D%98-5%EA%B0%80%EC%A7%80-%EA%B3%84%EC%B8%B5%EC%97%90-%EB%8C%80%ED%95%9C-%EC%A0%95%EB%B3%B4-%ED%8D%BC%EC%98%B4

계층에 대한 설명은 위 링크에 자세히 되어있습니다.

MVC란 Model-View-Controller의 약자로, 사용자 인터페이스와 비지니스 로직을 분리하여 웹 개발을 하는것을 가장 큰 장점으로 한다. 

즉 html과 java소스를 분리해 놓았기 때문에 확장도 더 쉽고 유지보수도 더 쉽다.

개인적생각 : [하지만 처음보는 입장에서는 매우 난해하므로 직접 사용해봐야 알게된다.]

 

 

 

사용 예시는 비밀번호 찾기 ( 임시비밀번호 메일로 전송 ), 글쓰기( 사진 업로드 ), 좋아요 누르기 3가지를 예로 들어 설명하겠습니다.

 

남은부분은 다음장에서

 

https://15051015.tistory.com/55

댓글
최근에 올라온 글
최근에 달린 댓글
250x250