본문 바로가기
junior developer :)/CS(Computer Science)지식

[CS] 객체지향 vs 절차지향

by ㅁ윤슬ㅁ 2022. 7. 21.
728x90
반응형

내가 공부하기 위해 정리해보는 cs(computer science) 공부 첫번째!

오늘은 객체 지향 절차 지향에 대해서 적어보려고 해요 !

객체지향 (oop : object - Oriented - Programming) : 객체를 중심으로 소프트웨어를 개발하는 방법

* 객체 : 속성과 동작으로 이루어져 있으며 독립된 객체간의 소통을 중시

 

- 사용 언어 : java,python

- 특징 

  1. 자료추상화 : 프로그램을 만드는데 필요한 부분만 추출하고 필요하지 않은 것은 제거하는 것
  2. 캡슐화 : 알약 캡슐처럼 내용물을 숨긴다 (내부의 로직이나 변수들은 감추고 외부에는 기능만 제공)
  3. 상속 : 상위클래스의 모든 것들을 하위클래스에서 물려받는다
  4. 다형성 : 상속과 연관된 개념으로 하나의 객체가 다른 여러 객체로 재구성 되는 것

    - 오버로딩 : 함수의 이름은 같으나 매개변수를 다르게 호출

    - 오버라이딩 : 함수를 재정의하여 사용

 

- 장점 : 상속이 되기 때문에 코드를 재사용 할 수 있음, 유지보수에 용이

- 단점 : 느린 속도

 

절차지향(procedural Programming) : 시간의 흐름(절차)에 따라 코드 작성

- 위에 단계가 끝나지 않으면 밑의 단계가 실행되지 않음

- 사용언어 : c

 

- 장점: 컴퓨터의 처리구조와 유사해 실행 속도가 빠름

- 단점 : 유지보수의 어려움 ( 처음부터 끝까지 연결 되어있기 때문에 중간의 수정이 어려움)


지금까지 객체지향과 절차지향의 특징과 차이점을 알아봤습니당

객체지향은 기능 중심, 절차지향은 데이터 중심이라고 생각하면 좋을 것 같아요

하지만 여기서 중요한 것은 두 개념은 반대 개념이 아닙니다!

어디까지나 '지향'하는 것 뿐 각 언어에서도 어느 한 방식만 사용하는 것은 아니라고 합니당

두가지 다 필요한 개념이에요 !


출처 :

http://www.codingworldnews.com/news/articleView.html?idxno=2569 

https://blog.wishket.com/객체지향-vs-절차지향-프로그래밍/

https://brownbears.tistory.com/407

https://st-lab.tistory.com/151

728x90
반응형