⚡ 개요
개발 중이던 신규 프로젝트가 어느덧 배포를 하는 단계까지 왔다. 👋👋👋
배포를 준비를 하면서 릴리즈 버전을 계시하고 특정 고객사에서 필요한 연동과 앞으로의 신규 개발들을 진행해야 해서 브랜치도 나누고 태그도 다는 과정에서 이 부분을 정리해 놓으면 좋을 거 같아서 작성하게 되었다.
태그와 릴리즈를 사용하는 가장 큰 이유는 당연히 버전을 쉽게 관리하고 배포하는데 중점이 있다고 생각한다.브랜치를 따거나 git 변경 사항에 특정 버전 및 내용에 대해서 규칙을 정하고 적는 것도 좋겠지만 좀 더 쉽게 버전을 체크하고 관리할 때 좋다고 생각을 한다.
내가 사용을 할때 가장 중점적으로 생각한 부분은 우리 개발팀에 새로 들어오더라도 우리와 같이 사용할 때 거부감이 없어야 된다고 생각했다. 분명 회사별로 관리하는 방법 및 규칙은 다르겠지만 어느 정도 공통적인 부분은 최대한 맞춰서 작업을 하면 적응을 하는 과정에서도 도움이 될 거라고 생각을 했다.
태그와 릴리즈의 사용 방법 및 작성 방법에 대해서 공유를 하도록 하겠다.
⚡ 태그 & 릴리즈
📗 태그
- 태그는 특정 커밋된 내용에 대한 고정된 참조를 나타낸다.
- 보통으로는 특정 기능 추가, 마일스톤, 릴리즈 버전 등을 나타내는데 사용을 한다.
- 경량과 주석 태그가 존재하며 상황에 맞게 사용이 가능하다.
기본적인 명령어에 대해서 알고 있으면 좋을거 같아서 적어놓도록 하겠다.
(만약에 intelij 툴을 사용하고 있다면 푸시한 내용을 기준으로 태그를 UI 상에서 달수 있게 지원해준다.)
전체 조회
git tag
원하는 태그명 조회
git tag -l 태그명
원격 저장소에 전체 push
git push origin --tags
특정 태그 원격 저장소에 올리기
git push origin 태그명
태그 삭제
git tag -d 태그명
명령어를 알고 있어야 하는 이유는 사용하는 툴이 바뀌더라도 명령어는 바뀌지 않는다.
(툴 또한 내부적으로 상황에 맞게 명령어를 날려 줄 것이다.)
이외에도 추가적인 명령어가 많지만 크게 사용을 하지 않아서 따로 작성하지는 않았다.
📘 릴리즈
- 소프트웨어의 특정 버전을 공식적으로 발표하고 배포하는 것이다.
- 태그와 함께 사용되는 경우가 많으며, 보통은 소프트웨어를 개발 완료 및 안정화된 버전을 기준으로 릴리즈 해서 사용한다.
- 릴리즈에는 변경사항, 릴리즈 노트, 다운로드 가능한 바이너리 파일 등을 포함해서 올리는 경우가 존재한다. (github에서도 많이 볼 수 있다.)
릴리즈를 관리하기 위해서 다른 프로젝트들은 어떻게 관리를 하는지 많이 찾아보았다.
대부분은 gitHub에서 유명한 오픈 라이브러리들에 대해서 릴리즈를 게시를 어떻게 하고 버전표기, 릴리즈 노트 작성 내용 등을 많이 참조했다.
위의 두 개의 이미지는 릴리즈를 작성할 때 참고 하려고 이미지를 캡처했었다.
대부분은 위의 내용을 기반으로 작성하는 것으로 보았다. 릴리즈 노트의 경우는 관련된 템플릿도 많고, 커밋을 할 때 컨벤션을 지켜서 올리면 나중에 릴리즈 버전으로 만드는 경우 자동으로 릴리즈 노트가 생성되도록 하는 자동화된 코드도 존재한다.
⚡ 생각
우리는 위의 내용을 따라서 작성을 하지는 않고 있다. (내부 규칙이 존재 😭)
신규 프로젝트에서는 달라질 수도 있지만 과거부터 해오던 버전 관리 방법이 존재하고 당장은 바꿀 수가 없다. 마음에 들지는 않아 바꾸려고 노력 중이다.
태그와 릴리즈에 대해서 사용을 하지 않는 개발자도 존재한다. 커밋 로그에 내용 작성을 잘하면 되지 않냐는 사람도 존재하고, 개인 및 회사의 방법을 통해서 관리하는 사람 등 다양하다.
결국 태그와 릴리즈를 사용하는 이유는 관리를 쉽고 편하게 하자 이게 전부다. 만약에 더 좋고 쉬운 방법이 있다면 굳이 사용하지 않아도 된다고 생각한다.
'DevOps' 카테고리의 다른 글
VisualVM 기반 메모리 모니터링 구축 (0) | 2024.07.31 |
---|---|
Jenkins 에서 SSH Server 등록 및 Spring Boot 서비스 배포 관련 내용 정리 (0) | 2023.05.29 |
Docker + Centos + Spring Boot 구축 가이드 내용 정리 (0) | 2023.05.21 |
nssm으로 jar 파일 window service 등록 하기 (0) | 2023.05.15 |
사용중인 Intellij 플러그인 정리 (0) | 2023.03.12 |