MVC 모델에서 Business logic의 위치.

1,713 views
Skip to first unread message

환군

unread,
Sep 24, 2012, 2:15:51 AM9/24/12
to scala...@googlegroups.com
Scala 언어가 아니지만.

언젠가 스터디에서 MVC 모델에서 Business Logic의 위치에 대한 논의가 있어서 조금 찾아보았습니다

(사실 요즘 front단에서도 MVC 모델로 구현하는데.. 코드가 좀 지져분해져서;; 정리를 하다가 기억나서 찾아보았습니다)


질문 주제는
ASP.NET MVC - Should business logic exist in controllers?


이었고, 여기 링크중에 괜찮은 글이 있기에 따로 링크를 뽑았습니다.

무려... 2006년 글이네요:)


꼭 MVC 모델로 강제한다면, 왠만큼 중요한 비즈니스 로직 부분은 Model에 넣어버리는게 좋은거 같은데...

어떠신가용?

환군

unread,
Sep 24, 2012, 2:21:37 AM9/24/12
to scala...@googlegroups.com
아 덧붙이자면
Korea Spring User Group 의 글 포스팅 중에


위 글에도 논의 되어있는데.

원칙적으로 MVC 기술의 유형이 비즈니스 로직 구성 방식에 전혀 영향을 미치 
면 안 된답니다.

fupfin

unread,
Sep 24, 2012, 2:27:12 AM9/24/12
to scala...@googlegroups.com
좋은 커뮤니티의 글을 링크하셨네요.
(답변도 감동적이고... -_-);;;

12. 9. 24. 오후 3:21, 환군 쓴 글:
--
Google 그룹스 '라 스칼라 코딩단' 그룹에 가입했으므로 본 메일이 전송되었습니다.
이 그룹에 게시하려면 scala...@googlegroups.com(으)로 이메일을 보내세요.
그룹에서 탈퇴하려면 scala-korea...@googlegroups.com로 이메일을 보내주세요.
웹에서 이 토론을 보려면 https://groups.google.com /d/msg/scala-korea/-/jG1U_tXXokwJ을(를)를 방문하세요.
더 많은 옵션을 보려면 https://groups.google.com /groups/opt_out을(를) 방문하세요.
 
 

환군

unread,
Sep 24, 2012, 2:29:05 AM9/24/12
to scala...@googlegroups.com
ㅎㅎㅎㅎ 그러고 보니;; ㅎㅎㅎㅎㅎ;;;

fupfin

unread,
Sep 24, 2012, 3:00:10 AM9/24/12
to scala...@googlegroups.com
저도 직접적인 답변은 아닌데요.

종종 아키텍처적인 결정이나 관점이 세부적인 SW 설계를 제한하는 일이 있는
데 이런 일은 아키텍처가 넘어서는 안 되는 선을 넘는 상황이라고 봅니다.

예를 들어 Web - Service - Dao 라는 멀티 레이어드 아키텍처를 설정했을 때
Service 레이어가 XXXService라는 객체를 의미한다고 생각하는 일이 많은데
(저도 예전에 그렇게 오해한 일이 있고...) 절대 그렇지 않죠. XXXService라
는 객체는 서비스 레이어를 대표하는 바운더리 객체일 뿐 그 안에서 충분히
필요에 따라 다양한 설계 패턴이나 다양한 결정에 따른 객체를 만들어 조합할
수 있는 것이니까요.

MVC도 마찮가지 입니다. MVC는 UI와 관련된 (요즘은 패턴이라고 부르는...)
아키텍처 구조이지 애플리케이션 전체를 설명하는 틀이 아닙니다. 더구나 웹
의 UI는 웹의 특성상 원칙적인 MVC로 설명이 안 되죠.

링크거신 스텍오버플로의 그림이 기막힌데요.

http://i.stack.imgur.com/VqqTF.jpg

여기를 보면 View Model과 Domain Model과 Data Model로 Model를 나누고 있습
니다. 이런 구분이 스프링 MVC의 철학과 잘 맞네요.

즉, 비즈니스 로직은 MVC의 (View Model인) M에도 C에도 없는 거죠. 그보다
그 뒷단, 비즈니스 서비스 계층 어딘가에 있을 겁니다.

12. 9. 24. 오후 3:15, 환군 쓴 글:
> --
> Google 그룹스 '라 스칼라 코딩단' 그룹에 가입했으므로 본 메일이 전송되
> 었습니다.
> 이 그룹에 게시하려면 scala...@googlegroups.com(으)로 이메일을 보내세요.
> 그룹에서 탈퇴하려면 scala-korea...@googlegroups.com로 이메일
> 을 보내주세요.
> 웹에서 이 토론을 보려면 https://groups.google.com /d/msg/scala-korea/-
> /S1ZEnVGKbDgJ을(를)를
> <https://groups.google.com/d/msg/scala-korea/-/S1ZEnVGKbDgJ%EC%9D%84%28%EB%A5%BC%29%EB%A5%BC>
> 방문하세요.
> 더 많은 옵션을 보려면 https://groups.google.com /groups/opt_out을(를
> <https://groups.google.com/groups/opt_out%EC%9D%84%28%EB%A5%BC>) 방문
> 하세요.
>
>

Reply all
Reply to author
Forward
0 new messages