[코어자바스크립트] 변수 선언과 데이터 할당
[코어자바스크립트] 변수 선언과 데이터 할당
📋 [ 독서목록 ] 시리즈 몰아보기 (1)
🚗 현대인을 위한 3줄요약.
기본형
데이터와참조형
데이터 모두 주솟값을 복사한다. 다만 그 과정에 있어서 차이가 있을 뿐이다.
📚 들어가기에 앞서...
해당 문서는 도서 코어 자바스크립트
의 내용에서 발췌하였습니다. 더 자세한 내용은 아래 링크를 참고해 주시길 바랍니다.
📌 객체의 역할과 책임, 협력
카페에서 음료를 주문한다는 상황을 가정해보자. 손님, 바리스타 등의 사람을 객체
로, 음료의 주문을 메세지
로, 요청을 처리하는 것(주문전달, 음료제조 등)을 메소드
로 해석했을 때 이를 객체지향
이라 할 수 있겠다.
주제가 객체지향
인 만큼 객체
를 중심으로 생각했을 때 객체와 객체는 저마다의 역할
을 수행하기 위해 존재하며 메세지
를 통해 request
와 response
를 주고받는다. 역할을 부여받은 객체들은 각각 기능을 수행할 책임
이 있고 이 과정에서 협력
이 발생하게 된다.
👉 협력
현대사회에서 혼자서 모든 일을 수행하는것은 불가능에 가깝다. 문제를 해결하고자 한다면 해당 문제 해결에 도움이 되는 객체
에게 요청(request)
를 하게 되며 요청받은 객체
는 역할을 수행한 후 요청 주체에게 응답(response)
하게 된다.
👉 역할과 책임
역할을 기준으로 객체를 분리한다면 아마 다음과 같을것이다.
- 손님 : 음료를
요청
하고 주문한 음료를수령
하는 역할 - 카운터 : 손님의
요청
을 바리스타에게 전달하고 바리스타의응답
을 손님에게 전달하는 역할 - 바리스타 : 카운터의
요청
에 의해 음료를제조
하고 카운터에게응답
하는 역할
주어진 역할을 수행하는 것을 본인의 책임
으로 볼 수 있기에 명확한 역할을 구분하는 것이 중요하며 이를 위해선 다음과 같은 역할/책임의 특성을 고려할 필요가 있다.
하나의 객체
가2개 이상
의 역할을 수행할 수 있다.- 규모가 작은 동네 카페의 경우 카운터가 바리스타의 역할을 동시에 수행해도 문제없다.
반대로
여러 객체
가하나의 역할
을 수행할 수 있다.- 능률 향상을 위해 2명 이상의 바리스타를 고용해도 된다.
역할은
대체 가능성
을 내포하고 있다.- 손님 입장에선 바리스타가 누구인지는 전혀 상관없다. 문제가 발생할 경우 해당 바리스타를 해고하고 새로운 바리스타를 고용하면 그만이다.
객체는 스스로 책임을 수행할 방법을 정할 수 있다.
- 모든 카페의 바리스타는 손님에게 음료를 제공한다는
동일한 책임
을 부여받지만 각 프렌차이즈 별로 다른 원두, 장비, 로스팅 방법 등을 사용한다. 이를다형성(polymorphism)
라고한다.
- 모든 카페의 바리스타는 손님에게 음료를 제공한다는
📌 객체를 지향한다는 의미
당장 떠오르는 클래스
, 메소드
따위에 매몰되지 말고 객체의 역할
, 책임
, 협력에
집중해야 한다. 결국 객체지향이란 상호작용하는 자율적인 객체
들의 공동체를 통해 시스템을 분할
하는 방법이다.
참고문서
💡 로그인 하지 않아도 댓글을 등록할 수 있습니다!