플레이데이터 23일차 - JDBC & MVC 패턴

Kim Hyen Su·2023년 8월 3일

JDBC

JDBC 기본 구조와 API의 이해

  • 데이터베이스의 종류가 다양하기 때문에 개발에 많은 어려움이 있다.
  • 이러한 어려운 문제를 해결하기 위한 자바에서 표준화된 방법으로 다양한 데이터베이스에 접속할 수 있도록 설계된 인터페이스를 JDBC API라고 한다.
  • JDBC API는 java.sql.* 패키지에 의해 구현된다.

JDBC 연동

  1. java.sql.* 패키지 임포트.
  2. JDBC 드라이버 로딩(MVNRepository)
    • Class.forName(DB에 따른 JDBC 드라이버 클래스명)
  3. DB 접속을 위한 Connection 객체 생성.
    • DriverManager 객체의 getConnection(URL,ID,PASSWORD) 호출.
  4. 쿼리문 실행을 위한 Statement 또는 PreparedStatement 객체 생성.
    • 보안, 효율 및 유지보수에 유리한 PreparedStatement 객체 사용.
    • SQL문을 미리 만들고, 필요한 변수값을 따로 담는 방식.
  5. 쿼리문 전송 및 실행
    • executeQuery() : SELECT 문 수행 시 사용하며, ResultSet 객체를 반환함.
    • executeUpdate() : UPDATE, DELETE 문 수행 시 사용, 반환값은 int 타입으로 처리한 데이터 수를 반환함.
  6. 쿼리 실행 후 반환값(int, ResultSet)을 사용.
  7. 연동 닫기
    • 역순으로 해제.([ResultSet] → PreparedStatement → Connection)

PreparedStatment 객체로 데이터 접근

  • 동적인 쿼리에 사용
  • PreparedStatement 객체는 하나의 객체로 여러 번의 쿼리 수행이 가능하며, 동일한 쿼리문을 특정 값만 바꾸어 여러번 실행해야 할 경우, 매개변수가 많을 때 유용하다.
  • 객체 생성 시, Connection 객체의 prepareStatement(sql) 메서드를 호출하여 생성함.
  • 쿼리문 안에 따로 값을 대입할 변수는 ?로 표기함.
  • 물음표에 값을 할당하기 위해 setXXX(자료형) 메서드를 사용한다.

쿼리문 실행 결과 가져오기

  • SELECT 쿼리문 실행 시 executeQuery() 메서드를 사용하면 실행 결과가 java.sql.ResultSet 타입을 반환한다.
  • ResultSet 객체는 Statement 또는 PreparedStatement 객체로 Select 문을 사용하여 얻어온 레코드 값을 테이블 형태로 가진 객체이다.
  • ResultSet 객체 안에 데이터 값을 조회하기 위해서는 getXXX() 메서드를 호출하여 값을 반환받는다.

웹 MVC

MVC 개요

  • Model, View, Controller의 약자.

  • 웹 애플리케이션을 비지니스 로직, 프레젠테이션 로직, 데이터로 분리하는 디자인 패턴.

    • 비지니스 로직 : 애플리케이션의 데이터 조회, 추가, 삭제, 수정 등의 조작에 사용됨.
    • 프레젠테이션 : 애플리케이션이 클라이언트에게 보여지는 화면을 구성할 때 사용됨.
    • 요청 처리 데이터 : 비지니스 로직과 프레젠테이션 로직을 함께 묶은 것을 의미함.
  • MVC 패턴의 장점은 유지보수가 용이하고, 기능의 확장이 쉽게할 수 있다.

  • 모델(Model) : 애플리케이션의 데이터 전송 시 담는 용도로 사용되는 DO(Data Object) 또는 비지니스 로직을 구현한 DAO(Data Access Object)가 있다.

  • 뷰(View) : 사용자에게 애플리케이션의 틀과 함께 데이터를 보여준다.

  • 컨트롤러(Controller) : 모델과 뷰 사이에 어떤 동작이 있을 때 이를 조정하는 역할로서, 클라이언트의 요청으로 받은 모델을 생성하고 처리하며, 사용자에게 보여줄 적절한 뷰를 선택 후 전달한다.

MVC 패턴 구조

  • 클라이언트 요청, 응답, 비지니스 로직 처리 부분을 각각 모듈화한 구조.
  • MVC 패턴에서 중심이 되는 곳은 Controller이며, 이를 서블릿으로 구현한다.

MVC 요청 처리 흐름

  1. 웹브라우저에서 웹서버에 애플리케이션 실행 요청을 하면, 웹 서버는 요청을 처리할 컨트롤러를 찾아서 요청을 전달한다.
  2. 컨트롤러는 모델에 정의된 DAO 객체의 메서드를 호출한다.
  3. 데이터를 가공하거나 JDBC를 사용하여 데이터베이스와의 상호작용을 통해 DO를 생성한다.
  4. 메서드 결과(반환값)를 컨트롤러에 반환.
  5. 컨트롤러는 결과를 뷰에 전달한다.
  6. JSP에서 전달받은 값을 참조하여 출력할 결과를 만들어 웹 서버에 전달하고, 웹브라우저는 웹 서버로부터 결과를 받아 화면에 출력한다.
profile
백엔드 서버 엔지니어

0개의 댓글