현재 구조
DB에서 데이터를 읽어오는 Selector 안에 Repository가 있다.
근데 Repository는 Updater도 쓴다.
외부 주입을 지키면서 Selector와 Updater가 같은 Repository를 쓰면 좋을 거 같다.
왜? 보통 Load 해온 데이터를 Update 할 경우가 많으니까. 물론 아닌 경우도 있음.
근데 왜 같이 쓰려고 해? 메모리 할당을 좀 줄일 수 있지 않을까?
고민한 방법은 두 가지
service마다 사용하는 Repository들은 다르다.
그러니까 service를 생성할 때, Repository를 넣어주자.
1번이 먼저 아이디어가 생각나고, 그 이후에 2번이 생각 났다.
그러다 보니까 1번에서 발생할 이슈가 생각 났다.
데이터가 일반적으로 어떤 것이 업데이트 될지 특정할 수 있으면 가능하지만,
예를 들어 상점에서 어떤 것을 산다던가, 마비노기 모바일에서 다이스를 열면 장비가 뜨는데 그 장비의 부위가 랜덤이라던가,, 등등 랜덤인 곳이 어렵다.
이런 곳에서는 외부 주입을 할 경우, 랜덤에 추가된 모든 데이터에 관한 Repository를 미리 추가를 해놔야 할 거 같다는 생각이 들었다.