강의 내 사이트 링크
- Wikipedia contributors, "Value object," Wikipedia, The Free Encyclopedia, https://en.wikipedia.org/w/index.php?title=Value_object&oldid=1057468422 (accessed July 3, 2022).
- Wikipedia contributors, "Data transfer object," Wikipedia, The Free Encyclopedia,
- https://en.wikipedia.org/w/index.php?title=Data_transfer_object&oldid=1015254260 (accessed July 3, 2022).
- Wikipedia contributors, "Entity," Wikipedia, The Free Encyclopedia, https://en.wikipedia.org/w/index.php?title=Entity&oldid=1088438680 (accessed July 3, 2022).
- Wikipedia contributors, "Data access object," Wikipedia, The Free Encyclopedia, https://en.wikipedia.org/w/index.php?title=Data_access_object&oldid=1063130973 (accessed July 3, 2022).
- Martin Fowler, "TellDontAsk," martinfowler, The Free Encyclopedia, https://martinfowler.com/bliki/TellDontAsk.html (accessed July 3, 2022).
- 위키백과 기여자, "덕 타이핑," 위키백과, , https://ko.wikipedia.org/w/index.php?title=덕_타이핑&oldid=31557825 (2022년 8월 5일에 접근).
보강설명
엔티티에 대한 추가 설명 (아래 내용은 헷갈릴 수 있으니 안 읽어도 괜찮아요!)
entity에 대한 정의를 설명하는 부분에서 Wikipedia에 있는 entity 정의를 믿을 수 있냐고 여쭤보시는 분이 계십니다. 그래서 "entity ... usually stored in database."라는 말에서 usually라고 적힌 게 틀린 말 아니냐고 물어보시는데요.
네, 맞습니다! 위키피디아의 usually라는 말이 사실 틀린 거고 always가 되어야 하는 것일 수도 있습니다. 다만 만약 그렇다면, "entity와 database entity는 다르다"라는 통념이 존재해선 안 됩니다. 애초에 이 통념 자체가 entity는 db랑 연관이 없다는 말이기 때문이거든요.
그럼 이렇게 반문할 수도 있습니다. "애초에 entity라는 용어 자체가 DBMS에서 정의된 언어다. 그래서 개발에서 말하는 entity는 여기서 파생된 단어이기 때문에, DB와 강한 밀접한 연관 관계를 맺는 게 맞다"라고요. 그런데 만약 그렇다면, 두 가지 문제가 있다보는데요.
- 여전히 "entity와 database entity는 다르다"라는 통념이 설명이 안됩니다. 논지에 따르면 Entity는 DBMS에서 파생된 단어니까요. 같은 개념이어야 한다는 것이거든요.
- entity의 정의에
식별가능하다와, 생명주기를 갖는다라는 설명이 들어갈 필요가 없고, 그래선 안 됩니다. 실제로 DB 테이블은 Primary key 없이 테이블 생성이 가능하기 때문입니다.
혼란스러우실 겁니다. 아쉽게도 이러한 개발 용어를 정의해주는 거버넌스가 있는 게 아니기 때문에, entity같이 일반적인 개념에 완벽한 정의가 있기 힘들기도 하고요. 다만 저는 객체지향에서 말하는 Entity는 단순히 데이터베이스의 범주를 넘어서는 개념이라 생각하고 있습니다. 그렇기 때문에, 이런 설명을 해드린 겁니다. 어느 쪽을 믿고 따를지는 여러분이 선택하면 될 일입니다. 항상 의문을 품고, 의심하고, 본인만의 정의를 만들어 나가시는 것 너무나 좋습니다. : )