객체지향
-
[클래스 / Class] 클래스(Class)의 기본Software/Implementation Pattern 2019. 6. 4. 00:52
"현실 세계에 존재하는 것은 클래스(Class)의 인스턴스(Instance)일 뿐이다" - 플라톤 - 객체 지향 프로그램은 위 플라톤이 말한 후기 서양 철학의 클래스와 인스턴스의 아이디어를 도입하였다. 여기서 클래스는 비슷한 성질을 가진 모든 것을 총칭하는 단어이고 객체는 이러한 클래스를 구체한 것이라 할 수 있다. 객체 지향 프로그램에서 클래스와 객체가 가지는 의미와 중요성은 매우 크며 실제 프로그램 구현 패턴에서도 클래스 관련 구현 패턴이 가장 많은 양을 차지하고 있다. 클래스의 사용 이유 객체 지향 프로그래밍에서 클래스를 사용하는 이유는 명확하다. 그건 바로 로직에 비해 데이터의 변화가 빈번하게 이루어 지기 때문이다. "클래스의 로직과 데이터는 함께 사용되며, 로직은 데이터에 비해 변화율이 낮다. ..
-
동적 프로그래밍 (Dynamic Programming)Software/Algorithm : 알고리즘 2018. 9. 17. 23:50
사용 조건 작은 문제의 최적 솔루션이 그 보다 더 큰 문제의 최적 솔루션에 포함되는 경우 재귀적인 방법으로 구현 시 중복 호출로 인한 큰 비용/비효율이 발생하는 경우 피보나치 수열 피보나치 수열은 동적 프로그래밍의 사용 동기와 조건, 구현을 가장 쉽고 명료하게 확인할 수 있는 예제. fn = fn-1 + fn-2 (n >= 3) f1 = f2 = 1 (n = 1, 2) 재귀호출 방식 의사 코드 (Pseudo-code) Fibonacci(n) { if (n = 1 or n = 2) then return 1; else return Fibonacci(n - 1) + Fibonacci(n - 2); } 구현 (Implement) // Not to use dynamic programming.. int fibona..
-
시퀀스 다이어그램 [Sequence Diagram]Software/UML 2018. 9. 10. 23:04
Sequence Diagram 이란? 문제 해결을 위한 객체를 정의하고 객체간의 상호작용 메시지 시퀀스를 시간의 흐름에 따라 나타내는 다이어그램(Diagram) 구성 요소 - 활성 객체 시스템의 행위자 혹은 시스템 내의 유효한 객체 라이프라인(Life line)을 가진다. 라이프라인 라이프라인은 상호작용에 참여하는 오브젝트를 의미 그림 1. Object와 Life line - 메시지 (Message) 서로 다른 객체간의 상호작용 혹은 의사소통 통신을 정의하는 요소. 하나의 객체 라이프라인으로 부터 다른 객체 라이프라인까지 선+화살표로 표시되며 메시지는 그 선의 위에 표시 그림 2. 메시지 (Message) 메시지 유형 유형의미동기 메시지(Synchronous message)메시지 전송 객체가 계속하기 전..
-
Use Case DiagramSoftware/UML 2018. 7. 10. 01:05
Actor (행위자) Actor란 시스템 외부에서 시스템과 상호작용하는 개체를 일컫는다. 이 시스템을 사용하는 사용자가 될 수도 있고 시스템과 상호작용하는 기계 혹은 소프트웨어가 될 수도 있다. Actor를 표시하는 형태로는 보통 Stick Man과 Decoration View이 있다. Decoration View는 사각형 틀안에 오른쪽 상단 아이콘이 포함된다. Use Case (쓰임새) Use Case는 시스템의 행위(behavior)를 정의하기 위해 사용하는 요소이다. 일반적으로 Actor와 상호작용하는 행동 혹은 행위로서 사용된다. Use Case는 Texture, Iconic 그리고 Decoration View 형태로 표현할 수 있다. Association / Directed Association..