원본 출처 :


http://www.terms.co.kr/


비즈니스 로직이란 업무에 필요한 데이터 처리를 수행하는 응용프로그램의 일부를 말한다. 이것은 데이터 입력, 수정, 조회 및 보고서 처리 등을 수행하는 루틴, 좀더 엄밀히 말하면 보이는 것의 그 뒤에서 일어나는 각종 처리를 의미한다. 대개 클라이언트 프로그램은 사용자 인터페이스와 비즈니스 로직으로 구성되며, 서버 프로그램은 대부분 비즈니스 로직만으로 되어 있다. 특히, 클라이언트/서버 모델인 경우에는 이외에도 통신링크가 추가되지만, 통신과 관련된 인프라스트럭처는 사용자 인터페이스처럼 비즈니스 로직의 일부는 아니다.


http://zetawiki.com/wiki/%EB%B9%84%EC%A6%88%EB%8B%88%EC%8A%A4_%EB%A1%9C%EC%A7%81


비즈니스 로직


business logic, business logic layer, business tier, logic tier

비즈니스 로직, 비즈니스 로직 계층, 비즈니스 티어, 비즈니스 계층, 논리 계층


업무절차를 정보시스템으로 구현하기 위한 자료구조와 알고리즘

데이터베이스와 UI간 정보교환을 제어하는 알고리즘

기술적인 표현이 아니라 개념적 표현임

3계층 소프트웨어 아키텍처에서 가운데 논리 계층













http://okky.kr/article/139274


보통 코딩시

 

action -> manager-> dao

 

방식으로 많이 쓰던데요

 

액션단 매니저단 dao단에서 각각 무엇을하는지

명확하게 좀 가르쳐 주실분 계신지요

 

제 생각으로는

 

액션에서는 파라미터 셋팅하고

매니저 에서는 비지니스 로직?

dao단에서는 당연히.. 쿼리를 날리는걸로 알고있는데

 

 

액션단에서 비지니스 로직도 하고 dao를 바로 콜하면 안되는건가요?

보통 비지니스 로직이 매우 간단하여..

액션단에다 대충 기술하고.. 구지 매니저 클래스에서

다시 dao를 호출할 필요가 없는 경우가 만터라구요

'(매니저 클래스에서 하는일은 그냥dao 호출뿐인데

클래스도 인터페이스까지 2개를 만들어야하구요...)

 

아무튼 위문제에 대해서

다들 어떻게 하시는지

그냥 패턴에 따라 코딩하시는지

아니면 저런 경우에는 액션에서 dao를 바로 콜하시는지

궁금합니다...



Action (controller 역할을 합니다. req의 유입, 분기, res 를 전달합니다)
Service (비즈니스 로직을 구현합니다,)
Dao (DB 자원을 억세스합니다.)



보통 클래스를 분리하는 이유는, 하나의 파일이 너무 많은 책임과 권한을 갖게 되면 당연히 스파게티 소스가 되고, 길어지기 마련이며, 유지보수하기 어렵기 때문입니다.

작은 단위의 unit 테스트나, 디버깅을 쉽게 가져가려는 부분, 서비스 영역의 비즈니스로직만 다이렉트 콜 해야 할 경우, 개발자가 여럿이 한 업무를 개발할 경우, MVC에 충실한 디자인을 고려해야 할 경우, 적절한 추상화를 해야 할 경우 등등등 파일의 영역을 역할에 맞게 분리하는것에 대해서는 oop적인 측면에서 장점이 많기 때문에 영역을 나누는것이죠.

그러면 어떻게 나누어야 하나?, 어떤 정도 레벨까지 추상화를 할것인가?
이건 정답이 없습니다. 각 상황에 맞게, 각 인력의 역량에 맞게 '잘' 하면 되는거죠

  • 퀵님 그렇다면...

    만약 비지니스 로직이 없거나 매우 간단하다면
    Service 단 호출 없이 바로 DAO를 호출해도 되는건지요?

    몇개 클래스만 DB처리후 소켓통신을 하고 나머지 클래스느 죄다 
    서비스단 없이 액션단에서 DAO를 호출해도 될것같아서 말입니다.

    이렇게 해도 되는걸까요 ^^
  • 비지님 struts - ibatis 로 구성된 소스 한번 보시구요..

    각 struts - ibatis의 jar까서 디랙토리 구조와 호출 구조보면 답이 나옵니다.
    왜 디렉토리를 그렇게 이름지었을까 ? 이고민만 하시면 해결됩니다. 

    바로 DAO를 호출해도 되는데요 만약 비지니스 로직이 추가되면?
    그래서 프레임워크 사상을 따르는것이 좋습니다. 악간의 반복코딩이 되더라도
    이미 통상적인 Layer는 존중을 하는게 최고입니다



 



정보를 좀 더 수집해야할 듯하다.





'프로그래밍 > 웹 프로그래밍' 카테고리의 다른 글

html 중급?  (0) 2016.02.21
HTML 기초  (0) 2016.02.21
비즈니스 로직(Business logic)?  (0) 2016.02.14
웹서버(Web Server) / 웹 서버 어플리케이션(WSA)  (0) 2016.02.14
웹 프로그래밍 기초  (0) 2016.02.14
ASP(Active Server Page)  (0) 2016.01.28
Posted by GENESIS8

댓글을 달아 주세요