불변 객체는 왜 중요할까: 상태를 못 바꾸게 하는 설계가 더 쉬운 이유
불변 객체는 setter를 없애는 문법 취향이 아니라 상태 변경 지점을 줄여 코드를 더 예측 가능하게 만드는 설계입니다. 캡슐화와 테스트 관점에서 정리합니다.
불변 객체는 setter를 없애는 문법 취향이 아니라 상태 변경 지점을 줄여 코드를 더 예측 가능하게 만드는 설계입니다. 캡슐화와 테스트 관점에서 정리합니다.
자바 static 메서드와 인스턴스 메서드 차이를 상태 의존성, this 사용, 책임 배치 기준으로 쉽게 정리합니다.
캡슐화는 getter를 숨기는 기술인지, 아니면 객체가 자기 상태를 스스로 지키게 만드는 설계인지 설명합니다. 정보 은닉, 상태 변경 규칙, 무결성, 객체 책임 관점에서 쉽게 정리합니다.
도메인 모델이 getter와 setter만 남은 빈혈 상태가 되면 왜 유지보수가 어려워지는지 설명합니다. 서비스 객체로 로직이 몰리는 이유, 책임이 흐려지는 순간, 언제 도메인 모델이 더 나은지 실무 기준으로 정리합니다.
의존성 주입을 프레임워크 기능으로만 배우면 DI, DI 컨테이너, 서비스 로케이터가 쉽게 섞입니다. 이 글에서는 객체 생성과 의존성 전달을 분리하는 관점으로 DI의 핵심, 테스트 이점, 과설계 경계까지 실무적으로 정리합니다.
인터페이스 분리 원칙(ISP)을 슬로건처럼 외우면 실무에서 잘 안 보입니다. 이 글에서는 큰 인터페이스가 왜 변경 비용과 테스트 비용을 키우는지, 언제 역할별 계약으로 나누는 것이 좋은지 실전 기준으로 정리합니다.