Welcome! Everything is fine.

#06. 절차지향 vs 객체지향 본문

CS 스터디

#06. 절차지향 vs 객체지향

개발곰발 2024. 1. 30.
728x90

절차 지향 프로그래밍 (Procedural Programming)

  • 프로시저(Procedure) 또는 함수 중심.
  • 코드가 순차적으로 실행되며, 제어 흐름은 주로 조건문과 반복문을 통해 구현.
  • 코드의 가독성 Good, 실행속도 빠름.
  • 실행 순서가 정해져있으므로 상대적으로 유지보수 및 디버깅이 어려움.
  • ex. c언어
// 절차 지향 프로그래밍
public class ProceduralExample {
    public static void main(String[] args) {
        // 데이터
        String animalName = "고양이";
        int animalAge = 3;

        // 함수 호출
        makeAnimalSound(animalName);
        showAnimalAge(animalAge);
    }

    // 함수 정의
    public static void makeAnimalSound(String name) {
        System.out.println(name + "이 소리를 냅니다.");
    }

    public static void showAnimalAge(int age) {
        System.out.println("동물의 나이: " + age + "세");
    }
}

객체 지향 프로그래밍 (Object-Oriented Programming)

  • 객체(Object) 중심.
  • 데이터와 그 데이터를 처리하는 함수를 하나의 단위로 묶어서 클래스로 정의하고 이를 객체로 활용.
  • 코드 재사용성이 높고 디버깅이 쉬움, 유지보수에 용이함.
  • 상대적으로 처리속도가 느리고 많은 양의 메모리 사용.
  • ex. Java
// 객체 지향 프로그래밍
class Animal {
    private String name;
    private int age;

    // 생성자
    public Animal(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // 메서드
    public void makeSound() {
        System.out.println(name + "이 소리를 냅니다.");
    }

    public void showAge() {
        System.out.println("동물의 나이: " + age + "세");
    }
}

public class ObjectOrientedExample {
    public static void main(String[] args) {
        // 객체 생성
        Animal cat = new Animal("고양이", 3);

        // 메서드 호출
        cat.makeSound();
        cat.showAge();
    }
}