< JDBC를 이용하는 작업의 일반적인 순서 >


1. DB연결을 위한 Connection을 가져온다

2. SQL을 담은 Statement or PreparedStatement를 만든다.

3. 만들어진 Statement 실행한다.

4. 조회의 경우 SQL쿼리의 실행 결과를 ResultSet으로 받아서 정보를 저장할 오브젝트에 옮겨준다.

5. 작업중에 생선된 Connection, Statement, ResultSet 같은 리소스를 닫는다.

6. JDBC API가 만들어내는 예외를 잡아서 직접 처리하거나, 메소드에 throws를 선언해서 메소드 밖으로 던진다.




DAO분리


< 관심사의 분리> 

- 관심이 같은 것끼리는 하나의 객체 안으로 또는 친한 객체로 모이게 하고 , 

관심이 다른 것은 가능한 따로 떨어져서 서로 영향을 주지 않도록 분리 하는 것




< 리펙토링 > 

- 기존의 코드를 외부의 동작방식에는 변화 없이 내부 구조를 변경해서 재구성하는 작업 (기술)




< 템플릿 메서드 패턴 >

- 기본적인 로직의 흐름을 만들고, 그 기능의 일부를 추상 메서드나 오버라이딩이 가능한 protected 메서드 등으로 만든 뒤 

서브클래스에서 이런 메서드를 필요에 맞게 구현해서 사용하도록 하는 방법

- 상속을 통해 슈퍼클래스의 기능을 확정할 때 사용하는 가장 대표적인 방법


ex) UserDAO를 N사, D사에게 줄때 각각의 독립적인 connection이 필요할때 

UserDAO는 추상클래스, Connection 메서드는 추상메서드



< 디자인 패턴 > 

- 소프트웨어 설계시 특정 상황에서 자주 만나는 문제를 해결하기 위해 사용할 수 있는 재사용 가능한 솔루션





DAO 확장

......... 클래스를 분리하고 인터페이스를 도입하여

UerDao 와 Connection 클래스를 분리하고, 서로 영향을 주지 않으면서도 필요에 따라 자유롭게 확장할 수 있는 구조로 만들..





< OCP ( Open-Closed Principle)  : 개방 폐쇄 원칙 > 

- 클래스나 모듈은 확장에는 열려있어야 하고 변경에는 닫혀 있어야 한다. 



<SOLID 객체지향 설계 원칙 >

- S : SRP ( The Single Responsibility Principle ) : 단일책임원칙

- O : OCP ( The Open Closed Principle ) : 개방 폐쇄원칙

- L : LSP ( The Liskov Substitution Principle ) : 리스코프 치환 원칙

- I : ISP ( The Interface Segregation Principle ) : 인터페이스 분리 원칙

- D : DIP * 쏟 Dependency Inversion Principle ) : 의존관계 역전 원칙


<높은 응집도와 낮은 결합도 > 

- 높은 응집도 : 하나의 모듈, 클래스가 하나의 책임 또는 관심사에만 집중되어 있다는 뜻

- 낮은 결합도 : 책임과 관심사가 다른 오브젝트 또는 모듈과는 낮은 결합도, 즉 느슨하게 연결된 형태를 유지하는 것

느슨한 연결은 과계를 유지하는 데 꼭 필요한 최소한의 방법만 간접적인 형태로 제공하고, 나머지는 서로 독립적이로 알 필요도 없게 만들어 주는것 



< 전략 패턴 > 

- 디자인패턴의 꽃 

- 자신의 기능맥락에서 필요에 따라 변경이 필요한 알고리즘(독립적인 책임으로 분리가 가능한 기능)을 인터페이스를 통해 통째로 외부로 분리시키고

이를 구현한 구체적인 알고리즘 클래스를 필요에 따라 바꿔서 사용할 수 있게 하는 디자인 패턴




' > 토비 스프링 2020' 카테고리의 다른 글

[2017] 5. 서비스추상화  (0) 2017.12.29
[2017] 스프링개념  (0) 2017.12.28
[2017] 4. 예외  (0) 2017.12.21
[2017] 3. 템플릿  (0) 2017.12.15
[2017] 1. 오브젝트와 의존관계 (2)  (0) 2017.11.29

+ Recent posts