실무 관점에서 본 인터페이스 vs. 추상 클래스 비교인터페이스와 추상 클래스는 객체지향 설계에서 핵심적인 개념이며, 실무에서는 상황에 따라 적절히 선택해야 합니다. 아래에서는 언제 인터페이스를 사용하고, 언제 추상 클래스를 사용하는지, 그리고 실제로 더 자주 사용하는 개념과 그 이유를 정리해 보겠습니다.🚀 인터페이스 vs. 추상 클래스 실무 비교비교 요소 인터페이스 (Interface) 추상 클래스 (Abstract Class)상속 구조다중 구현 가능 (클래스는 여러 개의 인터페이스를 구현 가능)단일 상속만 가능 (다른 클래스를 동시에 상속받을 수 없음)상태(State) 유지불가능 (멤버 변수 선언 불가, Java 8 이후 default 메서드로 일부 구현 가능)가능 (멤버 변수 선언 및 상태 유지 가..
1. 인터페이스란 무엇인가?인터페이스(Interface)는 자바의 핵심 개념 중 하나로, 클래스가 구현해야 하는 메서드의 명세를 정의하는 추상적인 타입이다. 인터페이스는 다음과 같은 특징을 갖는다.메서드의 시그니처만 정의하고, 구체적인 구현은 제공하지 않는다.메서드의 시그니처 : 메서드의 이름과 그 메서드가 받을 파라미터의 종류 및 개수를 의미다중 구현(multiple inheritance)을 가능하게 한다.다중 구현 : 한 클래스가 두 개 이상의 부모 클래스를 상속받는 개념구현 클래스의 계약(Contract) 역할을 수행하여 코드의 유연성과 확장성을 높인다.계약 : 특정 규칙을 지켜야 한다는 약속을 의미인터페이스를 구현한 클래스는 반드시 메서드들을 구체적으로 구현해야 한다는 규칙(계약)을 지켜야 한다...
JVM은 자바 바이트코드를 실행시키는 가상 컴퓨터로, 자바의 "한 번 작성하면 어디서나 실행된다"는 특징을 실현합니다. 주요 구성 요소 Class Loader SubSystem 클래스 로더는 자바의 런타임 중에 필요한 클래스와 인터페이스를 동적으로 로드합니다. 이 과정을 크게 3단계 로딩(Loading), 링킹(Linking), 초기화(Initialization)로 나눌 수 있습니다. 로딩(Loading) : .JVM(Java Virtual Machine)의 클래스 로딩 과정에서 매우 중요한 첫 번째 단계입니다. 이 단계에서는 자바 프로그램이 실행되면서 필요한 클래스 파일들을 메모리로 로드하는 과정이 이루어집니다. 바이트코드 읽기: 클래스 로더는 .class 파일에서 바이트코드를 읽어들입니다. 이 파일은..