전체 글(600)
-
6. 싱글턴 패턴(Singleton Pattern)
6.1 싱글턴 패턴(Singleton Pattern) 싱글턴 패턴은 인스턴스가 오직 하나만 생성되는 것을 보장하고 어디에서든 이 인스턴스에 접근할 수 있도록 하는 디자인 패턴이다. 싱글턴 패턴 컬레보레이션 Singleton : 하나의 인스턴스만을 생성하는 책임이 존재하며 getInstance 메서드를 통해 모든 클라이언트에게 동일한 인스턴스를 반환하는 작업을 수행한다. 싱글턴 패턴의 순차 다이어그램 클라이언트가 싱글턴 클래스에 getInstance 메서드를 통해 객체 생성을 요청하면 이미 객체가 생성된 경우에는 객체를 반환하고, 처음으로 생성하는 경우에는 생성자를 호출해 객체를 생성한다. 6.2 프린터 관리자 만들기 10명의 직원들이 프린터 하나만 공유해서 사용해야 하는 실정이다. 프린터를 관리하는 프로..
2021.05.27 -
5. 전략 패턴(Strategy Pattern)
5.1 전략 패턴 전략 패턴(Strategy Pattern)이란 전략을 쉽게 바꿀 수 있도록 해주는 디자인 패턴이다. 전략이란 어떤 목적을 달성하기 위해 일을 수행하는 방식, 비즈니스 규칙, 문제를 해결하는 알고리즘 등으로 이해할 수 있다. 프로그램에서 전략을 실행할 때는 쉽게 전략을 바꿔야 할 필요가 있는 경우가 많이 발생한다. 특히 게임 프로그래밍에서 게임 캐릭터가 자신이 처한 상황에 따라 공격이나 행동하는 방식을 바꾸고 싶을 때 스트래티지 패턴은 매우 유용하다. 스트래티지 패턴은 같은 문제를 해결하는 여러 알고리즘(방식)이 클래스별로 캡슐화되어 있고 이들이 필요할 때 교체할 수 있도록 함으로써 동일한 문제를 다른 알고리즘으로 해결할 수 있게 하는 디자인 패턴이다. 스트래티지 패턴 컬레보레이션 스트래..
2021.05.26 -
4. 디자인패턴
4.1 디자인 패턴의 이해 4.1.1 디자인 패턴의 정의 디자인 패턴이란 소프트웨어를 설계시 특정 맥락에서 자주 발생하는 고질적인 문제들이 재발생할 시 재사용할 수 있는 해결책이다. 4.1.2 패턴의 정의 패턴은 비슷하거나 동일한 양식 또는 유형들이 반복되어 나타난다는 의미이다. 문제와 해결책도 동일한 유형이나 양식을 통해 쉽게 탐색 가능. 4.1.3 디자인 패턴 구조 컨텍스트(Context) : 문제가 발생하는 여러 상황을 기술한다. 즉, 패턴이 적용될 수 있는 상황을 나타낸다. 경우에 따라서는 패턴이 유용하지 못한 상황을 나타내기도 한다. 문제(Problem) : 패턴이 적용되어 해결할 필요가 있는 여러 디자인 이슈들을 기술한다. 이때 여러 제약 사항과 영향력도 문제 해결을 위해 고려한다. 해결(So..
2021.05.24 -
3. Solid 원칙
3. Solide 원칙 단일 책임 원칙(SRP, Single Responsibility Principle) 개방-폐쇄 원칙(OCP, Open-Closed Principle) 리스코프 치환 원칙(LSP, Liskov Substituion Principle) 의존 역전 원칙(DIP, Dependency Inversion Principle) 인터페이스 분리 원칙(ISP, Interface Segregation Principle) 3.1 단일 책임 원칙 3.1.1 책임의 의미 단일 책임 원칙(SRP, Single Responsibility Principle)이란? 단일 책임 원칙이란 하나의 객체는 단 하나의 책임만을 가져야 한다는 의미 책임의 기본 단위는 무엇인가? 단일 책임 원칙에서 말하는 책임의 기본 단위는..
2021.05.14 -
1. 객체 지향 모델링
1.1 모델링이란? 모델링이란 소프트웨어 시스템의 구조와 행위를 명세하는 것을 의미한다. 1.2 UML(Unified Modeling Language) UML은 표준화된 통합 모델링 언어이다. 요구 분석, 시스템 설계, 시스템 구현 등 시스템 개발 과정에서 개발자 사이의 의사 소통이 원할하게 이루어지도록 하는 언어이다. 1.3 클래스 다이어그램 UML의 정적 구조 다이어그램 클래스와 클래스들끼리의 관계를 표현 주요 구성 요소 클래스 : 속성과 기능으로 구성된 객체의 집합 관계 : 2개 이상의 클래스들간에 기능을 호출하는 것 1.3.2 관계의 종류 관계 설명 연관 관계(Association) 한 클래스가 다른 클래스에서 제공하는 기능을 사용하는 상황에서 사용됨 일반화 관계(Generalization) 객체..
2021.05.11 -
2. 객체지향원리
2. 객체 지향 원리 객체 지향 원리는 추상화, 캡슐화, 일반화, 다형성으로 구성되어 있다. 2.1 추상화 추상화란? 어떤 영역에서 필요로 하는 속성이나 행동(기능)을 추출하는 작업을 의미 사물들의 공통된 특징을 추출해서 집합화를 수행 예를 들어 자동차에는 아우디, 벤츠, 현대와 같은 사물들이 존재하고 이 사물들의 공통점은 모두 자동차이다. 따라서 아우디, 벤츠, 현대와 같은 사물들은 자동차라는 집합으로 추상화가 가능하다. 추상화의 필요성 자동차 종류마다 엔진 오일을 교환하는 방식이 다르다고 가정한다. switch(자동차종류) case 아우디: // 아우디 엔진 오일을 교환하는 과정 case 벤츠: // 벤츠 엔진 오일을 교환하는 과정 위와 같은 상태에서 BMW 자동차 엔진 오일을 교환하는 기능을 추가하..
2021.05.11