개발/KH국비지원과정

[KH국비지원 웹개발자 과정] Day_33 키워드 JDBC실습, MVC패턴 등

mabb 2022. 7. 27. 20:03
반응형

 안녕하세요. 삶의 질을 높이고자 노력하는 영차영차입니다.
드디어 국비지원 학원을 다니며 공부에 전념을 할 수 있게 되었습니다.
해당 포스팅은 강의 복기용으로 키워드를 기록하는 용도의 포스팅입니다.
--------------------------------------------------------------------------------------------------

회원관리 프로그램 실습 마무리)

JDBC실습을 3단계로 진행하였음
1. Statement를 사용하여 JDBC프로그래밍
2.PrepareStatement를 사용하여 JDBC프로그래밍
3.MVC패턴2 방식을 사용하여 JDBC프로그래밍(싱글톤, 오토커밋 해제 커밋, 롤백)

수업 중 개인적인 공부)
VIEW에서 입력받는 이메일, 성별, 전화번호 등의 형식을 제한해보기.
정규표현식과 조건문으로 처리를 해봄.
String regex = "\\d+";
Pattern.matches(regex, input)으로 숫자만 있는지 체크한 후 parseInt().

사용자 편의를 위하여 작지만 편리한 기능을 구현하는 것이 중요하다는 생각을 해보았음.

충분히 반복하면 일을 할 수 있을만큼의 능력을 갖출 수 있으니 포기하지 말고 노력하라는 말씀.

회사가서도 공부는 계속하게 될 것이므로 조급해하지 말 것.

도서관 관리프로그램 만들기 숙제)

회원, 도서, 대여정보의 3개의 테이블을 가지고 서브메뉴에서 crud기능을 수행하는 프로그램.

메인 메소드에 골자를 만들어놓고 이클립스의 메소드 add 기능을 이용하면 편리하다.

vo들의 부모클래스를 만들어 매개변수의 다형성을 구현해보려 하였으나 형변환등의 문제가 있어서 오히려 더 불편할 것 같다는 생각이 듦.

ArrayList<? extends Library> 같은 형태로 어레이리스트를 활용해보고자 하였으나 제대로 되지 않아 기본적인 기능부터 구현하기록 함.

전체조회 기능은 테이블 명만 다르므로 테이블 명을 String 변수로 활용하면 어떨까 고민해봄.

Statement와 PreparedStatement의 차이
객체생성:  createStatement()  /  prepareStatement(sql)
실행메소드 excute*(sql)  /  excute*()  (실행 전 위치변수 설정 필수)

Statement는 쿼리문을 별도로 컴파일 하지 않아서 단순 실행일 경우 속도가 빠르다.
PreparedStatement는  Statement를 상속받아서 만든 인터페이스로 쿼리문을 미리 컴파일하여 캐싱한 후 재사용하는 구조이다. 컴파일 하는 과정이 있어 느릴 수 있지만 쿼리문을 반복해서 실행할 때는 속도가 빠르다. 전달값이 있는 쿼리문에 대해서 SQLInjection을 방어할 수 있는 보안기능이 추가됨.

코딩을 할 때 해커의 공격에 취약하지 않도록 하는 방법론. -> 자바 시큐어 코딩

MVC 패턴 
모델

컨트롤러
->모델, 뷰, 컨트롤러로 나누어서 코딩을 해보았는지.
->유지보수와 협업 측면에서 MVC패턴을 쓰면 좋다고 함.

MVC패턴1 : 클래스가 나누어져있지 않고 합쳐져 있는 MVC패턴
MVC패턴2 : 클래스가 나누어져있는 MVC패턴

기존에 뷰, 컨트롤러, DAO로 구성하였던 것을
뷰, 컨트롤러, 서비스, DAO, JDBCTemplate로 나누어 구성.

DAO에 치중되어있는 기능을 분산함.
Service에서 DB연결정보를 관리하고 DAO전달 및 반환, 컨트롤러에 결과전송 및 수동 커밋등을 수행한다.

트랜잭션 수행을 위하여 수동커밋을 해야함.
Connection의 메소드
setAutoCommit(false)
commit(), rollback(), savepoint()

 

디자인패턴: 각기 다른 소프트웨어 모듈이나 기능을 가진 응용 소프트웨어를 개발할 때 공통되는 설계문제를 해결하기 위하여 사용되는 패턴.
-->효율적인 방식을 위함. 종류가 많아서 다 공부하기는 어렵다.
패턴의 종류: 생성패턴, 구조패턴, 행위패턴...
1.생성패턴
  -싱글톤 패턴 : 객체를 한번만 생성하는 패턴. 클래스 간 관계를 맺을 때 new키워드를 이용하여 객체를 생성함.  새로운(다른)객체가 계속 생성되는 것이 비효율적임. 필요할 때마다 new키워드를 이용하여 메모리를 할당할 필요가 있느냐 하는 점에서 시작됨.
  -추상 팩토리
  -팩토리 메서드
2.구조패턴
  -컴포지트
  -데코레이트
3. 행위패턴
  -옵저버
  -스테이트
  -전략
  -템플릿 메서드...

 

public class Singletone{
private static Singleton instance;

private Singleton(){}

public static Singleton getInstance(){
if(instance == null){
   instance == new Singleton();
}
return instance;
}
}

 

 

반응형