2025. 1. 28. 16:35ㆍNetwork 공부
Business Logic
Application Layer는 비즈니스 로직을 처리하는 데 초점이 맞춰져 있다.
Business Logic 이란?
소프트웨어나 애플리케이션에서 특정 비즈니스 도멘인의 규칙과 요구사항을 구현한 부분을 의미한다.
이는 비즈니스의 목적과 프로세스를 기반으로 데이터를 처리하고 의사결정을 내리는 논리를 포함한다.
- Application Layer 에서 비즈니스 로직이 중요한 이유
1) 중앙 집중화
비즈니스 로직을 Application Layer 에 집중시키면 Presentaion Layer(UI)나 Data Layer 에서 독립적이게 된다.
이는 유지보수와 확장성을 향상시킨다
2) 분리 원칙
비즈니스 로직을 분리함으로써 각 Layer 가 독립적으로 설계되고 테스트 될 수 있다.
3) 재사용 가능성
동일한 비즈니스 로직을 여러 클라이언트 (Presentaiton Layer)에서 재사용할 수 있다.
주요 특징 및 역할
1. 도메인의 규칙 구현
비즈니스 도메인에서 정의된 규칙과 제약사항을 코드로 작성하여 소프트웨어가 현실 세계의 비즈니스 요구사항을 충족하도록 만든다.
ex) 상품의 가격은 항상 0보다 커야한다 / 재고가 0 이면 주문을 받을 수 없다
2. 데이터 처리 및 변환
입력된 데이터를 검증하고, 비즈니스 규칙에 따라 변환하거나 처리한다.
ex) 교객의 요청에 따라 할인율을 계산하거나, 결제 상태를 업데이트하는 로직
3. 비즈니스 흐름 관리
여러 작업이 순차적으로 이루어지는 과정 (workflow) 를 정의하고, 올바르게 처리되도록 제어한다.
ex) 사용자가 상품을 주문하면, 재고 확인 -> 결제 처리 -> 배송 요청 순서로 진행되게 한다.
4. 유지보수 가능성
비즈니스 로직은 시간이 지나면서 비즈니스 규칙이나 정책이 바뀌면 업데이트해야 하므로, 코드가 명확하고 모듈화되어야 유지보수가 쉽다.
비즈니스 로직의 예시:
온라인 쇼핑몰에서의 비즈니스 로직
- 고객이 주문을 생성할 때
재고 확인을 확인한 후 수량이 충분한 경우에만 주문이 승인됨.
주문 금액이 특정 금액 이상인 경우(정해진 조건) 해당 제품을 무료 배송
프로모션 코드(기한, 사용 여부 등)이 유효한지 검증하고 할인율 계산
Data Processing
Application 에서의 데이터 처리 또한 주로 Businness Logic 을 구현하고 데이터를 조작하는 데 초점이 맞춰져 있다.
- 데이터 검증
입력된 데이터가 비즈니스 규칙과 일치하는 지를 확인함
- 데이터 변환
사용자의 입력 데이터를 비즈니스 로직에서 요구하는 형식으로 변환하거나 정제한다.
- 비즈니스 로직 실행
특정 작업에 대한 규칙을 정의하거나 처리한다.
- 상태 관리
데이터 상태를 추적하고 필요시 업데이트 함
- 외부 서비스와의 통합
외부 API를 호추하여 데이터를 처리하거나 다른 시스템과 통신
등의 역할을 한다.
Providing APIs
주로 외부 클라이언트(Presentation Layer)나 다른 시스템이 접근할 수 있도록 API 를 제공하고 이때 일반적으로
RESTful API 또는 GraphQL 형식으로 구현된다.
API 제공의 주요 역할
- 데이터 전달
클라이언트에서 요청한 데이터를 가공하여 변환
ex) 주문 상세 정보 조회 API
- 비즈니스 로직
클라이언트가 틀정 작업을 요청할 수 있도록 비즈니스 로직을 실행
ex) 주문 생성 API, 결제 처리 API
- 보안
인증 및 권한 부여를 통해 API 호출의 안정성을 보장
- 에러 처리
클라이언트가 올바르게 이해할 수 있는 에러 메세지와 상태 코드를 반환
API 제공의 흐름
클라이언트 요청 처리
- 클라이언트 요청 처리
- 클라이언트에서 요청을 받아 비즈니스 로직을 실행.
- 데이터 검증
- 클라이언트가 제공한 요청 데이터의 유효성을 검토.
- 비즈니스 로직 실행
- 데이터베이스에서 정보를 가져오거나, 외부 API를 호출하거나, 비즈니스 규칙에 따라 데이터를 처리.
- 응답 반환
- 처리된 데이터를 클라이언트에 JSON 형식으로 반환.
- 성공 시: 200 OK와 함께 결과 데이터.
- 실패 시: 적절한 HTTP 상태 코드와 에러 메시지.
'Network 공부' 카테고리의 다른 글
WordPress / Web Server / PHP (0) | 2025.01.31 |
---|---|
API / RESTful API / GraphQL (0) | 2025.01.28 |
RAID ( Redundant Array of Inexpensive (Independent) Disk ) (0) | 2025.01.24 |
FTP(File Transfer Protocol) / TFTP(Trivial File Transfer Protocol) / PXE(Perboot execution Environment) (0) | 2025.01.22 |
NFS(Network File System) (0) | 2025.01.21 |