728x90

소프트웨어 버전관리를 하게되면 현재버전이 최신버전인지 아닌지 비교해야할 경우가 생깁니다

 

현재버전이 1.0.0이고 최신버전이 1.0.1이라고 하면 

버전을 비교해서 현재버전이 최신버전보다 낮으면 업그레이드를 하라고 알림 줘야하기 떄문입니다 

 

그럴때 유용하게 쓸 수 있는 패키지가 semver패키지입니다

 

저도 앱 강제업데이트를 위해서 버전비교하는 로직을 만들다가 

버전에서 .로 나눈다음에 숫자로 바꿔서 크기비교를 해야하나 라는 고민을 하다가

semver 패키지를 알게되었고 아주 간단하게 버전비교를 할 수 있었습니다

 

 

먼저 pip install semver로 패키지 설치를 진행한 뒤 아래 코드처럼 import 해서 사용하시면 됩니다

import semver

def app_update_check(db, data):
    version = convert_data_app_version(AppDao.app_update_check(db))

    # 최소 버전보다 낮으면 강제 업데이트, 최소 버전보다 높은데 최신 버전보다 낮으면 선택 업데이트
    # result (-1: 왼쪽이 낮음, 1: 왼쪽이 높음, 0: 같음)
    # 강제업데이트
    isForceUpdate = semver.compare(data['version'], version['min_version'])

    # 선택 업데이트
    isUpdate = semver.compare(data['version'], version['newest_version'])

    return {"isForceUpdate": isForceUpdate, 'isUpdate': isUpdate}

소스를 보시면 클라이언트에게 현재버전을 받고, db에서 최소버전 최신버전을 가져와서 비교를 한뒤
강제업데이트를 할것인지 선택업데이트를 할것인지 응답을 주는 코드인데 semver.compare()를 사용하면
바로 결과값이 나오는걸 확인할 수 있습니다

+ Recent posts