private이면 외부에서 호출 될리가 없기 때문에 문제가 있을 때 클래스 내에서만 보면 됨
protected는 상속관계 코드만 보면 될 거고 public이면 어디서 어떤놈이 뭔짓을 했을지 모름
함수가 싹다 public인 경우 인풋 값을 어떻게 넣을지 경우의 수가 많아지기 때문에 코드도 방어적으로 쓰게 됨
이게 개인프로젝트나 그냥 한 프로젝트라면 별 상관 없을지 모르지만 대형프로젝트거나 라이브러리 처럼 외부로 공유되는 경우에 싹다 퍼플릭이면 어질어질해짐
사이드 이펙트를 줄이고 순수 함수를 지향합시다
컨트롤 + F로 호출하는 곳 싹 다 찾고 브레이크 포인트 걸어서 확인하면 되는디 IDE 부실하던 고릿적도 아니고 딱히...
뭐 근데 잘 해놓으면 좋지
배포되는 경우 문제가 생길 때마다 업데이트 하기도 빡쎄고 그렇다고 모든 경우를 미리 대비 할 순 없음 인터페이스 되는 public함수에서는 유효성 체크만 하고 예측 가능한 환경을 조성한 오버로딩된 private 함수에서 처리하는 식으로 해야 버그 줄이고 반복적인 유효성 체크 자원도 아낄 수 있고 단일책임 원칙도 지킬 수 있는 거임
디버깅이 편한지는 모르겠고.. 수정할때 몰려있으니 편하더라. private라고 해도 결국 같은 클래스의 외부호출되는 함수에서 호출하고.. 값이 필요하니 클레스는 결국 get/set 투성이가되고.. - dc App