적당한 고통은 희열이다

- 댄 브라운 '다빈치 코드' 중에서

컴퓨터시스템

[Programming Paradigm] 객체지향 vs. 절차지향

hongssup_ 2021. 4. 16. 13:46
반응형

객체지향 프로그래밍과 절차적 프로그래밍은 둘 다 명령형 프로그래밍의 하위 개념으로, 

객체를 사용하느냐 사용하지 않느냐에 따라 구분한 것일 뿐

서로 반대되는 개념이 아니다. 

 

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

컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위,

즉 '객체'들의 모임으로 파악하여 객체간의 상호작용으로 프로그램의 동작을 구현하고자 하는 것.

프로그램을 단순히 데이터와 처리 방법으로 나누는 것이 아니라, 프로그램을 수많은 '객체(object)'라는 기본 단위로 나누고 이들의 상호작용으로 서술하는 방식이다. 객체란 하나의 역할을 수행하는 '메소드와 변수(데이터)'의 묶음으로 봐야 한다.

상호작용하는 객체들의 집합

왜? 

 

Procedural Programming 절차적 프로그래밍 

 

 

 

 

Swift 2014 객체지향, 함수형, 프로토콜지향 모두 다룰 수 있음 : 

손쉽게 학습할 수 있는 강력하고 직관적인 프로그래밍 언어

코드 작성은 대화식으로 재미있고, 구문은 간결하면서도 표현력이 풍부, 다양한 첨단 기능들 포함.

swift는 친절하다. Java보다는 간결하고 python보다는 체계적인? 

안전성 / 신속성 / 표현성

오류 방지를 위해 build 하기전에 엄청 경고를 많이 해준다. 메모리 관리도 자동으로 알아서 해주고 

최초 목적이 애플 플랫폼을 위한 어플리케이션 제작을 위한 것

단점은 너무 빨리 빨리 바뀐다? 

Object-C 에서 Swift 넘어온지 n년. UIKit를 잘 사용하고 있다가 SwiftUI 출몰. 

다른 언어들에 비해 역사가 깊지 않아서 아직까지 변화가 많은 듯

 

Java 1995 객체지향

 

Python 1991 객체지향, 동적타이핑 대화형 언어

 

자바는 완전 컴퓨터식 언어라면 swift python 대화형 언어? 

728x90
반응형