나의 개발일지(김지헌)
항해 99 26일차 10월 14일 본문
오늘부터 심화 주차에 들어갔다 soket io , 객체지향, Layered Architecture Pattern, 테스트 코드 정도 배우는거 같다.
1. 객체 지향이란?
객체 지향은 소프트웨어의 핵심을 기능이 아닌 객체로 삼으며 “누가 어떠한 일을 할 것인가?”에 초점을 맞춥니다.
즉, 객체를 도출하고 각각의 역할을 정의하는 것에 초점을 맞춥니다.
- 책임과 권한을 가진 객체들이 서로 메시지를 주고받으며 협력해서 필요한 기능을 수행하도록 시스템을 개발하는 것을 객체 지향이라고 합니다.
- 크고 복잡한 시스템을 효과적으로 분해하고 구성할 수 있고, 손쉽게 이해하고 효율적으로 다룰 수 있게 도와주는 방법으로 인정받아 많은 프로그래밍 언어에 적용되어 왔고 지금은 가장 인기 있는 프로그래밍 패러다임으로 자리 잡습니다.
그렇다면 객체 지향적인 소프트웨어는 어떻게 구분할 수 있을까요?
절차지향적인 소프트웨어와 객체지향적인 소프트웨어를 구분하는 방법은 아래의 기준을 만족할 경우 객체지향, 만족하지 않으면 절차지향적인 성격을 가집니다.
- 캡슐화, 다형성, 클래스 상속을 지원하는가?
- 데이터 접근 제한을 걸 수 있는가?
캡슐화
개념적이나 물리적으로 객체 내부의 세부적인 사항을 감추는 것을 캡슐화라고 부릅니다.
즉, 캡슐화를 사용하는 가장 큰 이유는 정보은닉을 목적으로 합니다
상속
상속이란 이미 정의된 상위 클래스의 특징을 하위 클래스에서 물려받아 코드의 중복을 제거하고 코드 재사용성을 증대시킵니다.
즉, 하나의 클래스가 가진 특징(함수, 변수 및 데이터)을 다른 클래스가 그대로 물려 받는 것을 말합니다.
추상화
객체에서 공통된 부분을 모아 상위 개념으로 새롭게 선언하는 것을 추상화라고 합니다.
즉, 불필요한 부분을 생략하고 객체 속성 중 공통적이고 중요한 것에만 중점을 두어 모델화 하는 것입니다
프로그래밍 패러다임
- 구조적 프로그래밍 (Structured Programming)
- 객체 지향 프로그래밍 (Object-Oriented Programming, OOP)
- 함수형 프로그래밍 (Functional Programming)
구조적 프로그래밍은 제어 흐름의 직접적인 전환에 대한 규칙을 제시합니다.
- 구조적 프로그래밍은 기능을 중심적으로 개발을 진행합니다.
- 구조적 프로그래밍은 프로그래밍이라는 기술이 시작되면서 가장 처음으로 적용된 패러다임입니다.
객체 지향 프로그래밍은 제어흐름의 간접적인 전환에 대한 규칙을 제시합니다.
- 객체 지향 프로그래밍은 프로그램의 처리단위가 객체인 프로그래밍 방법입니다.
- 객체 지향 프로그래밍은 “현실 세계를 모델링”하는 대표적인 프로그래밍 패러다임입니다.
함수형 프로그래밍은 할당문에 대한 규칙을 제시합니다.
- 함수형 프로그래밍은 함수를 중심적으로 개발을 진행합니다.
- 함수형 프로그래밍은 3가지의 패러다임 중 가장 처음 만들어졌지만 최근들어 겨우 도입되기 시작하는 패러다임 입니다.
'항해 99' 카테고리의 다른 글
항해 99 28일차 10/16일 (0) | 2022.10.16 |
---|---|
항해 99 27일차 10/15일 (0) | 2022.10.16 |
항해 99 25일차 10월 13일 (0) | 2022.10.14 |
항해 99 24일차 10월 12일 (0) | 2022.10.13 |
항해 99 22일차 10/10 (0) | 2022.10.11 |