상세 컨텐츠

본문 제목

Service vs Dao

Side Project/Public

by NayC 2021. 6. 11. 19:06

본문

728x90

Controller <- Service <- Dao 

(1) NoticeDao 통해서 SQL 연결시켜 함수 이용하게 하고 

(2) (1)을 통해서 비즈니스 서비스 만들고 (ex - hitUp, likeUp...) 

(3) (2)를 통해 Controller 에서 M, V 역할을 수행하고

 

서비스 Dao
사용자가 우리 페이지에서 이용할, 말그대로 정말 '서비스'를 넣어준다고 생각
- get같은 경우는 Dao랑 겹칠 수밖에 없음 (db에서 가지온 결과를 사용자가 봐야하기 때문에)
sql '식'을 적어준다고 생각 

get (selcect)은 페이징 처리 등이 있어서 여러 종류가 있다고 하더라도, 

나머지 insert, update, delete는 이거로 다 '통합'해서 생각하기.
그리고 서비스에서는 그 객체를 이용해서 DAO의 기능을 여러개 사용하여 서비스를 마련하는 것
(아래 그림 참고) 
DAO의 역할은 SQL을 객체화하는 작업이라고 보면 됨
ex) SQL에서 update가 있다면 DAO에 update 함수가 있는 것
트랜잭션은 무조건 '서비스'에서 처리
 
서비스 함수명을 보면 굉장히 비즈니스 친화적인 이름이다.
실제로 이렇게 비즈니스와 연관지어 이름을 지어야 한다고 함! 
- 그래야 기획 쪽에서 '이 부분 이상해요' 하면 바로 찾아볼 수 있도록 
- 서비스 부분은 비즈니스 처리! 

 
예시 ) 사용자가 이미지를 올리는 행위를 생각해보자. 
updateProfileImage()  update 
예시 ) 사용자가 댓글에 '좋아요'를 누르는 행위를 생각해보자. 
likeToggle() 
cf) 좋아요를 다시 눌러서 취소시킬 수도 있으니 이런건 이름으로 Toggle을 해주자. 
update

 

https://ubermensch-with.tistory.com/371

 

cf) DAO를 여러개 만들어야 함 - 테이블마다 필요함

https://ubermensch-with.tistory.com/448?category=938525 

 

https://ubermensch-with.tistory.com/390

 

728x90
반응형

관련글 더보기