추상 클래스와 인터페이스 차이: 자바와 객체지향 설계 관점에서 언제 무엇을 써야 할까
추상 클래스와 인터페이스 차이를 자바 문법 비교표로만 외우면 실무에서 자주 헷갈립니다. 이 글에서는 공통 상태, 계약, 다중 타입, 변경 비용 관점에서 언제 무엇을 쓰면 좋은지 쉽게 정리합니다.
추상 클래스와 인터페이스 차이를 자바 문법 비교표로만 외우면 실무에서 자주 헷갈립니다. 이 글에서는 공통 상태, 계약, 다중 타입, 변경 비용 관점에서 언제 무엇을 쓰면 좋은지 쉽게 정리합니다.
객체를 단순 데이터 통으로만 보면 왜 서비스에 로직이 몰리고 설계가 어려워지는지, DTO와 도메인 객체 차이와 함께 쉽게 정리합니다.
객체지향에서 메서드를 어디에 둬야 할지 헷갈릴 때, 서비스에 몰린 로직과 빈약한 도메인 객체 문제를 책임 배치 기준으로 쉽게 정리합니다.
상속과 조합은 모두 객체지향 설계의 도구지만, 변경이 생기는 상황에서는 composition이 inheritance보다 더 유연하게 버티는 경우가 많습니다. 이 글에서는 알림 발송 구조를 예시로 상속과 조합의 차이를 코드와 다이어그램으로 자세히 설명합니다.
결합도가 중요한 이유는 코드가 연결되어 있기 때문이 아니라, 하나를 바꿀 때 같이 수정해야 하는 부분이 너무 많아지기 때문입니다. 이 글에서는 잘못된 설계 예시와 개선 예시를 통해 변경 전파와 유지보수 비용을 쉽게 설명합니다.
객체지향을 클래스 개수나 상속 문법으로만 이해하면 왜 설계가 어려워지는지, 책임과 협력, 캡슐화 관점에서 다시 정리합니다.