JSP - 18. facade 패턴을 이용한 DB연동

갓김치·2020년 12월 11일
0

JSP+Spring

목록 보기
19/43

복습

$. vs. $.fn.

  • $. : jQuery 함수
  • $.fn. : 셀렉팅을 통해서 엘리먼트를 셀렉트 한 후 이너펑션의 기능

scope

  • block scope
  • 지역 변수
  • closure
    • 단계적인 클로져
  • global

세션타이머의 목적

  • plugin 형태의 jquery library를 만드는 방법
  • closure라는 개념



facade 패턴을 이용한 DB연동

  • 드라이버안에는 sql 패키지의 인터페이스의 구현체들만 모여있는 것 = 어느 드라이버를 써도 코드 수정 필요 없음
    • 인터페이스 다형성
      • 시그니쳐만 알고있으면 안에 작동방식은 몰라도 사용가능
      • linkedmap, hashmap

dao의 필요성

  1. 컨트롤러: 요청 받아서 분석
  2. 모델 데이터 만들어 (JDBC 프로그래밍 단계)
    2-1) dao: db접근해서 raw 데이터 가져옴
  3. 컨트롤러: 모델데이터를 스코프로 공유해
  4. 컨트롤러: 어떤 뷰 쓸지 결정 후 뷰로 이동
  5. 뷰: 응답데이터 전송
  • 모델 레이어에서의 책임을 덜어주기 위해

왜 모델1쓰면 안될까?

1. 책임 분리

2. 보안





  • server의 web.xml의 default servlet 기능
    • 동적요청을 처리하는 WAS가 정적요청까지 핸들링할 수 있도록
    • 이게 없으면 html, js, image 처리 불가능
  • /WEB-INF/ 밑에 있지 않으면 listing 설정 true시 외부에서 자원 정보에 접근할 수 있음

selectDBProperties

  • 고정된 시그니처가 없어서 매개변수 바뀔때마다 바꾸는 일이 일어남
    • alt+shift+c

인터페이스

  • interface: 기계를 어떻게 쓸지 방법만 정의
  • Service가 interface가 아닐 때
    • 서비스에 들어가는 로직의 내용이 아직 구현이 되지 않았을때 문제 발생
    • 컨트롤러 개발자는 서비스 개발이 끝날때 까지 기다려야함 -> 직업이 직렬 형태 -> 컨트롤러가 서비스에 의존

장점

협업

  • 서비스가 미완이어도 컨트롤러단에서 병렬 작업가능

캡슐화(실행코드의 축소)

  • 메서드가 어떻게 돌아가는지 몰라도됨

캡슐화의 2가지 측면

  • 1) 데이터 보호
  • 2) 사용자로부터 실행코드 보호: 사용자는 코드가 어떻게 실행되는지 전혀 몰라도 사용할 수 있음

static block

https://docs.oracle.com/javase/tutorial/java/javaOO/initial.html

과제

  • 이메일, 이름받아서 계정관리 inmemory 방식 map활용햇엇는데 그걸 db로
  • 테이블. vo만들고
  • dao 구현체 만들어서 db접근하도록
profile
갈 길이 멀다

0개의 댓글