본문 바로가기

컴퓨터과학54

[디자인패턴] 퍼사드 패턴 (Facade Pattern) 목적 서브 시스템을 쉽게 사용할 수 있도록 해주는 고급 수준의 인터페이스를 정의 요소 문제 : 서브시스템이 너무 많고 사용하기가 복잡함 해결 : 단순한 인터페이스를 제공하는 객체를 중간에 넣음 결과 : 최소 지식 원칙에 입각해 의존성 최소화 정의 다음과 같은 watchMovie 메소드를 갖는 Facade 클래스를 만들어서 사용한다. Facade 클래스는 여러 인터페이스를 가져다 씀. 영화를 보기위해 여러 인터페이스를 조작해야하지만, Facade 클래스로 watchMovie 메소드만 실행하여 단순화 할 수 있음. public void watchMovie(String movie) { System.out.println("Get ready to watch a movie..."); popper.on(); popp.. 2021. 12. 5.
[디자인패턴] 어댑터 패턴 (Adapter Pattern) 목적 클래스의 인터페이스를 클라이언트가 원하는 형태의 인터페이스로 변환 인터페이스 호환이 안되는 클래스를 사용할 수 있게 해줌 요소 문제 : 사용 객체의 API가 서로 다름 해결 : 함수를 변환하는 객체를 중간에 넣음 결과 : 변경 최소화 정의 어댑터를 통해 오리 대신 칠면조 사용하기 어댑터 클래스 (Turkey 인터페이스를 Duck 인터페이스로 사용할 수 있도록 만듬) public class TurkeyAdapter implements Duck { Turkey turkey; public TurkeyAdapter(Turkey turkey) { this.turkey = turkey; } public void quack() { turkey.gobble(); } public void fly() { turkey.. 2021. 12. 5.
[데이터베이스] Data Analytics with SQL - DW, OLAP Data Analytics with SQL Overview Data analytics 예측을 위해 패턴, 관계, 모델 등을 추론하는 데이터 처리 주로 비즈니스적 결정에 사용됨 Common steps in data analytics 여러 소스로부터의 데이터를 한 곳에 모은다 데이터를 요약한 집합과 보고서를 생성한다 OLAP(Online analytical processing system)이 interactive qeury를 가능하게 함 예측 모델을 만든다 Data Warehousing Data warehouse (DW) 의사결정을 위해 다양한 데이터베이스들을 수집한 후 하나의 통일된 형식으로 저장한 데이터베이스들 관계형 DB를 근간으로 많은 데이터를 다차원 분석하여 의사결정에 도움을 주는 시스템 데이터 소.. 2021. 12. 5.
[디자인패턴] DAO 패턴 목적 업무와 DBMS를 분리하기 위해 사용 요소 문제 : DB를 사용하는 방법이 변경되면 클라이언트의 수정이 많아짐 해결 : 사용 방법의 분리 결과 : loose coupling, 확장성 정의 Dao : 모델에 대한 기본적인 CRUD 인터페이스 Value Object (Model Object) : Dao를 사용하여 데이터를 저장하는 단순 POJO(실제 데이터를 담는 자바 클래스) -> Dao 가 DBMS서 받은 데이터를 넘겨줄 때는 VO에 담아서 넘겨줌. DaoImpl에서 findById 메소드를 구현한 코드. public Person findById(int id) { Person person = null; try { String fmt = "SELECT * FROM %s WHERE id = %d"; S.. 2021. 12. 4.