Programming 5

Singleton Pattern

Singleton Pattern OOP에서 객체는 Class와 Instance를 포함한 개념 Instance란?객체(Object)를 생성하여 Heap 메모리 영역에 할당된 실체(Stack된 것)를 의미하는 개념. Singleton이란?하나의 프로그램 내에서 인스턴스가 사용될 때, 이전에 생성된 인스턴스가 있을 경우 동일한 인스턴스를 생성하는 것이 아닌, 기존에 생성되어 있던 인스턴스를 가져와 사용하는 것을 기본 전략으로 내세운 디자인 패턴이다.프로그램 상에서 동일한 커넥션 객체를 만든다든지, 하나만 사용되어야 하는 객체를 만들때 유용하다. Singleton 패턴을 사용하는 이유는?지정한 클래스 인스턴스가 한개 밖에 존재하지 않는 것을 유지하고 싶을 경우new 키워드를 통해 객체를 생성하게 되면, 생성되는..

Programming 2017.12.07

객체지향 프로그래밍의 3요소 5원칙!

객체지향의 3요소 5원칙 3요소캡슐화, 다형성, 상속 Encapsulation 캡슐화 - 프로그램 내에서 같은 기능을 목적으로 작성된 코드를 모아서 다른 곳(클래스)에서 안보이게 숨기는 것.클래스에 정의된 속성(Attribute)는 숨기고(Private), 객체가 수행할 기능(Function)은 공개(Public)하는 것을 의미한다. Inheritance 상속 - 클래스 사이에 부모와 자식 클래스가 존재할 수 있다는 뜻.자식 클래스는 상속받은 부모 클래스의 속성(변수) 및 기능(메소드, 함수)를 물려받는 것을 의미한다. Polymorphism 다형성 Overriding과 Overloading 두가지로 나뉨.Overriding부모클래스에서 정의되어 있는 내용을 자식클래스에서 재정의하여 사용하는 것.Over..

Programming 2017.12.07

MVP Pattern 이란?!

MVP 패턴 !! MVP 패턴이란? 1990년대 초기 MS사에서 공개한, MVC 기반의 GUI를 처리하기 위한 패턴 MVC 패턴에 비해 Model과 View 간의 결합도를 낮추는데 초점을 맞춤. View, Model, Presenter로 나뉨 장점 : MVC 패턴에 비해 클래스별 코드가 짧아짐. 코드를 나눔으로써 TDD가 수월해짐 View와 Model 간의 구분 가능 Presenter의 역할을 통해 View와 Model 간의 결합도를 낮출 수 있음 결합도가 낮아짐에 따라 새로운 기능 추가 또는 변경 등, 유지보수 및 확장성이 좋아짐. View와 Model의 사용법이 분리되면서 Clean Code가 가능하다. Presenter의 역할을 통해 Model과 View 간의 결합도를 낮출 수 클래스의 역할에 따라..

Programming 2017.12.07

Dependency (의존성) 이란??

Dependency !! MVP Pattern을 알기 전에 Dependency(의존성)에 대해서 한번 알아보고 가자 Dependency란?코드에서 두 모듈 간의 연결.객체지향언어에서는 두 클래스 간의 관계라고도 말함.일반적으로 둘 중 하나가 다른 하나를 어떤 용도를 위해 사용함. Dependency가 위험한 이유하나의 모듈이 바뀌면 의존한 다른 모듈까지 변경이 이루어지기 때문.테스트 가능한 어플을 만들 때 의존성이 있으면 유닛테스트 작성이 어려움.유닛테스트의 목적 자체가 다른 모듈로부터 독립적으로 테스트하는 것을 요구하기 때문.(Mock 객체로 대체가능) Dependency Injection(의존성 주입)이 필요한 이유위 Dependency가 위험한 이유를 해결하기 위해서 사용.‘new’를 사용해 모듈 ..

Programming 2017.12.07

Linked List

링크드리스트 데이터의 순서가 순서대로 되어있지 않음.1번 뒤에 2번이 있다는 보장이 없음노드(링크)에 의해 논리적으로 연결되어 있음.임의 접근이 불가능함현재의 노드가 알 수 있는 건 바로 내 다음의 노드의 존재만이기때문데이터 삽입의 강점이 있음물리적인 메모리 이동업싱 요소간의 링크만 조작하면 되므로 속도에 유리.데이터 생성 -> 각 노드의 연결 후 이전 노드 삭제데이터 삭제도 삽입과 같은 방식으로 진행삭제할 노드 앞뒤를 먼저 연결한 후, 삭제할 데이터의 노드를 삭제 후 데이터삭제메모리의 낭비가 없음추가 삭제 시 바로 메모리 할당을 하기 떄문.한 노드에 여러개의 변수 또는 데이터값을 포함할 수 있다.다음 노드가 NULL을 가리킬 경우, 연결 리스트의 끝이라는 뜻.Single LinkedList와 Doubl..

Programming 2017.12.07