CS/JAVA
인터페이스와 프레임워크의 차이
휴먼코딩
2024. 8. 15. 01:32
정의 | 클래스나 객체 간의 상호작용을 정의하는 계약 | 애플리케이션 개발을 위한 기본 구조와 기능을 제공하는 소프트웨어 |
목적 | 클래스나 객체가 구현해야 할 기능을 명시 | 전체 애플리케이션 구조와 기본적인 기능을 제공 |
제어 | 제어를 정의하지 않으며, 구현은 개발자가 담당 | 제어의 역전(IoC)을 통해 애플리케이션의 흐름을 관리 |
구성 요소 | 메서드 시그니처만 포함 | 코드와 구조, 다양한 기능과 라이브러리 포함 |
유연성 | 클래스가 자유롭게 구현 | 프레임워크에 의해 규칙과 구조가 정해짐 |
확장성 | 새로운 클래스를 통해 인터페이스 구현 가능 | 기능을 확장할 수 있는 플러그인 시스템과 인터페이스 제공 |
예제 | Java의 List, C#의 IComparable | Spring Framework, Django, Ruby on Rails |
인터페이스: List 인터페이스는 리스트의 기본적인 동작을 정의하지만, 실제 구현은 ArrayList, LinkedList 등에서 제공
프레임워크: 애플리케이션을 위한 프레임워크 Spring, Django(Python 진영)