/ LECTURE

JDBC - Pattern

이 페이지는 다음에 대한 공부 기록입니다

JAVA(자바), Python(파이썬) 기반의

AI 활용 응용 소프트웨어 개발자 양성 과정

2021.11.10. ~ 2022.05.18.

찾으시는 정보가 있으시다면
주제별reference를 이용하시거나
우측 상단에 있는 검색기능을 이용해주세요

52일차 수업

사용자에게 입력받은 데이터를 DB에 저장하는 과정

웹페이지(HTML, CSS, JS) -> JAVA -> DB(오라클, mysql 등등)

  • 데이터 저장을 위해 JAVA로 DB를 호출할 때마다 객체를 생성하게 되면, 자원을 고갈시키는 원인이 됨

싱글톤 패턴

위의 문제를 해결하기 위해 동일한 인스턴스를 사용하는 기법

생성자는 다른 클래스에서 인스턴스화하지 못하도록 private로 선언

본인 클래스의 자료형으로 객체를 담을 변수를 미리 선언후, public static 메소드로 객체 생성 전에 기존 객체 유무 확인 과정을 거침

  • 미리 선언한 객체를 담는 변수가 null이면 객체를 생성하고, 값이 있다면 기존 객체를 반환

DAO

Data Access Object

DB라는 공간에 직접적으로 연결하는 객체

프로그램을 만들 때 DB를 사용하고, 데이터를 조회하고 조작하는 기능을 담당하는 오브젝트

6단계로 나눠지는 기존의 방식에서 DB와 관련이 있는 단계를 DAO클래스로 만든다

디자인 패턴

바퀴를 다시 만들지 마라

  • 이미 잘 만들어져서 잘되는 것을 처음부터 다시 작성하지 말자

개발을 할 때 서로 공통되는 설계 문제가 존재하면, 공통되는 해결책이 있다(패턴화)

문제가 있는 것을 다음과 같은 방식으로 단계를 구분 짓고 규칙화 하자

  • 콘텍스트 : 문제가 발생되는 상황

  • 문제 : 해결을 해야할 이슈

  • 해결 : 해결을 하도록 설계하고 관계를 연결하고, 등등.. 지침서, 템플릿

MVC 패턴

웹 개발을 할 때 가장 많이 사용하는 디자인 패턴

Model(데이터) : 프로젝트의 정보와 데이터들을 나타내는 영역, 변수, DB에 저장할 값

View(사용자 인터페이스) : 프로젝트에서 화면에 보여주는 영역, JSP 영역

Controller : 데이터와 사용자 인터페이스 간의 다리 역할, 사용자의 이벤트 발생 처리하고, 데이터를 이용하여 결과를 도출하는 영역(DAO)

각각의 맡은 바에만 집중하도록 설계

유지보수성이 상승, 프로젝트의 확장성, 유연성, 중복코딩이 줄어듬

VO

Value Object, 변수를 모아 둔 곳

DB의 컬럼과 대응하는 자바 클래스

public  class EmpVO{
    private int empno;

    public void setEmpno(int empno) {this.empno = empno;}
    public int getEmpno(){ return empno;}
}

// DAO 에서 VO 이용하기
public int insert(EmpVO vo) throws Exception{
    PreparedStatement ps = null;
    try{
        int result = 0;
        conn = DriverManager.getConnection(url,id,pw);

		String sql = INSERT INTO emp(empno) VALUES(?);

		ps = conn.prepareStatement(sql);
		ps.setInt(1,vo.getEmpno());

		result = ps.executeUpdate();
        return result;
    }
}
// jsp 에서 return을 받은 값으로 insert가 실행이 됬는지 조건을 걸 수 있음