DAO
- DB를 사용해 데이터를 조회하거나 조작하는 기능을 전담하도록 만든 오브젝트
자바 빈(JavaBean)
간단히 빈이라고 부르기도 한다.
- 디폴트 생성자: 자바빈은 파라미터가 없는 디폴트 생성자를 가지고 있어야한다. 툴이나 프레임워크에서 리플렉션을 이용해 오브젝트를 생성하기 때문에 필요하다.
- 프로퍼티: 자바빈이 노출하는 이름을 가진 속성을 프로퍼티라고 한다. setter, getter를 통해 수정 또는 조회 할 수 있어야 한다.
관심사의 분리 (Separation of Concerns)
관심이 같은 것끼리는 하나의 객체 안으로 또는 친한 객체로 모이게 하고 관심이 다른 것은 가능한 한 따로 떨어져서 서로 영향을 주지 않도록 분리하는 것
템플릿 메서드 패턴 (Template Method Pattern)
- 슈퍼클래스에 기본적인 로직의 흐름 (커넥션 가져오기, SQL 생성, 실행, 반환)을 만들고, 그 기능의 일부를 추상 메서드나 오버라이딩 가능한 protected 메서드 등으로 만든 뒤 서브클래스에서 이런 메서드를 필요에 맞게 구현해서 사용하도록 하는 방법
팩토리 메서드 패턴 (Factory Method Pattern)
- 템플릿 메서드 패턴과 마찬가지로 상속을 통해 기능을 확장하게 하는 패턴. 그래서 구조도 비슷하다.
- 서브 클래스에서 구체적인 오브젝트 생성 방법을 결정하게 하는 것. → 슈퍼 클래스 코드에서 호출해 사용
- 보통 인터페이스 타입으로 오브젝트를 리턴하기 때문에 정확히 어떤 클래스를 만들어 리턴할지는 알지 못한다. 관심도 없다.
- 팩토리 메서드 : 서브클래스에서 오브젝트 생성 방법과 클래스를 결정할 수 있도록 미리 정의해둔 메서드. → 오브젝트 생성 방법을 나머지 로직, 즉 슈퍼클래스의 기본 코드에서 독립시키는 방법을 팩토리 메서드 패턴이라고 한다.
- 팩토리 메서드와 팩토리 메서드 패턴의 메서드는 의미가 다르다. 혼동하지 않도록 주의해야 한다.
- 객체 생성 방법을 결정하고 그렇게 만들어진 오브젝트를 돌려주는 것 ⇒ 이 객체를 팩토리라한다
- 단지 오브젝트를 생성하는 쪽과 사용하는 쪽의 역할과 책임을 분리하려는 목적으로 사용하는 것.