Skip to content
GwiyeomGo Tech Blog
About GwiyeomGo

RESTAPI 사용자는 가장 최근에 배포된 버전을 보고 싶다

REST, HTTP, 20224 min read

배경

현재 개발하고 있는 시스템은 100 개 이상의 매장에서 사용합니다. 관리자가 보는 화면 외에 매장에서 하루 종일 한 화면만 보여지는 경우가 존재합니다. 바로 매장에서 기부를 등록하는 화면인데요. 해당 화면은 회원 ID 와 수량을 입력하여 기부를 할 수 있도록 하는 기능입니다.

문제

문제는 화면을 계속 켜 놓기 때문에 컴퓨터 자체를 끄지 않고 퇴근을 하신다고 합니다. 그래서 시스템에 정기 배포날 또는 시스템의 핫픽스 발생으로 배포했을 때 사용자는 같은 화면을 보고 있고 새로고침 하지 않아서 새로 배포된 내용을 보지 못하는 문제가 발생합니다.

사용자는 가장 최근에 배포된 버전을 보고 싶다

과정

처음에는... 브라우저가 캐쉬가 문제라고 생각했고 meta tag 를 변경해야 한다고 생각했다 HTML Meta Tag를 페이지에 삽입하는 방법 입니다. 하지만 이 방법은 과거의 몇몇 브라우저에게만 유효 했으며 지금은 더 이상 사용하지 않는 방법 그런데 찾아보닌 지금은 적당한 방법이 아니라고 한다

캐쉬에 대해서 잘 모르는데 계속 찾으니.. 정말 산으로 가는 느낌이었는데 시니어 개발자님이 version table을 생성하고 API 를 통해서 버전을 확인하고 프론트에서 버전이 다를 때 새로고침하도록 변경하라고 조언해 주셨다. 해당 문제는 자주 발생하기 때문에 시니어 개발자님은 오픈 소스를 만드신다고 한다 ~

나도 우선 현재 상황에 사용할 수 있도록 코드를 만들고 목표는 더 단순화시켜서 go module 을 만들어 보려고 한다.

작업을 시작하려고 하니 3가지로 나눠봤다

  1. github 에 최신 버전을 알아온다.

    • 질문1 : gitLab 에서 특정 프로젝트의 배포버전을 알지?? => release tag 로 최신 버전을 알아보자
    • 질문2 : create 함수를 만들었는데 배포했을 때 어떻게 호출하지? =>참고
    • 질문3 : 특정 프로젝트의 tags 를 호출했는데 ... 특정 프로젝트의 branch 도 호출 가능한가?
  2. db table 에서 version 관리를 한다

  3. 프론트 화면에서 최신 버전을 조회하고 프론트에 저장된 내용과 확인하여 다르다면 새로고침 하도록 변경

    • 질문 : 어느 시점에서 최신 버전을 조회하는 API 를 호출할까? => 우선.. refresh 토큰을 발급할때 함수가 존재,이때 tag 를 받아서 localstorage 에 저장해보려고 한다

2022 -07-26

현재 운영 배포시에만 tag 를 생성 branch 별 상황을 고려해서 코드 수정 필요 => 피드백 : gitLab 을 호출하지 않고 그냥 version table 에 임의로 작성한 version 을 추가하면 될 거 같다

github

https://github.com/gwiyeomgo/release-versioning

© 2024 by GwiyeomGo Tech Blog. All rights reserved.