JSP - 웹 어플리케이션 구조
- 기존의 JSP는 JAVA+ HTML이 혼재 되어있다
- JAVA = 데이터를 받는 처리(사용자 요청 처리)
= DB코드 (커넥션, 드라이버로드..Statement...)
→ JSP파일에서 중복코드가 발생한다. 이를 막기위해 구조화된 코드를 작성하자
JSP만을 이용하는 경우의 문제
- 코드의 중복, 유지보수불편 → 클래스로 이용해 중복제거!
클래스를 이용한 중복제거
- JSP : 사용자요청, 응답View처리
- 클래스 : 실제 로직을 수행 (서비스클래스- 핵심요청처리)
→ JSP 코드가 간결해지며 , 유지보수가 편해진다.
웹 어플리케이션의 일반적인 구성
- Service 클래스 : (핵심처리) 사용자의 요청을 처리하는 기능제공, DAO클래스로 DB연동
- DAO 클래스 : DB와 관련된 CRUD작업을 처리 (SQL쿼리 실행)
- JSP(뷰) : Service 클래스의 실행결과를 화면에 출력, 필요한 데이터를 서비스클래스 전달
- MVC 프레임워크 :
1. 사용자 요청을 받아서 Service에 전달 (컨트롤러)
2. 처리할 수 있는 클래스를 찾아서 요청
3. 응답 (View 형태)
DAO의 구현
- CRUD를 위한 메서드 정의
1) insert() 메서드 - INSERT 쿼리를 실행
2) select() 메서드 - SELECT 쿼리를 실행 , 검색 조건에 따라서 한 개 이상의 메서드 제공
3) update() 메서드 - UPDATE 쿼리를 실행
4) delete() 메서드 - DELETE 쿼리를 실행
테이블과 매핑될 클래스 작성
DAO에 Connection 전달 방법
- DAO 클래스이 메서드 파라미터로 Connction을 전달받기
1) 1개 이상 DAO 메서드 호출을 트랜잭션으로 묶을 수 있음
2) DAO 객체를 매번 생성할 필요 없음 (싱클톤 패턴)
서비스 클래스 구현
- 사용자의 요청을 처리하기 위한 가능을 구현
- DAO를 통해서 데이터에 접근
트랜잭션
- 서비스가 제공하는 기능이 트랜잭션 필요시
Connection.setAutoCommit(false)로 트랜잭션 처리
서비스 클래스의 예외처리
- 서비스 클래스의 메서드는 서비스가 제공하는 기능에 알맞는 예외 발생시키는 것이 좋음
싱글톤패턴 (서비스클래스/DAO클래스) 구현
싱글톤패턴 : 클래스 당 한개의 객체만 생성되도록 제약하는 구현 패턴
- 서비스나 DAO는 매번 객체 생성할 필요가 없음 (변수는 필요없고, 기능한 구현했으므로)
- SPRING 프레임워크에서는 자동으로 싱글턴으로 구현해줌. (하나만 생성하고 재사용)
ConnectionProvider의 구현
(커넥션 풀 초기화)
- 서비스에서 Connection을 직접 생성할 경우 단점(DB를 사용하는 페이지에 직접 생성하는 경우)
1) JDBC URL 등, 변경될 경우 모든 코드를 변경할 가능성,
2) 유지보수에 불리 할 수 있기 때문에 ConnectionProvider클래스를 별도로 작성
→ 중복 코드를 막을 수 있고, 유지보수가 편해진다.
'프로그래밍 > JSP' 카테고리의 다른 글
JDBC - JDBC 프로그래밍 예제(3) - 소스코드 (0) | 2018.07.21 |
---|---|
JDBC - JDBC 프로그래밍 예제(3) - 실행화면 (0) | 2018.07.21 |
JDBC - 커넥션 풀 (0) | 2018.07.21 |
JDBC - 트랜잭션 처리 (0) | 2018.07.21 |
JDBC - JDBC 프로그래밍 예제(2) (0) | 2018.07.21 |