투케이2K
20. (소프트웨어공학/SoftwareEngineering) 객체 지향 (Object oriented) 프로그래밍 개념 설명 본문
20. (소프트웨어공학/SoftwareEngineering) 객체 지향 (Object oriented) 프로그래밍 개념 설명
투케이2K 2022. 10. 26. 09:05[학습 구분]
과목 : 소프트웨어공학
[설 명]
1. 객체 지향 이란 객체 지향 프로그래밍은 프로그램 구현에 필요한 객체를 파악하고 각각의 객체들의 역할이 무엇인지를 정의하여 객체들 간의 상호작용을 통해 프로그램을 만드는 것을 말합니다
2. 객체 지향 모델링은 기능이 아닌 객체가 중심이 되며 "누가 어떤 일을 할 것인가?" 가를 핵심에 둡니다 (객체를 도출하고 각각의 역할을 정의해 나감)
- 절차 지향 모델링은 프로그램을 기능중심으로 어떤 기능을 어떤 순서로 처리하는가에 초점을 맞춥니다
3. 객체 지향 프로그래밍 특징 :
- 추상화(abstraction) : 객체들의 공통적인 특징(기능, 속성)을 도출하는 것 입니다
- 캡슐화(encapsulation) : 실제로 구현되는 부분을 외부에 드러나지 않도록 하여 정보를 은닉할 수 있습니다
- 상속성(inheritance) : 기존 코드를 재활용해서 사용함으로써 하나의 클래스가 가진 특징(함수, 데이터)을 다른 클래스가 그대로 물려받는 것 입니다
- 다형성(polymorphism) : 동작하는 함수를 동일한 이름으로 호출하는 것 입니다 (오버라이딩(Overriding), 오버로딩(Overloading))
- 동적바인딩(Dynamic Binding) : 가상 함수를 호출하는 코드를 컴파일할 때, 바인딩을 실행시간에 결정하는 것 입니다 (함수를 호출하면 동적 바인딩을 통해 파생 클래스에 오버라이딩 된 함수가 실행)
4. 객체 지향 프로그래밍의 장점 :
- 소프트웨어의 생산성 향상 : 이미 만들어진 클래스를 상속받거나 객체를 가져다 재사용하거나, 부분 수정을 통해, 소프트웨어를 작성하는 부담을 대폭 줄일 수 있습니다
- 실세계에 대한 쉬운 모델링 : 실세계에 대한 모델링을 좀 더 쉽게 해준다. (모든 것을 객체들의 상호작용으로 생각)
- 보안성 향상 : 객체 지향적 프로그래밍의 캡슐화 특징으로 실제로 구현되는 부분을 외부에 드러나지 않도록 하여 정보를 은닉할 수 있습니다
5. 객체 지향 프로그래밍의 단점 :
- 느린 실행 속도 : 객체 지향 프로그래밍은 캡슐화와 격리구조에 때문에 절차지향 프로그래밍과 비교하면 실행 속도가 느립니다
'SE & OS & HW' 카테고리의 다른 글
22. (소프트웨어공학/SoftwareEngineering) 간트 차트 (Gantt chart) 개념 설명 (0) | 2022.10.28 |
---|---|
21. (소프트웨어공학/SoftwareEngineering) 절차지향(Procedural Programming) 프로그래밍 개념 설명 (0) | 2022.10.26 |
19. (소프트웨어공학/SoftwareEngineering) 애자일 (Agile) 방법론 개념 설명 (0) | 2022.10.26 |
18. (소프트웨어공학/SoftwareEngineering) 소프트웨어 공학 개념 설명 (0) | 2022.10.25 |
17. (소프트웨어공학/SoftwareEngineering) 유닛 테스트 (Unit Test) 용어 설명 (0) | 2022.10.25 |