본문 바로가기
javaScript

절차지향 프로그래밍 vs 객체지향 프로그래밍

by mooyou 2023. 12. 3.
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
반응형

댓글