사람들이 직장에서나 온라인에서 비즈니스 로직에 대해 많이 이야기하는 것을 들었습니다.이 사이트에서 이에 대한 몇 가지 질문을 읽었지만이 용어는 여전히 의미가 없습니다. 예를 들어, 다음은 종종 내가 볼 수있는 몇 가지 설명입니다.
"비즈니스 로직은 실제 비즈니스 규칙을 인코딩하는 프로그램의 일부입니다." 내가 읽은 대부분의 정의는 이와 같은 원형입니다.
"비즈니스 로직은 특정 애플리케이션에 고유 한 모든 것입니다." 실수로 기존 타사 소프트웨어를 사용할 수있는 바퀴를 재발견하지 않는 한 이것이 "특정 응용 프로그램은 비즈니스 논리에 지나지 않습니다"와 어떻게 다른지 알 수 없습니다. 따라서 질문 제목입니다.
"데이터 액세스 계층 위와 GUI 계층 아래에 비즈니스 로직 계층이 있어야합니다." 내가 작성한 코드에서 데이터베이스 접근자는 액세스 해야하는 데이터를 알아야하고 UI 코드는 올바르게 표시하기 위해 표시되는 내용에 대해 많이 알아야하며 실제로는 할 일이 없습니다. 클라이언트와 서버간에 데이터를 전달하는 것 이외의 두 위치 그렇다면 실제로 비즈니스 로직 계층으로 들어가는 것은 무엇입니까?
"비즈니스 로직은 프리젠 테이션 로직과 분리되어야합니다." 우리가받는 대부분의 기능 요청은 비즈니스상의 이유로 프리젠 테이션 로직을 변경하는 것입니다. 비즈니스 규칙 중 하나가 기본적으로 미국 정부 채권 가격을 32 번째 표기법으로 표시하는 경우 (사용자가 구성 할 수있는 UI 제공) 프리젠 테이션 논리는이 규칙이 완전히 구현되지 않은 경우이 규칙이 존재한다는 사실을 최소한 알아야합니다. 또한 UX 디자인의 주요 부분은 사용자가 소프트웨어가 구현하려는 비즈니스 규칙을 이해하도록 돕는 것 같습니다.
실제로 비즈니스 로직 만 수행하는 팀에 소속되어 있고 모든 비 비즈니스 로직이 다른 팀에 의해 수행되고 있습니까? 아니면 "비즈니스 로직"의 전체 개념이 특정 응용 프로그램이나 아키텍처에서만 작동 할 수있는 별도의 개체입니까?
답변을 구체적으로 작성하려면 : Domino 's Pizza 앱을 다시 구현해야한다고 가정하십시오. 비즈니스 로직은 무엇이며 해당 앱의 비 비즈니스 로직은 무엇입니까? 그리고 피자 정보의 대부분이 데이터 액세스 및 프리젠 테이션 레이어로 유출되지 않고 피자 주문 비즈니스 로직을 자체 코드의 "레이어"에 넣는 것이 어떻게 가능할까요?
업데이트 : 우리 팀은 아마도 90 %의 UI 코드를 수행하고 비즈니스 로직이라고 부르는 것의 대부분은 다른 팀이나 회사에서 온다는 결론에 도달했습니다. 기본적으로 우리의 응용 프로그램은 모니터링재무 데이터 및 거의 모든 기능은 사용자가보고있는 데이터와 보는 방식을 사용자 지정할 수있는 방법입니다. 구매 또는 판매는 진행되지 않으며 (우리는 그렇게하는 회사의 다른 앱과 비트를 통합하지만) 실제 데이터는 많은 외부 소스에서 제공됩니다. 그러나 사용자는 "모니터"의 사본을 다른 사용자에게 보내는 것과 같은 작업을 수행 할 수 있으므로 비즈니스 로직으로 간주 될 수있는 세부 정보를 처리 할 수 있습니다. 실제로 현재 백엔드 코드 중 일부와 통신하는 모바일 앱이 있으며 이상적인 세계에서 UI와 공유하기를 원하는 프론트 엔드 코드의 부분을 정확히 알고 있습니다 (기본적으로 quasi-MVC의 M). 나는 그것이 우리를위한 BLL 인 것 같아요.
나는 "비즈니스 로직"이 무엇을 의미하는지에 대해 더 구체적으로 이해했기 때문에 user61852의 대답을 받아들이고 있습니다.