찔끔찔끔씩😎

객체지향과 절차지향 | Python 과 JAVA 본문

Language/etc

객체지향과 절차지향 | Python 과 JAVA

댕경 2022. 1. 7. 10:56
728x90

 

그냥 기계적으로 쓰고있던 두 언어였는데

회사에서 정곡을 찔러서 정리해두는 노트 ......!

자바, 파이썬 차이 설명에 앞서 정리하고 갈 절차지향 대 객체지향

 

절차지향 vs 객체지향

절차지향 언어 (PP, Procedure Programming)

  • 함수를 만들고 순차적으로 프로그램이 동작되는 방식
  • 장점: 객체나 클래스를 만들필요가 없어 바로 코딩가능, 프로그램 흐름을 쉽게 추적가능
  • 단점: 코드끼리 유기성이 높아 새로운 데이터나 기능 추가의 어려움, 유지보수. 코드재사용 불가능

객체지향 언어 (OOP,  Object Oriented Programming)

  • 데이터를 객체로 취급하여 기능들을 하나의 객체로 묶어 프로그래밍 함
  • 함수와 필드를 묶어 하나의 클래스로 만들고, 기능을 객체로 만들어 사용
  • 장점: 캡슐화(모듈화)로 인한 유지보수 용이, 객체 자체가 하나의 프로그램으로 상속처럼 코드재사용 용이
  • 단점: 많은 양의 메모리 사용

예시랑 너무 잘 나와있는 참고 링크 : https://st-lab.tistory.com/151

 

객체지향(OOP)과 절차적 프로그래밍(PP)

오늘은 프로그래밍에서 중요한 개념 중 하나인 객체지향 프로그래밍(Object Oriented Programming)과 절차적 프로그래밍(Procedure Programming)에 대해 알아보고자 합니다. 대개 객체지향 프로그래밍 언어를

st-lab.tistory.com

 

자바 (JAVA) vs 파이썬 (Python)

자바 (JAVA)

1. 객체지향 언어

2. 운영체제 독립적

- ( JVM 자바 가상머신 ) 위에서 실행된다 → OS 관계 없음

3. 컴파일 언어

- 컴파일 되면 결과를 확인할 수 있고,

- 코드를 수정해도 다시 컴파일 될 때까지 같은 결과를 나타냄

파이썬 (Python)

1. 객체지향 언어

- 자바와 마찬가지!

2. 스크립트 언어, 인터프리터 언어

- 실행될 때마다 바로바로 해석돼서, 코드 변경시 실행할 때마다 결과가 계속 바뀜

비교를 해보자

1. 변수선언

  •  자바
    • 정적(static)타이핑 언어
    • 변수를 사용하기 위해 데이터 유형을 선언
    • 컴파일 당시에 자료형에 대한 판단을 진행하기 때문에 속도가 빠름 ( 자바가 빠른 이유! )
    • 타입 에러로 인한 문제 초기에 발견 가능
  • 파이썬
    • 동적(dynamic)타이핑 언어
    • 변수유형을 선언 할 필요가 없는 동적 유형 → 런타임에 의해 유형이 결정
    • 프로그래밍시 편리함
    • 런타임 시에 예상치 못한 에러 발생 가능성

2. 코드 가독성

    • 딱봐도 알 수 있는 차이 ~

Comments