특정 조건으로 select 한 값으로 insert 및 delete 를 수행한다고 하였을때
위 세가지 행위가 하나의 메서드 단위로 묶여 서비스단에 위치해도 되는 것인지
아니면 컨트롤러에서 분기하여 처리해야하는지 궁금합니다.
어떤 방식이 나은지 주로 사용하는 방식은 무엇인지 궁금합니다.
가르침을 주시면 감사하겠습니다.
단순한 애플리케이션이라면 그냥 컨트롤러에 비즈니스 로직을 구현할 수도 있
겠지만 좋은 습관은 아니니 서비스나 도메인 객체 또는 비즈니스 객체로 로직
을 옮기도록 하십시오.
그리고 중요한 부분은 아닐지 모르지만 첨언하면 select, insert, delete 같
이 DBMS 용어를 사용하면 DB 중심적으로 사고하게 되어 좋은 비즈니스 로직을
만드는 데 방해가 될 수 있으니 find, add, remove 같은 다른 표현을 써보는
것도 좋습니다.
간단한 코드를 보여주시면 더 정확히 토론할 수 있을 듯 합니다.
10. 12. 1. 오후 10:20, codeS 쓴 글:
트랜잭션 처리를 보통(?) 서비스 단위로 설정하는 경우가 많은데
서비스 단위로 트랜잭션 처리를 하도록 설정하고
컨트롤러에서 로직을 분기를 하면
어떤건 insert가 되어 있고 어떤 건 delete가 안되어 있고 하는 경우가 발생할수 있습니다.
한번에 돌아가는 로직이라면 같은 서비스 내에서 로직이 이루어져야
문제가 생겼을때 트랜잭션처리(rollback)을 시킬수 있을듯 합니다.