Closed lee-ji-hoon closed 2 years ago
네 맞습니다.
시스템의 자원이 한정적이기 때문에 효율적으로 자원을 사용하는게 중요합니다.
협업에서 습관적으로 인스턴스를 만드는 개발자들이 존재하기 때문에 private으로 막는것이 중요합니다.
private으로 막지 않으면 잘 모르시는 개발자들은 습관처럼 인스턴스를 만드시는것도 무서운데 인스턴스 변수로는 내부의 정적 메소드에 접근할 수 없으니 동일한 내용의 public 메소드를 만들어서 사용하시는 것을 목격했습니다. 사실 이런 분들은 private로 막았어도 public으로 바꿔버리는 마법을 쓰셨을거라 생각하지만요... ㅎ
@quedevel
답변 감사합니다! 덕분에 궁금했던 내용이 해소됐습니다. 추가적으로 궁금한 점이 있습니다.
라고 적혀져 있는데, 책의 유틸 클래스들을 제외하고 협업에서 자주 사용되는 방식인지 알 수 있을까요?
@lee-ji-hoon
네 실제로 제가 지금 작업중인 프로젝트에서도 *Util.java 만 검색해도 너무 많이 나오는데, 거기에 선언되어있는 전역 변수나 전역 메소드는 셀 수 없이 많습니다.
'객체 지향적으로 사고하지 않는 이들이 종종 남용하는 방식' 이란것은 이렇게 많은 유틸이 있는데 전혀 전역적으로 사용하지 않아도 되는 비지니스를 전역 용으로 빼논걸 남용이라고 말하는것 같아요.
하지만, 실제로 만들다보면 전역으로 만들지 말지를 정하는 부분은 항상 애매모호하더라구요ㅜ
@lee-ji-hoon
찾아보니 static에 대한 좋은 글이 있네요
@quedevel
이런 의미로 남용을 한다는 말이였군요 이제 이해가 됐습니다!
그리고 예시 자료까지 찾아주시고 감사합니다!
'왜 인스턴스화를 막아야 하는 걸까?' 라는 생각이 들었습니다.
이렇게 두 가지로 생각이 드는데 맞는지 궁금해서 Issues에 남겨봅니다.