
소프트웨어 개발자라면 한 번쯤 들어봤을 '비즈니스 로직(Business Logic)'에 대해
나름의 기준을 세우고 정의하기 위해 정리하였습니다.
소프트웨어 공학에서 비즈니스 로직은 소프트웨어가 해결해야 하는 현실 세계의 문제를 의미합니다.
예를 들어, 은행 애플리케이션을 개발한다고 가정하면, 돈을 관리하는 기능들은 모두 비즈니스 로직에 해당합니다.
그렇다면 현실 세계의 문제를 해결할 수 있는 기능은 모두 비즈니스 로직으로 간주해야 할까요?
만약 그렇게 정의한다면, 은행 애플리케이션에서 돈 관리 기능뿐만 아니라
데이터베이스 연결, 로그인 및 회원가입 기능까지도 모두 비즈니스 로직에 포함되어야 합니다.
그러나 화면 출력, 인증/인가, 데이터베이스 연결 등의 기능은 문제 해결에 필요하지만,
문제 해결의 본질적인 부분은 아닙니다.
비즈니스 로직은 송금과 같은 돈 관리 기능처럼 문제 해결의 핵심이 되는 로직을 의미합니다.
반면, 화면 출력, 사용자 인증, 데이터 저장 등의 기능은 비즈니스 로직을 보조하는 역할을 하며,
이를 서비스 로직으로 구분할 수 있습니다.
이러한 구분을 통해 비즈니스 로직과 서비스 로직을 명확하게 정의할 수 있습니다.
비즈니스 로직과 서비스 로직이 하나로 섞여 있으면, 유지보수와 개선이 어려워질 수 있습니다.
특히, 비즈니스 로직은 외부 요인이나 사업적 필요에 의해 변경될 가능성이 높습니다.
따라서 변화의 영향을 서비스 로직에까지 확장되지 않도록 비즈니스 로직을 명확히 분리하는 것이 중요합니다.
비즈니스 로직을 독립적으로 관리함으로써 유지보수성을 높이고, 서비스 로직과의 분리를 통해 코드의 가독성과 확장성을 개선할 수 있습니다.