Skip to content
Discussion options

You must be logged in to vote

Q. getter와 setter는 객체의 데이터를 밖으로 꺼내고 수정하게 만든다. private로 기껏 선언해놓고 외부에서 메소드로 접근 가능하게 하는 방식이 옳을까?? getter와 setter는 무슨 이유로 생겼을까?

*레퍼런스를 참고해서 한번 정리하려고 합니다.

캡슐화는 객체의 외부에서 객체의 상태를 알거나 변경할 수 없게 만들며 객체의 자율성이 증가될 수 있게 하며 변경에 변화를 받지 않게 하는 OOP의 개념이다.
주로 객체의 상태를 접근 제한자를 활용해 접근을 제한하고(private) 외부에서의 접근을 제한한다.

하지만 대부분 개발을 할때 Lombok 어노테이션을 사용해서 @Getter, 혹은 @Setter 을 아무 고민 없이 사용하거나, IDE에서 자동으로 만들어서 사용하는 등 고민을 하지 않고 무지성 getter, setter을 사용할 때도 있다.

이것을 고민한 개발자는 getter, setter의 사용을 지양하면서 개발을 하지만 외부에서 접근이 필요할 때 사용하고 싶은 충동에 휩싸이거나 아예 사용하지 않게 노력하며 캡슐화를 지킨다는 명목하에 코드의 복잡성이 증가하게 된다.

해당 질문은 위와 같은 상황과 관련해서 private로 선언해서 접근제한을 막았지만, 메소드로 외부 접근을 허용하면 아무런 의미 없지 않나? 라는 의문과 고민에서 발전한것 같다.

Q. getter(setter)를 왜 사용하는 것 일까?

주…

Replies: 3 comments

Comment options

You must be logged in to vote
0 replies
Comment options

You must be logged in to vote
0 replies
Comment options

You must be logged in to vote
0 replies
Answer selected by qudtjs0753
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
3 participants