비지니스 로직 관련 질문입니다.

420 views
Skip to first unread message

codeS

unread,
Dec 1, 2010, 8:20:55 AM12/1/10
to Korea Spring User Group
애노테이션 MVC 기반에서는 비지니스 로직이 어디에 위치해야 하는지 궁금합니다.

특정 조건으로 select 한 값으로 insert 및 delete 를 수행한다고 하였을때

위 세가지 행위가 하나의 메서드 단위로 묶여 서비스단에 위치해도 되는 것인지

아니면 컨트롤러에서 분기하여 처리해야하는지 궁금합니다.

어떤 방식이 나은지 주로 사용하는 방식은 무엇인지 궁금합니다.

가르침을 주시면 감사하겠습니다.

Sungchul Park

unread,
Dec 1, 2010, 7:56:59 PM12/1/10
to ks...@googlegroups.com
원칙적으로 MVC 기술의 유형이 비즈니스 로직 구성 방식에 전혀 영향을 미치
면 안 됩니다. 그러니까 기존에 하시던 방식대로 하시면 됩니다. 만약 기존의
방식이 MVC 기술에 따라 영향을 받게 되어 있었다면 기존에 잘못 작업하신 부
분이 있는 것일테고요.

단순한 애플리케이션이라면 그냥 컨트롤러에 비즈니스 로직을 구현할 수도 있
겠지만 좋은 습관은 아니니 서비스나 도메인 객체 또는 비즈니스 객체로 로직
을 옮기도록 하십시오.

그리고 중요한 부분은 아닐지 모르지만 첨언하면 select, insert, delete 같
이 DBMS 용어를 사용하면 DB 중심적으로 사고하게 되어 좋은 비즈니스 로직을
만드는 데 방해가 될 수 있으니 find, add, remove 같은 다른 표현을 써보는
것도 좋습니다.

간단한 코드를 보여주시면 더 정확히 토론할 수 있을 듯 합니다.

10. 12. 1. 오후 10:20, codeS 쓴 글:

warnee

unread,
Dec 1, 2010, 8:05:52 PM12/1/10
to Korea Spring User Group
위의 특정 조건으로 select 한 값의 insert 및 delete를 수행하실때

트랜잭션 처리를 보통(?) 서비스 단위로 설정하는 경우가 많은데

서비스 단위로 트랜잭션 처리를 하도록 설정하고
컨트롤러에서 로직을 분기를 하면
어떤건 insert가 되어 있고 어떤 건 delete가 안되어 있고 하는 경우가 발생할수 있습니다.

한번에 돌아가는 로직이라면 같은 서비스 내에서 로직이 이루어져야

문제가 생겼을때 트랜잭션처리(rollback)을 시킬수 있을듯 합니다.

Reply all
Reply to author
Forward
0 new messages