카테고리 없음

소개론 - 객체지향분석01

신지아 2025. 12. 13. 18:27

객체지향: 특정 기능을 수행하기 위한 데이터와, 데이터를 사용하는 연산을 하나로 묶어서 객체로 표현하는 접근 방법

특징

클래스와 오브젝트

클래스(붕어빵 틀, 템플릿): 실세계의 사물을 정의하기 위한 틀을 제공함. 공통 속성을 공유하는 객체의 집합. - 클래스로부터 생성되는 인스턴스가 객체(오브젝트)임.

객체(붕어빵, 메모리에 올라가는 것 그 자체): 상태, 동작, 고유 식별자를 가진 모든 실체 - 클래스 하나에서 여러개가 생성될 수 있으며, 실제로 연산에 사용됨

 

캡슐화와 정보 은닉

- 클래스는 속성과 연산을 하나의 단위로 모아서 정의 및 포장됨

이렇게 포장하는 것을 캡슐화라고 함 (즉, 껍질을 씌움)

캡슐화로 인해 클래스의 속성과 연산이 감춰짐

꼭 필요한 최소한의 정보만 외부에 공개(선언)됨

 

 

상속

일반화된 클래스가 갖는 속성과 연산을 하위 개념의 구체화된 클래스가 그대로 물려받는 것

- 구체화된 클래스들의 공통 속성과 공통 연산을 뽑아내서 추상 클래스로 선언함

 

다형성

같은 이름의 메시지를 다른 객체 또는 서브 클래스에 호출할 수 있는 특징

- 클래스에 정의된 요소들은 실제 클래스의 오브젝트가 사용되는 시점에서 행위를 결정함

- 동일한 속성과 어떤 연산이 클래스에 중복적으로 정의될 수 있음

- 어떤 시점에서 어떤 객체에 사용되는가에 따라 서로 다른 행위를 가짐

ex. 같은 getArea() 이름이지만 각각 내부에 구현된 내용은 다름 p. 9

 


구조 모델링

 

정적 모델: 객체들의 공통 구조와 동작들을 추상화시킨 것

객체지향 기본 개념의 이해가 필요함 - 객체와 속성, 연관, 집합, 상속, 다형성 등

클래스 다이어그램이 대표적임 - 클래스 및 클래스 사이의 관계를 표현 / 도메인 개념과 속성

 

개발 대상 소프트웨어가 어떤 구조적 요소들로 이루어질 수 있는지 분석함

업무 수행 과정에서 생성되고, 사용되어야 할 객체에 어떤 것들이 있는지 식별하여 그들 간 관계를 정의함

설계 단계에서는

- 분석 과정의 구조 모델에서 정의된 객체들이 어떻게 생성, 저장, 처리되는지, 그리고 파일과 DB로 어떻게 반영돼야 하는지를 나타냄

- 비즈니스에서 사용되는 용어들을 이용해 객체들을 정의함으로써, 실세계와 소프트웨어의 의미적 차이를 줄임

 

클래스 다이어그램

- 문제나 해결책의 정적인 구조를 보여 주는 다이어그램

- 시스템을 구성하는 클래스들과 그들 간의 관계를 보임 p. 13

 - 연관: 서비스를 제공하는 객체와, 서비스를 요청하는 객체가 상호작용하는 관계

- 가시성: 객체의 접근 가능성

- 클래스 심봉: 클래스의 이름, 클래스 속성, 오퍼레이션 이렇게 세 부분으로 나눔. 추상 클래스에는 이탤릭체, 인터페이스 클래스에는 <<interface>> 추가

- 속성: 객체가 가지는 모든 필드를 포함함

- 오퍼레이션/메소드: 아주 흔한 메소드 get/set은 생략함

- 모델링이 진행되면서 상세화됨 (함수의 이름만 표현함 - 외부에 보이는 것/ 보이지 않는 것)