본문 바로가기
  • AI (Artificial Intelligence)
Programming/Why

Get Set..

by 로샤스 2015. 10. 1.

누군가가.. 혹은 내 자신이 물어볼때 알고있거나 찾아서 답변해 줄 수 있는게 지식이라 생각한다.

나는 얼마전부터 리마인드(remind) 이벤트를 진행중이다.


리마인드 이벤트란 개인적으로 보았던 책을 다시본다던지.. 혹은.. 내가 알고있던 개념을 다시 정립한다던지 하는 것을 말하며, 거창하거나 디테일한 것이 아닌 내면을 닦는? 행동이다.


첫번째 리마인드!!


Java에서 Get, Set은 왜쓰는가?


쓸데없이 Get, Set을 왜 쓰지 하는 물음을 뒤로 한채로 시키는 대로 느낌 대로 사용하였다. 나름 개발할 줄 안다 생각했으니.. 근데 어렴풋하게 기억만 나지 왜 이렇게 써야하는가 알면서도 모르겠다.

어떤 사람이 모 사이트에서 질문했던 내용은 다음과 같다.


Question.

자바 싱글톤에 대해 좀 자세히 알려주세요 

오늘 배웠는데 너무 헷갈리네요..
왜 사용하는지도 알려주세요
아 그리고
get 이랑 set 왜 써요?? 
그냥 모든 변수를 다 default나 public으로 하면 될 것을 가지고 왜 private를 쓰고 난리죠? 짜증나게 ㅡㅡ
이것도 알려주세요 제발 ㅠㅠㅠㅠㅠㅠㅠㅠㅠ 


와.. 챙피해서.. 배웠다고.. 안다고.. 물어보지 못했던 이런 속마음이 뻥 뚫리는 것 같다.
시원하다. 나도 짜증난다.. 10년전에 했어야 하는 질문을..

배운 사람이건 나이든 사람이건 모르면 물어봐야하는 것이 당연한 것인데.. 우리는 그것을 너무도 못하고 있다.

한 답변자가 정말 성의있게 작성해 주어서 그대로 올린다.


Answer.

1. 싱글톤은 하나의 객체만 생성되는 것을 보장하기 위해서 씁니다.
즉, 클래스로 객체를 사용할 때.. 전부 new 해서 사용한다면 여러개의 객체가 생성되게 됩니다. 반드시 한 군데서 처리해야 한다거나.. 여러 개의 객체생성이 메모리 낭비라고 여겨지는 경우에 사용합니다. 예를 들어 DB에 값을 넣어야 하는데.. 같은 일을 하는 객체가 여러 개라면?? 중복 가능성이 있습니다. 이런 문제를 해결하는 많은 방법이 있겠지만.. 쉽게 사용할 수 있는 방법 중에 하나가 싱글톤 패턴입니다.

2. get/set은 캡슐화를 위해서 사용합니다.
객체가 가지고 있는 정보를 다른 객체(사람, 프로그램)이 함부로 참조할 수 없도록 하기 위함입니다. 그래서 private 선언 후에.. get/set을 이용해서 자료를 참조/변경할 수 있습니다. 이렇게 함으로써 더불어 얻어지는 이점이.. 자료가 손상될 위험이 적어집니다. set을 이용해서 정형화된 자료만 넣으니까요.


감사합니다.

많은 것을 배워갑니다. 용기도 지식도..











출처 : http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040201&docId=223518997&qb=amF2YSBnZXQgc2V0&enc=utf8&section=kin&rank=2&search_sort=0&spq=1











댓글