일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 메카님
- frequency-domain spectrum analysis
- Trap
- 게임개발
- 게임 개발
- information hiding
- 운영체제
- 컴퓨터 네트워크
- FIFO
- link layer
- 유스케이스
- SDLC
- protection
- OWASP
- OSI 7계층
- DP
- Unity #Indie Game
- AINCAA
- 배경 그림
- Waterfall
- MAC
- polymorphism
- unity
- DSP
- STCF
- MLFQ
- 유니티
- SJF
- stride
- Security
- Today
- Total
다양한 기록
OOP #1 : 등장, 객체란? 본문
Observations
- 1970's .. 구조적 프로그래밍
- 1980's .. 구조적 프로그래밍 -> 객체지향 프로그래밍 전환
- 1990's .. 완전한 객체지향 프로그래밍
- 2000's .. WWW와 EC를 위한 객체 기술
- 현재 .. CBD (Component Based Development)와 소프트웨어 공장
역사
Root: SIMULA (1966)
- 클래스의 개념 제시
SMALLTALK (1970 ~ 1980)
- 클래스 라이브러리 등장
AI Community (1980's)
Programming Language Community (1980's)
- Abstract Data Type, Encapsulation
- Alphard, CLU, ADA
객체 지향의 개념
객체 지향 기술
- 소프트웨어를 개발하고 패키지화하는 방법으로, 실세계 객체들이 서로 관계를 맞는 방식과 공통된 경험에 크게 의존하는 방식
객체지향 시스템
- 객체지향 기술을 지원하는 모든 프로그래밍 언어, 도구 및 방법론을 의미
객체지향 기본 원칙
1. 추상화
2. 캡슐화
3. 모듈화
4. 계층화
추상화
- 어떤 사물에 대하여 내부의 세세한 것은 숨기고 외부에는 중요한 특징만 공개
캡슐화
- 관련있는 것끼리 묶음
- 데이터 + 데이터와 연관된 함수
계층화
- 상속 구조
함수지향 vs. 객체지향
함수지향
- 절차형
- 순차형
절차형 프로그래밍
- 구조적 프로그램: 함수를 모듈 기본으로
- Data Structures + Functions = Program
- 데이터와 함수가 독립적인 것처럼 다뤄지지만 사실 아님
객체지향 프로그래밍
- Data Structures + Functions = Object
- Objects + Objects = Program
- 객체를 모듈의 기본 단위로 구성
객체 지향의 주요 개념
- Obejct
- Class
- Encapsulation
- Information Hiding
- Inheritance
- Polymorphism
Object란?
정의
1. 현실 세계의 어떤 실체를 나타냄
2. 데이터와 해당 데이터에 작용하는 연산을 포함하는 모듈
- 데이터는 객체의 상태를 제공하고, 연산은 객체의 동작을 제공
Object 특징
- 상태와 값을 가짐
- 행동의 셋을 가짐
- 유니크한 아이덴티티를 가짐
Object Examples
- 물리적 엔티티 : 트럭
- 개념적 엔티티 : 화학 과정
- 소프트웨어 엔티티 : 스택, 큐
Objects
객체의 상태(State)
- 객체의 특성(Property)를 나타내며, variable로 표현되며 값을 가질 수 있다.
- 상태의 특성은 변하지 않으나 그 값은 변한다
- State, Property, Variable, Data, Member
객체의 행위(Behavior)
- 상태의 값을 변경시킬 수 있는 행위
- 여러 개의 method로 표현된다
- Behavior, Action, Operation, Function, Method
- Member function, 연산자
객체와 클래스
객체와 클래스 간의 관계
객체->클래스 : 추상화
클래스 -> 객체 : 구체화(인스턴스화)
- 객체는 클래스의 인스턴스 (instantiate), 클래스의 복사물임
- 객체 간의 상호작용 : 메시지
Composite/Complex Obejct
- 다른 객체들을 가지는 객체
Finding Obejcts
- 개발할 문제 영역에서 어떻게 객체를 추출?
=> 명사를 추출... 명사가 객체의 후보. 그 중 더 이상 쪼갤 수 없는 건 속성이 되고, 동사는 행동이 됨
'소프트웨어공학' 카테고리의 다른 글
OOP #3 : Class, Instance, Polymorphism (0) | 2024.10.20 |
---|---|
OOP #2: Encapsulation, Information hiding (혹은 Abstraction), Message (0) | 2024.10.20 |
SW Myths, 등장 배경, (0) | 2024.10.20 |
소프트웨어 공학이란 (0) | 2024.10.20 |
소프트웨어 특성, 역사, 분류 (0) | 2024.10.20 |