본문 바로가기
공부/자료조사

Getter / Setter 를 사용하면 어떤점이 좋고 나쁠까?

by 고구밍 2022. 4. 1.

- 최봉진님 정리내용

 

장점

  • validation 을 할 수 있다.
  • get, set 하는 값을 변형해서 set 하거나 return 할 수 있다.
  • 안의 구조를 숨길 수 있다. ( encapsulation )
  • 안의 변수명을 숨길 수 있다.
  • 상속할 때 override 할 수 있다.
  • getter 와 setter 에 다른 access level 을 적용할 수 있다.
  • lazy loading 이 가능하다.
  • 몇몇 library, platform, framework 에서 이를 요구하기도 한다. ( reflection 등 이용 )

 

단점

  • 단순한 get, set의 경우에는 mobile 환경에서 performance 이슈가 생길 수 있다.
  • 동작 없이 데이터만 있는 클래스는 쓸데 없는 코드만 늘어난다. 예: 웹 프로그래밍에서 많이 볼 수 있는 DTO(data transfer object) 그래서 이런 경우에는 그냥 public 데이터를 쓰기도 한다.
  • getter, setter는 자신의 상태정보를 외부에 노출하고 이것은 외부의 영향으로 상태정보가 변할 수 있는 가능성을 열어두게된다. 한 객체의 변화가 여러 객체에게 영향을 주는 이러한 코드가 많아질수록 훗날 유지보수가 어려워질 것이다.
  • getter메소드만으로 외부에서 객체의 상태를 변경하지는 못하지만 그 결과값이 객체의 상태를 변경시키는데에 사용될 수 있다.
  • 변경되지 않는 인스턴스에 대해서도 setter로 접근이 가능해져 객체의 일관성, 안정성이 보장받기 힘들다. (setter가 가능하다는 것은 불변하지 않다는 것이다)

'공부 > 자료조사' 카테고리의 다른 글

DAO과 DTO그리고 Entity  (0) 2022.04.03
MySQL 과 H2  (0) 2022.04.01
Maven vs Gradle  (0) 2022.03.29
Spring vs Spring Boot  (0) 2022.03.28
DNS의 원리  (0) 2022.03.27