1. 객체지향 이란?
현실세계의 사물이나 개념을 객체로 표현하고 이 객체들 간의 상호작용을 통해 프로그램을 구성하는 방식
---
2. 절차지향 프로그래밍에서 데이터와 기능이 분리되어 있을 때 발생할 수 있는 문제점은?
데이터와 로직이 분리되어 있어 데이터의 상태를 예측하거나 제어하기 어렵고, 로직이 복잡해질수록 의존성이 커져 유지보수가 어려워짐. 변경 시 연쇄적으로 영향을 미치기 쉬움.
---
3. 객체지향 프로그래밍이 유지보수와 확장성 측면에서 절차지향보다 유리한 이유는?
객체가 자신만의 책임을 가지므로 수정이 필요한 부분만 집중적으로 변경 가능함. 관련 코드가 한 객체 내부에 모여 있어 영향 범위가 작고, 기능 추가나 변경이 수월함.
---
4. 객체지향 프로그래밍에서 ‘캡슐화’는?
객체의 내부 데이터를 외부로부터 숨기고, 필요한 기능만 공개함으로써 데이터 보호와 일관성 유지, 코드 안정성과 재사용성을 높이는 역할
---
5. 객체지향 프로그래밍에서 ‘모듈화’는 어떤 장점이 있으며, 실무에서는 어떻게 활용?
기능을 독립적인 단위로 나눔으로써 역할이 명확해지고, 각 모듈의 재사용성과 테스트 용이성이 높아짐. 실무에선 고객, 주문, 상품 등의 도메인별로 모듈을 나누어 개발과 협업이 쉬움.
---
6. 절차지향 방식이 유리한 상황은?
프로그램 구조가 단순하고 순차적 실행 흐름이 중요한 경우
---
7. 객체지향 설계에서 ‘데이터와 기능을 하나의 단위로 묶는다’는 말의 의미는 ?
객체는 자신의 상태(데이터)를 스스로 관리하고, 그 상태를 다루는 기능(메서드)도 함께 가짐. 이렇게 하나의 단위로 책임과 기능이 묶이면 응집도가 높아지고 유지보수가 쉬움.
---
8. 재사용성과 확장성의 관점에서 객체지향 프로그래밍이 절차지향보다 좋은 점?
상속, 추상화, 다형성 같은 특징 덕분에 기존 클래스를 수정하지 않고도 기능을 확장하거나 재사용할 수 있음. 비슷한 구조의 객체들을 쉽게 만들 수 있어 유연함.
---
9. 절차지향과 객체지향은 서로 완전히 반대되는 개념 ?
서로 반대되는 개념은 아니며, 프로그래밍의 두 가지 방식일 뿐. 객체지향 내부에서도 프로그램의 실행 흐름은 절차적으로 흘러가므로, 두 방식을 혼합해 사용할 수 있음.
---
복습을 자주 하자.
···