본문 바로가기

전체 글26

[디자인 패턴] 싱글턴(Singleton) 패턴 Goal 싱글턴(Singleton) 패턴을 이해한다. 싱글턴(Singleton) 패턴 싱글턴(Singleton) 패턴은 인스턴스가 오직 하나만 생성되는 것을 보장하고 어디에서는 인스턴스에 접근할 수 있도록 하는 디자인 패턴 ※싱글턴은 하나의 원소만을 가지는 집합을 의미 Singleton : 하나의 인스턴스만을 생성하는 책임이 있으며 getInstance() 메서드를 통해 모든 클라이언트에게 동일한 인스턴스를 반환하는 작업을 수행 싱글톤 클래스는 생성자를 Private으로 함으로써 외부에서 객체를 생성할 수 없도록 하고 instance를 전역(Static)으로 구현한다. 외부에서는 GetInstance() 함수를 사용하여 접근할 수 있도록 한다. ▷싱글턴 패턴 장점 고정된 메모리영역을 얻으면서 한 번의 n.. 2021. 5. 13.
SOLID 원칙 (1) SOLD 원칙 Goal 단일 책임 원칙에 대해서 이해할 수 있다. 개방-폐쇄 원칙에 대해서 이해할 수 있다 1. 단일 책임 원칙 소프트웨어 설계 첫 번째 원칙으로 SRP(Single Responsibility Principle)라는 단일 책임 원칙이 있다. 문자 그래도 단 하나의 책임을 가지는 것이다. SRP에서 기본 단위는 객체를 지칭한다. 즉, 개체는 하나의 책임을 가져야 한다는 의미이다. "책임"이란 여러 관점에서 해석될 수 있지만 보통 '해야 하는 것'과 '할 수 있는 것'으로 간주할 수 있다. 예를 들어 학생(Student) 클래스에는 수강과목 조회, 추가를 하거나 학생 정보를 저장, 출력을 하거나 학생 성적표, 출석표를 출력할 수 있는 기능이 있다. 현재 Student 클래스는 단일 책임 원칙.. 2021. 5. 11.
객체지향의 원리 - 캡슐화 객체지향의 원리 Goal 캡슐화에 대해서 이해할 수 있다 캡슐화란? "객체의 속성(data fields)과 행위(메서드)를 하나로 묶고 실제 구현 내용 일부를 외부에 감추어 은닉한다." 객체의 속성과 행위를 하나로 묶는다는 것은 클래스의 개념과 비슷하지만 구현 내용의 일부를 외부에 감추어 은닉한다는 것은 캡슐화의 핵심이다. 따라서 객체에 접근하기 위해서는 객체가 정해놓은 메서드나 필드를 통해서만 접근이 가능하다. 소프트웨어 공학에서 요구사항 변경에 대처하는 고전적인 설계 방식으로는 응집도(cohesion)와 결합도(coupling)가 있다. 응집도 : 클래스나 모듈 안의 요소들이 얼마나 밀접하게 관련되어 있는지를 나타냄 결합도 : 어떤 기능을 수행할 때 다른 클래스나 모듈들에 얼마나 의존적인지를 나타냄 .. 2021. 5. 7.
객체지향의 원리 - 추상화 객체지향의 원리 Goal 추상화에 대해서 이해할 수 있다. 1. 추상화란? "추상화는 사물들의 공통된 특징, 즉 추상적 특징을 파악해 인식의 대상으로 삼는 행위다. 추상화가 가능한 개채들은 개체가 소유한 특성의 이름으로 하나의 집합을 이룬다. 그러므로 추상화한다는 것은 여러 개채들을 집합으로 파악한다는 것과 같다. 추상적 특성은 집합을 구성하는 개채들을 '일반화' 하는 것이므로 집합의 요소들에 보편적인 것이다." 커다란 운동장에 여러가지 다양한 수많은 자동차가 주차되어 있다고 가정하자. 이 자동차들을 그룹화할 때 추상화를 사용할 수 있다. 어떤 사람이 차의 배기량에 따라 차량을 구분하면 경차, 중형차, 대형차 등으로 구분할 수 있다. 따라서 구체적인 사물(자동차)들의 공통적인 특성(배기량)을 파악해서 이.. 2021. 5. 3.