Business Logic에 대한 공부

7과11사이·2023년 11월 9일
0

스파르타코딩클럽

목록 보기
87/90

개발을 하다보면 항상 들리는 표현이 있다.
Business Logic.

특히 디자인 패턴을 맞추기 위해 구분하는 연습 중에서 Business Logic은 VC에 있어야 한다는 점을 보며 들었던 생각에 대해 정리해본다.


[231205] Law of Demeter 관련 법칙을 보다보니 이해하게 되는 내용이 있어 올바르게 다시 잡고자 업데이트.


What is Business Logic?

Business Logic or Domain Logic is the part of the program that encodes the real-world business rules that determine how data can be created, stored and changed.

공식적(?)으로 비즈니스 로직에 대한 설명은 위와 같았다.
데이터가 생성-보관-변경되는 규칙을 인코딩하는 부분을 의미한다고 하는데,
대략적으로 이해하려고 해도 이해가 가지 않는다.

조금 더 찾아보니 나름 더 쉬운 설명이 있었는데,
Business Logic is the programming that manages communication between an end user inteface and a database. The main components of business logic are business rules and workflows. A business rule describes a specific procedure, a workflow consists of the tasks. Business logic describes the sequence of operations associated with data in a database to carry out the business rule.

특정 결과, 절차를 이행하는데 있어 따라야 하는 순서도라고 설명을 한다.


정말 간단하게 이해하면 UI 또는 사용자 입력에 따라 발생하는 데이터의 변화를 실행시키는 코드로 이해할 수 있겠다! 우리가 눈으로 봤을 때는 한번의 클릭으로 이뤄지는 결과가 사실은 엄청나게 많은 절차를 거쳐 결과물을 추출해내는 코드인 만큼, 어플에 있어 핵심이 되는 코드를 비즈니스 로직 코드라 볼 수 있지 않을까!

[231205] 틀린 말은 아니었지만 핵심이 되는 코드라기 보다 핵심이 되는 데이터를 전반적으로 비즈니스 로직이라 의미한다고 느껴진다. 어플에 있어 CRUD를 하고, 올바르게 작동하기 위해 업데이트를 해야하는 데이터를 비즈니스 로직으로 이해하게 된다. 게임으로 따지면 캐릭터의 체력 또한 비즈니스 로직으로 볼 수 있게 된다. 어플에 있어서 가장 중요한 데이터는 수치 그 자체인만큼, Model이 비즈니스 로직으로 칭하게 되는 경우가 흔하다.

++
찾다보니 나름 괜찮은 예시가 있어 추가한다.
비즈니스 로직이란 위에 서술한대로 일종의 가이드라인 순서도로 볼 수 있다.
다만 좀 더 세부적으로 설명을 한다면, 비즈니스 로직은 기업 내부 소프트웨어나 서버에서 데이터를 생성, 저장, 처리하는 가이드라인에 대해 담고 있는 여러개의 컴퓨터 알고리즘이라고 한다.

예시가 인상적이었는데, 매장에 있어 비즈니스 로직이란
재고목록 정보어느 시간대에 어떤 제품들을 몇 개 판매하는지 알 수 있는 과정을 담고 있다고 한다.


비즈니스 로직에 있어 4가지 주요 키워드가 존재하는데,

  • Database
  • Data Management Software
  • Workflow
  • Trigger

출처


궁금증

1. 어플 성향에 따라 business Logic이라는 표현이 안쓰일 수 있는걸까?

  • 비즈니스 로직이라고 함은 어플에 있어 주요 데이터를 의미한다. 고로 비즈니스 로직은 안쓸 수 없는 표현이다!

2. 보여지는 데이터의 가공 절차를 함축적으로 Business Logic으로 칭하는 것 같은데, CRUD와 다른 점은 무엇인가?

  • 이 궁금증은 완전히 잘못된 이해도를 가졌을 때의 생각이었다. 비즈니스 로직은 데이터 가공의 절차를 의미한다고 보기 애매할 것 같다. 비즈니스 로직은 어플에서 필요로 하는, 혹은 변하는 데이터를 의미한다. 반면 CRUD는 해당 데이터의 유지 관리 관련해서 다룬다. CRUD를 한다고 비즈니스 로직 자체가 사라지는가? 하면 아니다. 관련 데이터를 담고 있던 객체들이 사라질 뿐, 비즈니스 로직 역할을 하는 모델 자체는 계속 존재한다.


0개의 댓글