CS/디자인 패턴 3

[디자인 패턴] 전략(Strategy) 패턴이란?

전략 패턴(strategy pattern) 또는 정책 패턴(policy pattern)은 실행 중에 알고리즘을 선택할 수 있게 하는 소프트웨어 디자인 패턴이다. 전략패턴은 다음과 같은 이점이 있다. 비슷한 동작을 하지만 다르게 구현되어 있는 행위(전략)들을 공통의 인터페이스를 구현하는 각각의 클래스로 구현하고, 동적으로 바꿀 수 있게 함 직접 행위에 대한 코드를 수정할 필요 없이 전략만 변경하여 유연하게 확장 1. 공통의 기능을 명시한 인터페이스를 생성한다. 2. 기능에 맞게 1번의 구현 클래스들을 생성한다. 3. Context 클래스 생성 및 인터페이스를 저장하는 메소드와 인터페이스의 메소드를 실행하는 메소드를 생성한다. 위의 UML을 보고 간단한 결제 시스템 예제를 통해 코드를 이해해보자. inter..

CS/디자인 패턴 2023.11.28

[디자인 패턴] 싱글턴 패턴이란?

싱글턴 패턴이란 객체의 인스턴스가 오직 1개만 생성되도록 제한하는 패턴이다. 싱글턴의 장점은 다음과 같다. 하나의 객체만 생성되며 추후 해당 객체에 접근할 때 불필요한 메모리 낭비를 방지 할 수 있다. 전역으로 공유하기 때문에 다른 클래스의 인스턴스들이 데이터를 공유하기 쉽다는 장점이 있다. DBCP, 스레드풀, 캐시, 로그 기록 객체 등에 이용된다. 여기서 DBCP란 DataBase Connection Pool을 의미한다. Connection Pool이란 DB Connection 객체를 여러개 생성 한 후 Pool에 담아놓고 필요할 경우 불러와서 사용하기 위한 것이다. DB에서 데이터를 가져올 경우 먼저 드라이버를 로드하고 커넥션 객체를 받아오는 일련의 과정이 필요하지만 사전에 만들어 놓는다면 커넥션 ..

CS/디자인 패턴 2023.11.27

[디자인 패턴] 디자인 패턴이란?

디자인 패턴이란 소프트웨어 개발시 자주 나타나는 구조나 방식, 패턴을 구체적이고 체계적으로 나누어 정리한 것이다. 다음은 디자인 패턴을 잘 사용하면 해결 할 수 있는 내용들이다. 코드의 응집성 Up 어떠한 로직 부분을 변경하고자 할 때, 코드가 산재되어있어서 그 부분들을 일일이 변경시켜줘야 하지만 디자인 패턴을 이용한다면 최소한의 코드 변경으로 변경 할 수 있다. 코드의 결합성 Down 코드 한 부분을 변화시키면, 다른 부분까지 변화시켜야 하는 것이 아니고 각각 맡은 부분이 깔끔하게 분리되어 있어서 서로간에 쉽게 변경이 가능하고 대체 가능한 것을 뜻한다. 코드의 재활용성 up 한번 작성한 로직을 다시 작성하지 않도록 미리 정해놓은 패턴에 따라 구성해 놓는 것을 뜻한다. 코드의 효율성 Up 이미 다듬어진 ..

CS/디자인 패턴 2023.11.27