비즈니스 로직
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
비즈니스 로직은 비즈니스 객체의 상호 작용을 규정하고 접근 및 업데이트 경로를 시행하는 규칙, 절차, 데이터 변환 및 워크플로우를 포함하는 엔터프라이즈 시스템의 일부이다. 비즈니스 로직은 비즈니스 객체, 워크플로우, 비즈니스 규칙으로 구성되며, 비즈니스 정책을 공식적으로 표현하는 비즈니스 규칙과 함께 데이터 흐름과 처리를 결정한다. 비즈니스 로직은 다중 계층 아키텍처에서 비즈니스 로직 계층으로 분리되어 구현될 수 있으며, 비즈니스 규칙 관리 시스템(BRMS)과 같은 도구를 사용하여 관리될 수 있다.
더 읽어볼만한 페이지
- 소프트웨어 구조 - Ajax
Ajax는 웹 페이지 전체를 새로고침하지 않고 비동기적으로 서버와 통신하여 웹 애플리케이션의 일부를 업데이트하는 웹 개발 기술로, XMLHttpRequest 객체의 등장으로 가능해졌으며 HTML, CSS, DOM, JavaScript, JSON 등의 기술을 통합하여 동적인 사용자 인터페이스를 구현한다. - 소프트웨어 구조 - 멀티테넌시
멀티테넌시는 단일 애플리케이션 인스턴스로 여러 고객에게 서비스를 제공하여 SaaS 및 클라우드 환경에서 비용과 관리 효율성을 높이고 데이터 활용 가치를 창출하는 소프트웨어 아키텍처 방식이다.
비즈니스 로직 |
---|
2. 비즈니스 로직의 정의 및 구성 요소
비즈니스 로직은 비즈니스 객체가 서로 상호 작용하는 방식을 규정하고, 비즈니스 객체에 접근하고 업데이트하는 경로와 방법을 시행한다.[1]
비즈니스 로직은 데이터가 변환되거나 계산되는 방식과 데이터가 사람 또는 소프트웨어(워크플로우)로 라우팅되는 방식을 결정하는 엔터프라이즈 시스템의 일부이다. 비즈니스 규칙은 비즈니스 정책을 공식적으로 표현한 것으로, 비즈니스 로직과 구별된다.[2] 프로세스나 절차는 비즈니스 로직이고, 프로세스나 절차가 아닌 것은 비즈니스 규칙이다. 예를 들어, 새로운 방문자를 환영하는 것은 취해야 할 단계로 구성된 프로세스(워크플로우)이지만, 모든 새로운 방문자를 환영해야 한다고 말하는 것은 비즈니스 규칙이다. 또한, 비즈니스 로직은 절차적이고 비즈니스 규칙은 선언적이다.[3]
비즈니스 로직은 워크플로우와 비즈니스 규칙으로 구성된다.[9]
2. 1. 비즈니스 객체
실생활의 비즈니스 객체(예: 계정, 대출, 여정, 재고 등)를 모델링한 것이다.[1] 비즈니스 객체는 서로 상호 작용을 하며, 이러한 비즈니스 객체에 접근·갱신하는 경로와 방법을 나타낸다.[9]2. 2. 비즈니스 규칙
실생활의 비즈니스 객체(예: 계정, 대출, 여정, 재고 등)를 모델링한다.[9]비즈니스 규칙은 비즈니스 정책을 공식적으로 표현한 것이다. 프로세스나 절차는 비즈니스 로직이고, 프로세스나 절차가 아닌 것은 비즈니스 규칙이다. 새로운 방문자를 환영하는 것은 취해야 할 단계로 구성된 프로세스(워크플로우)이지만, "모든 새로운 방문자를 환영해야 한다"라고 말하는 것은 비즈니스 규칙이다. 또한, 비즈니스 로직은 절차적이고 비즈니스 규칙은 선언적이다.[2][3]
비즈니스 규칙은 비즈니스에 관한 방침(경로, 위치, 수송, 가격, 제품 등)을 표현한 것이다.[9]
2. 3. 워크플로우
문서나 데이터를 한 참여자(사람 또는 소프트웨어 시스템)에서 다른 참여자에게 전달하는 정렬된 작업이다.[1] 예를 들어, 전자 상거래 웹사이트에서 체크아웃 과정(배송 주소 입력, 청구 주소 입력, 결제 방법 선택, 완료 메시지)은 워크플로우에 해당한다.2. 4. 비즈니스 로직과 비즈니스 규칙의 차이
비즈니스 로직은 데이터가 변환되거나 계산되는 방식, 그리고 데이터가 사람 또는 소프트웨어(워크플로우)로 라우팅되는 방식을 결정하는 엔터프라이즈 시스템의 일부이다. 반면 비즈니스 규칙은 비즈니스 정책을 공식적으로 표현한 것이다.[2] 즉, 프로세스나 절차는 비즈니스 로직이고, 프로세스나 절차가 아닌 것은 비즈니스 규칙이다. 예를 들어, 새로운 방문자를 환영하는 것은 취해야 할 단계로 구성된 프로세스(워크플로우)이지만, 모든 새로운 방문자를 환영해야 한다고 말하는 것은 비즈니스 규칙이다. 또한 비즈니스 로직은 절차적이고, 비즈니스 규칙은 선언적이다.[3]예를 들어, 전자 상거래 웹사이트에서 방문자가 장바구니에 항목을 추가하고, 배송 주소를 지정하고, 결제 정보를 제공하는 것은 비즈니스 로직에 해당한다. 이때 웹사이트의 비즈니스 로직은 다음과 같은 워크플로우를 포함할 수 있다.
- 체크아웃 과정에서 발생하는 일련의 이벤트. 예를 들어, 먼저 배송 주소를 묻고, 다음으로 청구 주소를 묻고, 다음 페이지에는 결제 방법이 포함되며, 마지막 페이지에는 축하 메시지가 표시되는 다중 페이지 양식.
한편, 웹사이트에는 다음과 같은 비즈니스 규칙도 존재한다.
- 항목 설명 페이지에서 항목을 두 번 이상 추가하면 해당 항목의 수량이 증가한다.
- 방문자의 주소, 이메일 주소 및 신용 카드 정보가 따라야 하는 특정 형식.
- 신용 카드 네트워크와 통신하기 위한 특정 통신 프로토콜.
3. 비즈니스 로직의 계층 및 위치
비즈니스 로직은 프로그램의 다양한 위치에 존재할 수 있다. 예를 들어, 특정 주소 형식이 주어지면, 비즈니스 로직에 지정된 필드와 일치하는 열을 가진 데이터베이스 테이블을 만들고, 유효하지 않은 데이터가 추가되지 않도록 유형 검사를 추가할 수 있다.
비즈니스 로직은 자주 변경된다. 온라인 소매업체가 새로운 국가로 배송을 시작하면, 허용 가능한 주소 형식 집합이 바뀔 수 있다. 따라서 비즈니스 로직을 구현하는 코드를 격리하거나, 느슨하게 결합하는 것이 바람직하다. 이렇게 하면 비즈니스 로직 변경 시 코드 한 부분에서만 소수의 변경이 필요할 가능성이 높아진다. 멀리 떨어져 있지만 강력하게 결합된 코드는 프로그래머가 필요한 변경 사항 중 일부만 수행하고 시스템 일부를 놓쳐 잘못 작동할 위험이 더 크다.[4]
단일 계층 애플리케이션에서는 프리젠테이션 부분, 비즈니스 로직, 데이터베이스 부분이 융합되어 서로 지식을 공유하며 결합도가 높다. 이 상태에서는 한 곳의 변경을 위해 시스템 전체를 다시 테스트해야 하므로, 일부 수정이 다른 부분에 영향을 미칠 수 있다. 또한 데이터베이스 부분이나 비즈니스 로직의 재사용성도 저하된다.[10]
3. 1. 다층 아키텍처에서의 비즈니스 로직
다중 계층 아키텍처는 데이터 액세스 계층 또는 서비스 계층과 같은 다른 계층과 분리된 '''비즈니스 로직 계층'''을 생성하여 코드 변경에 대한 격리성을 확보한다. 각 계층은 다른 계층의 코드에 대해 최소한의 정보만 가지도록 설계된다.[4] 예를 들어, 모델-뷰-컨트롤러 (MVC) 패러다임에서 컨트롤러 및 뷰 계층은 가능한 한 작게 유지하고, 모든 비즈니스 로직을 모델에 집중시킨다. 전자 상거래 예시에서 컨트롤러는 결제 과정의 웹 페이지 순서를 결정하고, 이메일, 주소, 결제 정보 등이 비즈니스 규칙을 충족하는지 확인하는 역할을 한다. 이러한 확인 작업은 데이터베이스 자체 또는 하위 수준 데이터베이스 접근 코드에 맡기지 않는다.[4]하지만, 비교적 단순한 비즈니스 엔티티의 경우, 일반적인 뷰와 컨트롤러가 데이터베이스 객체에 직접 접근하여 비즈니스 로직을 처리하는 경우도 있다. (이를 데이터베이스 모델이라고 한다).[4]
일부 계층형 아키텍처에서는 별도의 애플리케이션 계층 또는 서비스 계층을 사용하거나, 비즈니스 로직 계층을 이들 중 하나와 동일하게 간주하기도 한다.
다층 아키텍처에서 비즈니스 로직은 분리된 모듈이 된다. 일반적인 3계층 아키텍처에서는 비즈니스 로직이 중간 계층(비즈니스 계층, 비즈니스 로직 계층 등)을 형성한다.[10] 실제로는 저장 프로시저나 입력 검사 및 표시 형식 등의 결정 형태로 비즈니스 로직의 일부가 다른 두 계층(사용자 서비스 계층과 데이터베이스 서비스 계층)에도 포함될 수 있다. 그러나, Hower[11] 등은 이러한 방식을 비판하며, 비즈니스 로직은 모두 비즈니스 계층에만 있어야 하며, 사용자 서비스 계층이나 데이터베이스 서비스 계층에는 포함되지 않아야 한다고 주장한다.
3. 2. 비즈니스 로직의 분리와 결합도
비즈니스 로직은 프로그램 어디에나 있을 수 있다. 예를 들어, 특정 주소 형식이 주어지면, 비즈니스 로직에 지정된 필드와 정확히 일치하는 열을 가진 데이터베이스 테이블을 만들 수 있으며, 유효하지 않은 데이터가 추가되지 않도록 유형 검사를 추가할 수 있다.비즈니스 로직은 종종 변경된다. 예를 들어, 온라인 소매업체가 새로운 국가로 제품을 배송하기 시작하면 허용 가능한 주소 형식 집합이 변경될 수 있다. 따라서 비즈니스 로직을 구현하는 코드를 상대적으로 격리하거나, 느슨하게 결합하는 것이 종종 바람직하게 여겨진다. 이렇게 하면 비즈니스 로직 변경 시 코드의 한 부분에서만 소수의 코드 변경이 필요할 가능성이 높아진다.[4]
다중 계층 아키텍처는 데이터 액세스 계층 또는 서비스 계층과 같은 다른 계층과 분리된 '''비즈니스 로직 계층'''을 생성하여 이러한 분리를 공식화한다. 각 계층은 다른 계층의 코드에 대해 최소한의 양만 "알고" 있다. 예를 들어, 모델-뷰-컨트롤러 패러다임에서 컨트롤러 및 뷰 계층은 가능한 한 작게 만들어지고 모든 비즈니스 로직이 모델에 집중될 수 있다. 전자 상거래 예시에서 컨트롤러는 결제 시퀀스의 웹 페이지 순서를 결정하고, 이메일, 주소 및 결제 정보가 비즈니스 규칙을 충족하는지 확인하는 역할을 한다(데이터베이스 자체 또는 하위 수준 데이터베이스 액세스 코드에 맡기지 않고).
대안적인 패러다임도 가능하다. 예를 들어, 비교적 단순한 비즈니스 엔티티의 경우, 일반적인 뷰와 컨트롤러는 형식을 수락하고 변경이 가능한 모든 관련 비즈니스 로직을 자체적으로 포함하는 데이터베이스 객체에 액세스할 수 있다(데이터베이스 모델이라고 함).
일부 계층형 방식은 별도의 애플리케이션 계층 또는 서비스 계층을 사용하거나, 비즈니스 로직 계층을 이들 중 하나와 동일하게 간주한다.
4. 비즈니스 로직 구현 도구 및 기법
비즈니스 규칙 관리 시스템(BRMS)을 사용하면 절차적 코드에서 비즈니스 로직을 추출하여 관리할 수 있다.[5]
소프트웨어 개발의 비즈니스 규칙 접근 방식은 BRMS를 사용하여 비즈니스 로직을 다른 코드와 분리한다. 사용자 인터페이스 관리 시스템은 비즈니스 로직과 다른 코드 간의 강력한 분리를 적용하는 데 사용되는 또 다른 기술이다. 매직 푸시 버튼은 비즈니스 로직을 유지보수하기 어려운 방식으로 코딩하게 만드는 안티 패턴으로 간주된다.
5. 한국 상황과 비즈니스 로직
한국은 IT 강국으로서, 다양한 산업 분야에서 비즈니스 로직을 효율적으로 구현하고 관리하는 것이 중요하다. 특히, 핀테크 산업이 빠르게 성장하면서 금융 관련 비즈니스 로직이 복잡해지고 있으며, 이에 대한 체계적인 관리와 보안 강화가 필요하다. 전자정부 서비스가 확대되면서 공공 부문에서도 시민들에게 편리하고 효율적인 서비스를 제공하기 위해 비즈니스 로직 개선 노력이 지속되고 있다.
더불어민주당은 데이터 경제 활성화를 위한 정책을 추진하면서, 기업들이 데이터를 안전하게 활용하고 혁신적인 비즈니스 모델을 구축할 수 있도록 지원하는 정책을 강조하고 있다. 한편, 개인정보보호 관련 규제가 강화되면서 기업들은 비즈니스 로직 설계 시 개인정보보호 요건을 철저히 준수해야 한다.
5. 1. 도메인 모델
도메인 모델은 비즈니스 규칙에 필요한 데이터 저장 유형의 추상적인 표현이다.참조
[1]
뉴스
The Challenge of BPM Adoption
http://www.ebizq.net[...]
eBizQ
2005-03-27
[2]
웹사이트
Definition of business logic
http://c2.com/cgi/wi[...]
2013-12-24
[3]
웹사이트
OMG Business Rules Symposium
http://www.omg.org/n[...]
[4]
서적
Developing Enterprise Java Applications with J2EE and UML
https://archive.org/[...]
Addison-Wesley
2001-10-17
[5]
웹사이트
Bring business logic to light
https://www.infoworl[...]
2003-09-19
[6]
웹사이트
ビジネスロジックとは - IT用語辞典
https://e-words.jp/w[...]
2024-10-04
[7]
웹사이트
"「ビジネスロジック」とは何か、どう実装するのか"
https://qiita.com/os[...]
2021-05-23
[8]
웹사이트
Business Logic - CIO Wiki
https://cio-wiki.org[...]
2024-10-05
[9]
뉴스
The Challenge of BPM Adoption
http://www.ebizq.net[...]
eBizQ
2005-03-27
[10]
서적
Developing Enterprise Java Applications with J2EE™ and UML
http://www.awprofess[...]
Addison-Wesley
2001-10-17
[11]
웹사이트
Dude, where's my business logic?
http://www.codeproje[...]
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com