TIL

TIL-220808 Service란 무엇일까

혹등고래1호기 2022. 8. 8. 23:49

스프링을 시작하고 본격적으로 이제 한주가 또 시작이 됬다. 반복과제는 오늘은 저번주 월요일과 다르게 일과시간안에 해결을 했고 바로 퀘스트를 하러 갔다. 이번 주는 퀘스트가 일단 보이는 것만 3개 특이하게 마카오뱅크의 거래내역부분을 퀘스트로 주셨는데(어쩐지 아샬님이 좀 텐션이 높아보였음) 거래내역 퀘스트는 희미하게 기억이 남아있는 저번 주 마카오뱅크 거래내역 부분과 거의 똑같이 한거 같은데 어렵지 않게 통과를 했다. 

 

그리고 또 다시 TodoList가 우리를 기다린다. TodoList의 제한 사항이다.

오케이 일단은 바로 오늘까지 다 만든다는 기세로 야심차게 시작은 했는데 생각을 많이 하게 하는 부분은 바로 TaskService인데 

나머지 들은 무조건 만들어야 하는 것  이니까 그러려니 하는데 Service를 어떻게 사용을 해야 할까를 한참을 고민했다. 강의에서는 transferService나 AccountService를 만들어 줘서 송금에 관련된 것 과 내 계좌를 찾는 역할을 해주도록 만들었는데 

Taskservice는 도대체 무슨 역할을 해야하지? 저번 주 투두리스트에서 Service객체를 사용을 안하니까 이번 주에 고민을 많이 하게 된다.

 

그러면 일단 service가 뭔가 사전적의미로는 남을 위해서 여러 가지로 봉사하는 것이라고 한다. 그러면 Task에 관련된 일을 뭔가 뒤치닥거리를 해주는 건데 Task객체는 뒤치닥 거리를 해줄 게 딱히 없어보인다. 그러면 남은 건 Repository인데 이 친구를 도와 주는 것이라고 일단 판단을 했다.

 

강의에서는 Repository는 검색의 기능도 가지고 있다고 하는데 현재는 딱히 필요없는 행동인 것 같다. 그러면 TaskRepository는 저장만 해주면 된다. 저장하기 위해서는 TaskRepository에 Task를 채워줘야 하는데 창고에 물건을 채워주는 건 사람이나 기계가 하지 저장소자체가 무언가를 채워넣지 않는다. 그렇게 생각을 해서 여기서 Service는 바로 저장소에 테스크를 가져다 주는 종업원의 역할을 하면 되는 것 같다. 

 

참 어려운 소프트웨어의 세계

 

일단은 지금 판단내린 결과를 바탕으로 오늘안으로 완성하고 빠르게 피드백을 받아보자