유의적 버전(Semantic Versioning)

 

소프트웨어 버전: 컴퓨터 소프트웨어의 특정 시점의 상태에 대해 식별 가능한 유일한 이름을 지정하는 것을 의미함

 

하지만 소프트웨어와 다르게 라이브러리의 버전을 변경할 때는 어떤 규칙에 의해서 버전이 매겨지는지 통용되는 명확한 규칙이 없음

 

이런 의존성 문제를 해결하는 것이 유의적 버전임

 

유의적 버전: 버전 표기에 규칙을 표기하여 의미적 엄격함을 높이고 패키지 개발에 발생할 수 있는 여러 상황을 포괄적으로 담아 일관성 있고 유연성을 갖추게 만든 제안임

 

규칙

 

  1. 유의적 버전을 쓰는 소프트웨어는 반드시 공개 API를 정의해야 함

  2. 일반 버전 명은 반드시 X.Y.Z형태이고 X, Y, Z는 음이 아닌 정수이다. X는 주요한 버전, Y는 작은 버전, Z는 패치버전이다. 각 요소는 1씩 차례로 증가해야 함

  3. 주요 버전 숫자가 올라갈 때, 작은 버전 숫자와 패치버전 숫자는 0으로 재설정 되어야 함, 작은 버전 숫자가 올라갈 때는 패치버전 숫자가 0으로 재설정 되어야 함

  4. 버전 명이 주어진 패키지가 한번 공개되면, 해당 버전의 내용은 절대 수정되어선 안된다. 수정시 새로운 버전으로 공개 해야 함

  5. 주요버전 0은 초기 개발을 위한 것으로 언제든 변경 가능하다.

  6. 버전 1.0.0은 공개 API를 정의한다.

  7. 패치버전 Z는 버그 수정이 있을 때 올라감

  8. 작은버전 Y는 새로운 기능이 추가 되었지만 기존의 공개 API가 하위호환 되고 있을 때 올라감

  9. 주요버전 X는 하위호환 되지않는 변화가 추가될 때 반드시 올라가야 한다.

  10. 선행 배포 버전은 대시(-)와 점으로 나누어진 식별자들의 묶음을 패치 버전 뒤에 표시함 식별자들은 ASCII 영숫자와 대시로만 구성 되어야 함

  11. 개발버전은 더하기(+)와 점으로 나누어진 식별자들의 묶음을 패치버전 뒤에 표시함

  12. 우선순위는 주요버전, 작은버전, 패치버전, 선행 배포, 빌드 식별자, 내숫자 순으로 계산되어야 함

 

SSH(Secure Shell Protocol)

 

SSH: 네트워크 상의 다른 컴퓨터에 로그인하거나 원격 시스템에서 명령을 실행하고 다른 시스템으로 파일을 안전하게 복사할 수 있도록 해주는 응용프로그램 또는 그 프로토콜을 가리킴

안전하지 못한 네트워크에서 안전하게 통신을 할 수 있는 기능을 제공하며, 기본적으로 22번 포트를 사용함

 

대표적인 예로 데이터 전송, 원격 제어 등이 있음

 

+ Recent posts