본문 바로가기

분류 전체보기93

Template Method Pattern : 템플릿 메소드 패턴 상속받은 클래스에서 달라지는 부분을 자식에게 위임시킨다. 스트레티지 패턴이랑 비슷하며 알고리즘의 뼈대를 정의하고, 일부를 서브 클래스로 위임한다. 템플릿 메소드는 알고리즘의 구조를 변경하지 않고 알고리즘의 일부 내용을 서브 클래스에서 재정의 할 수 있도록 한다. 즉 알고리즘 과정의 일부를 정의하고 일부를 서브클래스로 위임하는 것이다. 틀의 일부를 타 사용자들이 고쳐쓸 수 있도록 하며 Framework 에서 많이 쓰는 패턴이다. 기존의 문제점은 알고리즘들을 캡슐화 시키면서 중복되는 코드가 여러 클래스에 존재한다는 것이었다. (같은 알고리즘 코드가 여러군데에 있을 때) 해결방안은 알고리즘의 중복되는 부분을 부모 클래스에 추상화 시키고 달라지는 부분만 서브 클래스에서 구현하는 것이다. 부모를 추상화 하고 , .. 2020. 11. 25.
04:Observer Pattern 1. 목적 객체간 1:다 의존 관계를 정의한다. 한 객체 상태가 변경 될 때, 그 객체와 의존 관계에 있는 모든 객체들이 자동으로 알림을 받고 상태를 갱신한다. 마치 ecampus 객체의 상태가 변경 되었을 때 cosmos 앱에서 자동 알림이 오는 것처럼. 옵저버 패턴은 일종의 푸쉬(push)서비스를 구현한다. (서버가 클라이언트에게 데이터를 주는 형태) 이벤트가 발생하면 프로그램에 이벤트 발생 정보를 전달하고, 처리하도록 하는 것(push)이 효율적이다. 푸쉬를 사용하는 절차는 1 푸쉬를 받고자 하는 사용자가 등록을 하고 2 특정 상황이 발생하면, 등록된 사용자에게 모두 알리고 자동으로 데이터가 갱신 된다. 발행자는 Subject(Publisher)라고 부르고 구독자는Observer(Subscriber.. 2020. 11. 11.
MySQL: primary key, foreign key 추가 및 삭제, constraint추가 방법. 1. key의 정의. pk는 DB 디자이너에 의해 선택 된 candidate key를 뜻한다. 그럼 candidate key는 뭘까? key는 하나의 tuple을 다른 tuple로부터 구별하는 방법이다. 예를 들어 학생의 학번이나 이메일 주소는 고유한 값이기 때문에 key라고 볼 수 있다. 그러나 학생의 이름은 중복값이 있을 수 있기 때문에 key라고 볼 수 없다. 그럴때 (학번, 학생의 이름) 이렇게 두개를 함께 key로 사용한다면 중복값이 있을 수 없으니까 key라고 볼 수 있다. 키 중에는 superkey, candidate key, primary key, foreign key가 있으며 하나씩 살펴보도록 하겠다. super key란 relaion 안에 고유한 값을 가진 유니크한 속성의 집합이다. 위.. 2020. 10. 16.
07.Singleton Pattern 1. 싱글턴 패턴의 목적 클래스가 한 개의 인스턴스만을 만들 수 있도록 하고, 다른 곳에서 그 생성된 한개의 인스턴스에 접근할 수 있도록 한다. 2. 고전적 싱글턴 패턴의 구현 방법 private 디폴트 생성자 구현 싱글턴 인스턴스를 저장하는 정적 멤버 변수(static 변수) 생성 싱글턴 인스턴스를 반환하는 정적 팩토리 메소드(static 메소드) 구현 (그러나 멀티 스레드를 사용하는 프로그램에서는 이게 문제가 될 수 있다.) 즉 A a = new A(); 같은 형식으로 객체를 생성하지 않게 할 것이라는 뜻이다. 여기서는 한개의 인스턴스만을 만드는 것이 목적이기 때문이다. 그러므로 private 디폴트 생성자를 막아둔다. 정적 메소드(static 메소드)에는 객체를 생성하지 않아도 사용할 수 있는 메소.. 2020. 10. 14.