2022-07-22

강아람·2022년 7월 22일
0

Kakao Cloud School

목록 보기
14/30
post-thumbnail

회원관리 Program

  • 기능
    • 새로운 회원 등록
    • 기?? 검색

Package : lecture0722.step1

  • Main.java : main method

    • private field : db의 column명과 같은 변수명
  • UserDAO.java : DAO (data를 전문적으로 처리하는 객체)

  • User.java : DTO, VO, Entity, Bean

    => 원래는 각각의 기능별로 Package를 나누어야 한다.
    업로드중..

Class.forName() : JDBC Driver 로딩



Java

  • Language spec
  • Class, Instance (객체 지향)
  • Class Library
    • Thread
    • IO
    • Network
    • Collection
  • Database
    • JDBC

Web

  • Servlet ▶ Framework

IOT

  • Android

Design Pattern

Refactoring

  • 프로그램 객체화 (효율적인 프로그래밍)



Design Pattern

Class 작성(설계)시

  • 객체지향 : 재사용성, 유지 보수
    • 문제 또는 변화가 있을 경우 빠르게, 쉽게, 안정적으로 프로그램 수정이 가능해야 함
    • 코드의 수정이 다른 부분에 미치는 영향을 최소화

SoC (seperation Of Concern)

  • 여러 관점에 따라 분리시킴 = 관심사의 분리
  • ex. JDBC
    • Java Program과 DB 연결 기능, DB에서 데이터 처리 기능 등
    • 여러 기능이 혼재되어 있지 않도록 구조를 변경하여 효율성을 향상시키는 방향으로 refactoring
      ▶ method 추출 기법(Method Extraction)을 사용하여 새로운 method를 만듦
  • 현재 만든 JDBC 프로그램은 MySQL DBMS만 사용 가능
  • 기업들은 나름대로의DBMS와 connection 연결 방식 사용
    • 소스코드 제공 ??? -> 불가능
    • 상속을 이용해 해결 (Template method Pattern - Framework에서 많이 사용)
      • 상위 class(UserDAO)에 기본적인 logic 흐름이 구현(이 안에 protected method, abstract method가 있다.)
      • 하위 class(NUserDAO)에서 추상 method를 overriding해서 하위 class에 맞도록 기능 완성

Step2 : Template method pattern

  • class를 상속, 확장하는 가장 기본적인 방식
    -> 상위 class : 변경되지 않는 기능(logic)
    -> 하위 class : 변경할 기능(logic)을 구현
  • 다른 관점에서 보면
    • UserDAO에는 getConnection이라는 추상 method가 존재
    • NUserDAO에서 구체적으로 객체를 어떻게 생성할 것인지 기술 (Factory Method Pattern)

Step3 : Factory Method Pattern

  • 하위 class에서 객체 생성 방법을 구체적으로 결정해 사용하는 Design Pattern

Template method pattern과 Factory Method Pattern

  • 상속 : 객체를 재사용한다는 측면에서 Good
  • 그러나 상속의 문제점(다중 상속 불가능)이 존재
    -> class를 분리해 만들어보자!

Step4 : Interface

Step5 : DI

결론!🌟🌟🌟

가능하면 class 간의 의존성을 낮추기 위해 interface 구현 방향으로 프로그램을 만들자!

0개의 댓글