우리 청원 사이트에서는 하나의 청원 게시글에 여러 사용자가 동의를 한번씩 할 수 있다.
이 때 청원 게시글의 동의 수를 어떻게 가져올 수 있을까?
우리는 이를 두 가지 관점에서 바라보고 고민했다.
Agree 객체가 청원게시글 id, 사용자 id를 가지고 있게 한다.
게시글은 동의에 대해 모르는 구조이다.
이 후, 해당 청원 게시글 id를 가지고 있는 agree 객체의 수를 조회한다.
이 때 DB조회가 일어나고, 동의 수가 많아질수록 DB 쿼리 비용이 증가한다.
청원 게시글 객체에게 agreeCount를 두고 그걸 조회한다. 동의가 될때마다 agreeCount를 증가시킨다.
이 때는 동의 수를 가져오기 위한 DB조회가 이루어지지 않는다.
그러나, 게시글 객체가 가지고 있는 동의수가 실제 DB상의 동의수와 일치하지 않을 수도 있는 위험성도 존재한다.
다만 게시글 객체가 동의 객체에 대해 물어보는게 아니라 객체가 직접 동의 객체 대한 정보를 가지고 있는 구조라 객체지향적이라 보긴 힘들다.