⚡️ 객체 지향 프로그래밍 이란?
- 하나의 모델이 되는 청사진을 만들고, 그 청사진을 바탕으로 객체를 만들어나가는 프로그래밍 패턴이다.
- 그러면 객체란 무엇인가?
- 객체란 프로그램에서 사용되는 변수들과 값, 그리고 작업을 수행할 메소드를 서로 연관된 것들끼리 묶어서 만든것
- 쉽게 비유하자면, 객체는 레고 조각이고 레고 조각을 조립하여 무엇을 만드는 방식이 객체 지향 프로그래밍이다.
- 이러한 객체 지향 프로그래밍은 레고와 같이 부품화 할 수 있고, 재사용이 가능하다는 특징이 있다.
⚡️ 객체 지향 프로그래밍의 특징
❗️ 캡슐화
- 데이터와 기능을 하나의 느슨한 결합으로 묶는 것이다.
- 속성과 기능을 정의하는 변수와 메서드를 클래스라는 캡슐에 넣어서 분류하는 것으로, 재사용이 쉽다는 장점이 있고,
- 내부 데이터나 내부 구현이 외부로 노출되지 않도록 은닉화하는 기능을 가진다.
❗️ 추상화
- 공통적인 속성이나 기능들을 묶어서 타입을 정의하는 것이다.
- 불필요한 정보는 숨기고 중요한 정보면 표현함으로써 프로그램을 단순화 시킨다.
❗️ 상속
- 클래스의 속성과 행위를 하위 클래스에 물려주거나,
- 상위 클래스의 속성과 행위를 물려받는 것이다.
- 새로운 클래스가 기존의 클래스의 데이터와 연산을 이용할 수 있게 하는 기능이다.
❗️ 다형성
- 하나의 클래스 내부에 같은 이름의 행위를 여러개 정의하거나,
- 상위 클래스의 행위를 하위 클래스에서 재정의하여 사용 할 수 있다.
⚡️ 객체 지향 프로그래밍의 장, 단점
❗️ 장점
- 클래스 단위로 모듈화시켜 개발하기 때문에 업무 분담이 편리하다
- 대규모 소프트웨어 개발에 적합하다
- 클래스 단위로 수정이 가능하여 유지보수가 편리하다.
- 클래스를 재사용하고나 상속을 통해 확장함으로써 코드 재사용이 용이하다.
❗️ 단점
- 처리속도가 상대적으로 느리다.
- 객체의 수가 많아지면서 용량이 커질 수 있다.
- 설계시 많은 시간과 노력이 요구된다.
'코딩 > 코드스테이츠 45기(FE)' 카테고리의 다른 글
[기술면접 학습법2] (0) | 2023.06.08 |
---|---|
블로깅 챌린지 5주차 - [기술면접 학습법] (0) | 2023.05.09 |
[Solo Project] 나만의 AGROA STATES 만들기🐤 (진행중) (0) | 2023.05.05 |
블로깅 챌린지 4주차 - [JS/브라우저]DOM / [실습]유효성 검사 (0) | 2023.05.04 |
블로깅 챌린지 4주차 - [JS] koans 리뷰 (0) | 2023.05.02 |