정의 | 클래스나 객체 간의 상호작용을 정의하는 계약 | 애플리케이션 개발을 위한 기본 구조와 기능을 제공하는 소프트웨어 |
목적 | 클래스나 객체가 구현해야 할 기능을 명시 | 전체 애플리케이션 구조와 기본적인 기능을 제공 |
제어 | 제어를 정의하지 않으며, 구현은 개발자가 담당 | 제어의 역전(IoC)을 통해 애플리케이션의 흐름을 관리 |
구성 요소 | 메서드 시그니처만 포함 | 코드와 구조, 다양한 기능과 라이브러리 포함 |
유연성 | 클래스가 자유롭게 구현 | 프레임워크에 의해 규칙과 구조가 정해짐 |
확장성 | 새로운 클래스를 통해 인터페이스 구현 가능 | 기능을 확장할 수 있는 플러그인 시스템과 인터페이스 제공 |
예제 | Java의 List, C#의 IComparable | Spring Framework, Django, Ruby on Rails |
인터페이스: List 인터페이스는 리스트의 기본적인 동작을 정의하지만, 실제 구현은 ArrayList, LinkedList 등에서 제공
프레임워크: 애플리케이션을 위한 프레임워크 Spring, Django(Python 진영)
'CS > JAVA' 카테고리의 다른 글
JSP + JSTL (0) | 2024.08.15 |
---|---|
클래스, 인스턴스, 인터페이스, 상속 (0) | 2024.08.15 |
Servlet (0) | 2024.08.14 |
세션의 값을 저장하고 꺼내는 법 (0) | 2024.08.14 |
추상클래스와 인터페이스 (0) | 2024.08.13 |