Open utterances-bot opened 1 year ago
DIP 관련해서 이야기인데 저는 요즘 Application layer로 진입하는 시점에 interface에 대한 의문이 생깁니다. 실제로 다형성을 챙기기에도 용의하지 못하고 명세만으로 파일을 늘려만 간다는 느낌이 들기도 해요.
인터페이스를 많이 사용해라 보다는 적절하게 잘 사용하는게 정말 중요할 것 같습니다.
@Anjonggil 저도 그 부분에서 생각이 자주 바뀌는데요. 요즘은 메서드 목록을 한 눈에 볼 수 있고 javadoc을 남기기에 용이하다는 것에 의의를 두기로 했습니다.
이건 얼마전 유튜브에서 본 비유인데요.
방이 구분없이 어질러져 있는 것은 패키지화 되지 않은 소스와 같다. 이 방에 규칙을 만드는 것은 서랍장을 들여서 섹션별로 용품을 정리하는 것이다. 패키지를 만들어서 특정 용도별로 소스코드를 정리하는 것과 같다. 방에 규칙을 부여하여 청소한다. 결론적으로 방에는 서랍장이 많아졌지만 깨끗해졌다. 소스코드도 이와 같다. 패키지가 늘어났지만 용도와 의도를 구분하기 명확해졌다.
위 비유로 봤을 때 인터페이스는 각 서랍장 섹션에 라벨이나 설명이 붙이는 것과 비슷하다고 생각합니다. 물론 크게 중요한 부분이 아니라고 생각해서 팀 규칙따라갈 것 같습니다. 제가 주도하는 입장이라면 인터페이스를 만들 것 같고요.
객체 지향 설계와 스프링 | minjun's memory
https://jo-minjun.github.io/notes/spring-core-basic/