일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Cosmos
- 컨테이너
- 코딩 테스트
- Routing
- 라우팅프로토콜
- Container
- snort
- 데이터베이스
- 라우터
- database
- Router
- osi7layer
- 스노트 룰
- coding test
- programmers
- 스노트
- MySQL
- TDD
- 리눅스
- 코딩테스트
- OSI7계층
- 라우팅
- db
- Snort Rule
- Linux
- 도커
- 트레바리
- docker
- 프로그래머스
- Python
Archives
- Today
- Total
Simple is IT, 누구나 보고 누구나 깨닫는 IT
값 객체 패턴(value object pattern) - 미완성 본문
값 객체 패턴(value object pattern)
TDD(Test driven development)에 대해 연마하다가 값 객체 패턴이라는 단어를 발견했어요.
각 객체 패턴은 객체를 값처럼 쓸 수 있다는 것입니다. 제약사항 중 하나는, 객체의 인스턴스 변수가 생성자를 통해서 일단 설정된 후에는 변하지 않음을 보장하죠.
값 객체를 사용하면 별칭(aliasing) 문제에 대해 걱정할 필요가 없다는 장점이 있어요. 테스트 주도 개발의 저자 켄트 벡(Kent Beck)은 이 별칭 문제에 대해 경험담을 꺼냈습니다.
수표가 하나 있는데 여기에 $5를 설정하고, 또다른 수표에도 아까 설정했던 $5를 설정했다고 치자. 내 경험 중에서 가장 형편없었던 버그는 부주의하게 두 번째 수표의 값을 변화시키는 바람에 첫 번째 수표의 값까지 변하게 되는 문제로 인한 것이었다. 이게 별칭 문제다.
만약 값에 대한 객체를 따로 만들었다면 어땠을까요? 아마 별칭에 대해 신경쓰지 않아도 될 것입니다. $5 가 있을 때, 그것이 영원히 $5 임을 보장받을 수 있다는 뜻이죠. 누군가가 더 높음 값을 원한다면 새로운 객체를 만들어야 할 것입니다.
'Simple is IT > Programming' 카테고리의 다른 글
Rest API Architecture(작성 중) (0) | 2021.11.07 |
---|---|
JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가. (0) | 2021.10.31 |
Compile, Interpret | 컴파일과 인터프릿은 어떤 차이일까? (0) | 2020.09.02 |
[Github] 파이썬을 파이썬답게 작성하는 코드를 만들자! (0) | 2020.08.31 |
[Github] Node.js를 공부합니다! (0) | 2020.08.31 |
Comments