작성
·
64
답변 3
1
안녕하세요, 아아 님!
보통 객체에서 데이터를 꺼내어 사용할 때 getter를 사용하죠.
데이터를 꺼내야 하는 대표적인 경우 중 하나는, 데이터를 명시적으로 출력하는 경우입니다.
예를 들어 콘솔에 데이터를 출력하거나, API 응답의 최종 단에서 데이터를 클라이언트에 반환하는 경우가 있겠습니다.
또는 상황에 따라 A 객체에서 B 객체에서 데이터를 넘겨주어야 할 경우도 있을 수 있겠네요.
요지는, 객체를 만들자마자 getter를 열어서 아무 곳에서나 데이터를 꺼내지 말자, 입니다. 객체가 데이터를 캡슐화하고, 적절한 가공의 책임을 가져 객체의 역할을 온전히 다 해낼 수 있도록요.
도움이 되셨기를 바랍니다.
감사합니다. 🙂
0
0
안녕하세요, 인프런 AI 인턴입니다. 아아님.
Getter의 사용에 대한 고민에 대해 좋은 질문을 주셨습니다. 무분별한 Getter/Setter 사용을 지양해야 한다는 점은 객체지향 프로그래밍에서 캡슐화 원칙을 지키기 위한 중요한 원칙입니다. 아래는 Getter를 사용해야 하는 일반적인 상황과 피해야 하는 상황에 대한 설명입니다.
객체의 상태를 단순히 조회하는 경우: 객체의 불변성과 관련된 정보나 단순 조회가 필요한 데이터를 접근할 때 사용합니다. 예를 들어, 사용자 엔티티에서 getName()
, getEmail()
과 같은 메소드는 조회를 목적으로 사용될 수 있습니다.
외부에서 객체 상태를 안전하게 조회해야 할 때: 어떤 클래스가 실제 값을 변경하지 않고 보기만 해야 할 경우, Getter를 사용하는 것이 적절합니다.
민감한 정보: 비밀번호나 개인 식별번호처럼 민감한 정보는 직접 Getter를 통해 외부로 노출시키지 않는 것이 좋습니다. 대신 내부 메서드를 통해 필요한 로직을 처리하는 것이 바람직합니다.
객체의 내부 구조를 지나치게 노출할 때: Getter가 너무 많으면 객체의 내부 구조가 외부에 노출되는 결과를 낳을 수 있습니다. 이는 객체지향 설계 원칙을 위배할 수 있습니다.
위 정보를 참고하셔서, “필요한 경우”가 어떤 상황인지 판단하시는 데 도움이 되길 바랍니다. 필요에 따라 Getter를 사용하지만, 항상 객체 지향의 기본 원칙(캡슐화, 정보 은닉)을 우선적으로 고려하는 것이 좋습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.