회사에서 열심히 코드를 짜고 있는데
@Getter
@Setter
@ToString
public class PayloadRequestModel {
private String bedroomLight;
private String bathroomLight;
}
위의 코드를 보고 클래스 내 멤버 변수에 private을 '굳이' 왜 쓰냐는 질문을 받았다.
해당 클래스 내에서만 사용할 예정이기에 private으로 지정했는데 왜 지정했냐니..
시니어의 질문 의도는 private을 굳이 작성하지 않아도 default가 private이기 때문에 '굳이' 적지 않아도 된다는 것이다

내가 처음 자바를 배울 때 public, private, protected, default 이렇게 총 4개의 접근제어자가 있다고 배웠는데
private을 붙이지 않으면 default가 private이라니 이게 무슨 말인가요..?
그래서 알아봤다
public / protected / default / private
(접근성 높음) public > protected > default > private (접근성 낮음)
public : 접근 제한이 전혀 없다! 프로젝트 내 어떤 클래스 및 메서드에서 사용이 가능
protected : 같은 패키지 내 혹은 다른 패키지의 자손 클래스에서 접근 가능
default : 같은 패키지 내에서만 사용 가능 (굳이 명시하지 않아도 된다)
private : 같은 클래슨 내에서만 접근 가능
접근제어자를 모두 public으로 설정해도 프로그램 동작에는 큰 문제가 없지만
코딩 중 미연의 실수를 방지하기 위해 적재 적소에 맞게 접근제어자를 사용하는 것이 좋다
결론
시니어 분께 다시 여쭤보니 '이래서 개발은 끊임없이 공부해야 돼' 라는 답변이.. 😂
private을 붙이지 않으면 default 변수가 되고 private과 default는 다릅니다!
현재 코드상 붙이나 안붙이나 큰 문제는 없지만 개념이 다르다는 것은 꼭 알아둬야 한다
댓글