MVVM 패턴에서 비즈니스 로직이란

jeongmuyamette·2025년 2월 27일

TIL

목록 보기
54/72
post-thumbnail

Swift MVVM 패턴에서의 비즈니스 로직

비즈니스 로직이란?

비즈니스 로직(Business Logic)은 애플리케이션이 수행해야 하는 실제 작업과 규칙을 정의하는 코드입니다. 이는 데이터를 처리하고, 계산하며, 특정 규칙에 따라 결정을 내리는 등의 핵심 기능을 포함합니다.

MVVM 패턴에서의 위치

MVVM(Model-View-ViewModel) 패턴에서 비즈니스 로직은 주로 다음과 같이 분배됩니다:

  1. Model: 기본적인 데이터 구조와 일부 비즈니스 로직
  2. ViewModel: 대부분의 비즈니스 로직이 여기에 위치
  3. View: UI 관련 로직만 처리 (비즈니스 로직은 포함하지 않음)

비즈니스 로직의 예시

Swift MVVM 패턴에서 비즈니스 로직의 예시는 다음과 같습니다:

  1. 데이터 변환 및 가공

    • 서버에서 받은 JSON 데이터를 앱에서 사용할 수 있는 모델 객체로 변환
    • 날짜 포맷 변경, 통화 변환 등의 데이터 가공
  2. 유효성 검증

    • 사용자 입력 데이터의 유효성 검사 (이메일 형식, 비밀번호 규칙 등)
    • 비즈니스 규칙에 따른 데이터 검증
  3. 계산 및 알고리즘

    • 할인율 계산, 세금 계산 등의 수학적 연산
    • 데이터 필터링, 정렬 등의 알고리즘
  4. 네트워크 통신 로직

    • API 호출 및 응답 처리
    • 데이터 캐싱 전략
  5. 상태 관리

    • 앱의 상태 변화에 따른 로직 처리
    • 에러 처리 및 복구 메커니즘

Swift 코드 예시

간단한 로그인 기능을 구현하는 MVVM 패턴의 예시를 통해 비즈니스 로직을 살펴보겠습니다:

// Model
struct User {
    let username: String
    let password: String
}

// ViewModel
class LoginViewModel {
    // 입력 바인딩
    var username = ""
    var password = ""
    
    // 출력 바인딩
    var isLoginButtonEnabled: Bool {
        return isValidUsername && isValidPassword
    }
    
    var loginErrorMessage = ""
    
    // 비즈니스 로직: 유효성 검증
    private var isValidUsername: Bool {
        return username.count >= 4
    }
    
    private var isValidPassword: Bool {
        return password.count >= 6
    }
    
    // 비즈니스 로직: 로그인 처리
    func login(completion: @escaping (Bool) -> Void) {
        // 네트워크 요청 비즈니스 로직
        AuthService.login(username: username, password: password) { [weak self] result in
            switch result {
            case .success(let user):
                // 비즈니스 로직: 로그인 성공 처리
                UserManager.shared.saveCurrentUser(user)
                completion(true)
            case .failure(let error):
                // 비즈니스 로직: 에러 처리
                self?.loginErrorMessage = error.localizedDescription
                completion(false)
            }
        }
    }
}

위 예시에서 LoginViewModel은 다음과 같은 비즈니스 로직을 포함합니다:

  • 사용자 입력의 유효성 검증
  • 로그인 버튼 활성화 여부 결정
  • 로그인 API 호출 및 결과 처리
  • 에러 메시지 관리

이처럼 비즈니스 로직은 앱의 실제 기능을 구현하는 핵심 코드로, MVVM 패턴에서는 주로 ViewModel에 위치하여 View와 Model 사이의 중재자 역할을 수행합니다.

0개의 댓글