2026/04/10 2

[소프트웨어공학/Software Engineering] 객체지향과 인터페이스

지난 글에서는 다형성에 대해 예제 코드와 함께 알아보았다.이번에는 객체지향에 관한 마지막 내용을 정리해보고자 한다. 객체지향의 장점1. 비용 절감재사용 가능한 컴포넌트를 활용하여 개발 시간 감소2. 소프트웨어 품질 향상캡슐화 + 다형성 을 통한 높은 모듈화시스템 간 결합도 감소3. 유지보수 용이성변경이 필요한 부분이 제한된다.확장과 수정이 쉽다.4. 설계와 구현의 연결성분석 → 설계 → 코드로 자연스럽게 이어진다.Abstract Class vs. InterfacePure Virtual Functionvirtual int getSalary() const = 0;구현이 없는 함수반드시 subclass에서 구현해야 함Abstract Class (C++)하나 이상의 pure virtual function 포함객..

[소프트웨어공학/Software Engineering] Polymorphism 다형성

지난 글에서 밝혔던 바와 같이 이번 시간에는 polymorphism에 대해서 알아보려고 한다. Polymorphism다형성이라고 하며, 하난의 메시지에 대해 서로 다른 객체가 서로 다른 방식으로 응답할 수 있는 기능이다.메시지를 보내는 객체는 어느 객체가 받을지 알 필요가 없다.one interface, multiple implementations연산 오버라이딩(상속) + 동적 바인딩 을 통해 구현된다.클래스 차원의 encapsulation(캡슐화)를 구현한 구조이다.superclass가 subclass들을 encapsulation 한다.메시지를 보내는 객체는 그 component 중에서 superclass의 interface만 알고 있으면 된다.내부의 상속 구조에 대해 전혀 알 필요가 없다. (누가 누..