728x90
300x250
절차지향 프로그래밍 | 객체지향 프로그래밍 | |
특징 | - 프로시저 중심 : 프로그림을 수행하는 데 필요한 단계와 절차를 중심으로 설계됨 - 데이터 함수 분리 : 데이터와 함수(프로시저)가 명시적으로 분리됨 - 순차적인 절차 : 명령어가 순차적으로 실행되며, 제어 흐름은 주로 조건문과 반복문을 통해 제어됨 - 종류 : C, Pascal과 같은 언어가 대표적 지원방식 |
- 객체 중심 : 현실 세계의 개체(Entity)를 프로그램 내에서 모델링하고, 이들이 상호작용 하도록 한다. - 캡슐화 : 데이터와 해당 데이터를 처리하는 메서드(함수)를 하나의 단위로 묶어서 캡슐화함. - 상속 : 기존 클래스의 특성을 상속받아 새로운 클래스를 만들 수 있다. - 다형성 : 동일한 인터페이스를 사용하여 서로 다른 클래스의 객체를 다룰 수 있다. |
장점 | - 간단하고 직관적인 구조, 작은 규모의 프로그램에 적합 - 절차적인 접근은 일부 상황에서 빠른 실행이 가능 함 |
- 유지보수 및 확장 용이 : 모듈화와 캡슐화로 코드 유지보수와 확장이 용이함 - 재사용 : 클래스와 객체의 재사용이 쉽고 효율적임 - 현실 세계 모델링 : 현실 세계의 개념을 프로그램에 반영하여 설계가 자연스럽고 직관적임 |
단점 | - 유지보수 어려움 - 재사용의 한계 : 함수 단위로 모듈화가 이루어져서 객체지향에 비해서 재사용이 어려움 - 보안 문제 : 함수 호출 시 전역 데이터를 매개변수 값으로 넘겨 공유하는 사용 구조이기 때문에 전역 데이터가 잘못 처리될 수 있다. 즉 데이터가 보호되지 않는다. |
- 초기에 배우기 어려울 수 있음 - 성능 오버헤드 : 일부 상황에서는 성능 오버헤드가 발생할 수 있다. |
절차지향 스타일 예시
// 데이터 초기화
var length = 5;
var width = 3;
// 함수 호출
var area = calculateArea(length, width);
// 결과 출력
$("#rectangle-info").text("절차지향 jQuery - 직사각형의 넓이: " + area);
// 절차지향 함수 정의
function calculateArea(length, width) {
return length * width;
}
절차지향은 문제를 여러 개의 작은 함수단위로 나눠 작성하며 데이터들은 일반적으로 적역 데이터로 만들어지고 함수 호출 시 공유 데이터를 매개변수 값으로 넘겨 공유해서 사용한다.
객체지향 스타일 예시
// 객체 생성
var myRect = {
length: 5,
width: 3,
// 메서드 정의
calculateArea: function() {
return this.length * this.width;
}
};
// 메서드 호출
var area = myRect.calculateArea();
// 결과 출력
$("#rectangle-info").text("객체지향 jQuery - 직사각형의 넓이: " + area);
객체지향 프로그래밍은 문제를 여러 개의 객체 단위로 나눠 작업하는 방식을 말한다.
처리 부분과 데이터 부분을 하나로 묶어 객체(인스턴스)를 생성해 사용한다.
728x90
반응형
'javaScript' 카테고리의 다른 글
UML 다이어그램 (0) | 2023.12.06 |
---|---|
객체지향 프로그래밍 특징 (캡슐화, 상속, 추상화, 다형성) (0) | 2023.12.04 |
jQuery 플러그인 하나 각기 다른 옵션 여러개 적용하기 - 갤러리4 -비공개 (0) | 2023.12.02 |
jQuery 플러그인 하나 각기 다른 옵션 여러개 적용하기 - 갤러리3 -비공개 (0) | 2023.12.01 |
jQuery 플러그인 하나 각기 다른 옵션 여러개 적용하기 - 갤러리2 -비공개 (0) | 2023.11.30 |
댓글