TIL - 항해99 73일차

스브코·2022년 1월 12일
0

오늘 배운 내용

중간평가가 끝난 후 12조의 feedback에서 getter/setter를 사용하는 이유와 setter를 사용하지 않는 이유에 대해 물어보았는데, 기본적인 내용이지만 정확히 모르겠어서 조금 공부를 해보았다.


Getter/Setter를 사용하는 이유

  1. 데이터 무결성을 지키기기 위해서이다.

ex) 만약 음식의 가격, 개수가 음수가 온다면 데이터 형식에 맞지 않기 때문에 getset 함수 내에서 무결성을 지켜주어야한다.

  1. 캡슐화를 통한 정보 은닉

ex) 객체의 내부 속성을 외부에서 접근하지 못하도록 하고 오직 엑세스 함수로만 접근하게 한다. 객체의 모든 속성이 항상 필요하지 않기 때문에 필요한 부분만 가져와서 집중할 수 있도록 한다.


Setter를 사용하지 않는 이유

setter 가 없는 것은 불변객체라는 것이고, 불변객체를 쓰는 이유는 안정적인 data 공유이다. 불변객체는 생성 이후 변경되지 않았다는 사실이 보장되기 때문에, 캐싱하기 좋고 여러 쓰레드가 공유할 때 신뢰할 수 있다. hash 함수와 equals 를 정의해서 동일성 비교하기에도 좋다.

예를 들어, 객체 안의 한 속성만 가변적으로 처리하고 싶은데 setter를 선언해 버리면 모든 속성이 setter에 의해 변경가능해져 버리기 때문에 불변 객체에서 멀어진다.

또한, setter를 여기저기 남발하면 나중에 유지보수 하기에 불편하기 때문에 최대한 build패턴이나 생성자 패턴을 사용하여entity자체에서 유지보수를 진행할 수 있도록 하는것이 좋다.


출처:

https://okky.kr/article/807224,

https://ecsimsw.tistory.com/387

profile
익히는 속도가 까먹는 속도를 추월하는 그날까지...

0개의 댓글