본문 바로가기
728x90

자바개발자2

[JAVA] Java 인터페이스 변수 선언 시 자동으로 붙는 키워드의 비밀: 왜 public static final인가? 자바(Java)를 처음 배우는 입문자부터 숙련된 개발자까지, 인터페이스(Interface)는 객체 지향 설계의 핵심 도구로 사용됩니다. 하지만 많은 이들이 인터페이스 내부에 변수를 선언할 때 일어나는 '마법 같은 일'을 간과하곤 합니다. 단순히 변수를 선언했을 뿐인데, 자바 컴파일러는 우리 몰래 몇 가지 키워드를 자동으로 추가합니다. 오늘 이 글에서는 인터페이스 변수에 자동으로 붙는 키워드의 정체와 그 설계 배경, 그리고 실무에서 주의해야 할 점을 심층적으로 분석해 보겠습니다. --- ## 1. 인터페이스 변수에 숨겨진 3가지 키워드Java 인터페이스 내에서 선언된 모든 변수는 명시적으로 작성하지 않아도 컴파일러에 의해 public static final이 자동으로 붙습니다. 즉, 인터페이스의 변수는 기.. 2026. 1. 16.
[JAVA] 추상 클래스 vs 인터페이스 : 객체 지향 설계의 본질적 차이 분석 자바 프로그래밍에서 '추상화'를 구현하는 두 가지 핵심 도구가 바로 추상 클래스(Abstract Class)와 인터페이스(Interface)입니다. 많은 초보 개발자들이 "둘 다 미완성 메서드를 갖는 것 아닌가?"라는 의문을 갖지만, 자바의 버전이 올라갈수록(Java 8의 default method, Java 9의 private method 도입 등) 두 개념의 기능적 경계는 모호해지면서도 그 설계적 목적은 더욱 명확해지고 있습니다. 본 포스팅에서는 단순히 문법적인 차이를 넘어, 실무에서 어떤 기준으로 두 도구를 선택해야 하는지 심층적으로 다루어 보겠습니다.1. 추상 클래스(Abstract Class): "상태와 행위를 공유하는 혈연 관계"추상 클래스는 abstract 키워드를 사용하여 선언하며, 단 하.. 2026. 1. 16.
728x90