내가 공부하기 위해 정리해보는 cs(computer science) 공부 첫번째!
오늘은 객체 지향과 절차 지향에 대해서 적어보려고 해요 !
객체지향 (oop : object - Oriented - Programming) : 객체를 중심으로 소프트웨어를 개발하는 방법
* 객체 : 속성과 동작으로 이루어져 있으며 독립된 객체간의 소통을 중시
- 사용 언어 : java,python
- 특징
- 자료추상화 : 프로그램을 만드는데 필요한 부분만 추출하고 필요하지 않은 것은 제거하는 것
- 캡슐화 : 알약 캡슐처럼 내용물을 숨긴다 (내부의 로직이나 변수들은 감추고 외부에는 기능만 제공)
- 상속 : 상위클래스의 모든 것들을 하위클래스에서 물려받는다
- 다형성 : 상속과 연관된 개념으로 하나의 객체가 다른 여러 객체로 재구성 되는 것
- 오버로딩 : 함수의 이름은 같으나 매개변수를 다르게 호출
- 오버라이딩 : 함수를 재정의하여 사용
- 장점 : 상속이 되기 때문에 코드를 재사용 할 수 있음, 유지보수에 용이
- 단점 : 느린 속도
절차지향(procedural Programming) : 시간의 흐름(절차)에 따라 코드 작성
- 위에 단계가 끝나지 않으면 밑의 단계가 실행되지 않음
- 사용언어 : c
- 장점: 컴퓨터의 처리구조와 유사해 실행 속도가 빠름
- 단점 : 유지보수의 어려움 ( 처음부터 끝까지 연결 되어있기 때문에 중간의 수정이 어려움)
지금까지 객체지향과 절차지향의 특징과 차이점을 알아봤습니당
객체지향은 기능 중심, 절차지향은 데이터 중심이라고 생각하면 좋을 것 같아요
하지만 여기서 중요한 것은 두 개념은 반대 개념이 아닙니다!
어디까지나 '지향'하는 것 뿐 각 언어에서도 어느 한 방식만 사용하는 것은 아니라고 합니당
두가지 다 필요한 개념이에요 !
출처 :
http://www.codingworldnews.com/news/articleView.html?idxno=2569
https://blog.wishket.com/객체지향-vs-절차지향-프로그래밍/
'junior developer :) > CS(Computer Science)지식' 카테고리의 다른 글
API에 대하여(+ REST API, REST 성숙도 모델) (1) | 2022.10.06 |
---|---|
네트워크 기초 1. URL과 URI / IP / PORT / 도메인 / DNS_브라우저 작동원리(보이지 않는 곳) (0) | 2022.10.05 |
[CS] 자료구조란? (0) | 2022.07.30 |
[CS] 프레임워크와 라이브러리 개념과 차이점 (0) | 2022.07.28 |
[CS] TDD(Test Driven Development)란? (0) | 2022.07.23 |