readme 가 무엇인지 ?
먼저 readme 가 뭔지에대해 알아야할 필요가 있을거 같다.
오늘 배운 내용으로는 내가 이해하기에 어떤 프로젝트를 실행하기에 앞서 프로젝트 소개, 개발기간, 환경, 기능 등 소개하는 문서라고 배웠다. 맞는지는 모르겠지만 설명서같은 느낌이라고 이해하였다.
readme.md 뒤에 붙는 md는 뭐의 약자인가 ?
확장자명의 약자는 markdown의 약자라고 한다. 이것은 경량마크업 언어로, 텍스트 기반 문서에서 간단한 구문을 사용하여 서식을 지정할 수 있게 해준다고한다. 하여 확장자는 .md 또는 .MarkDown으로 저장이 된다.
MarkDown (경량마크업언어) 를 왜 사용하는가 ?
사용하는 이유는 간단하다. 사용자의 가독성이 좋아지며, HTML로 변환이 쉽고, 쉬운 문법으로 텍스트의 강조를 바꿀수 있기 때문인것 같다.
readme.md 의 주요문법은 무엇인가 ?
- 제목: # 기호로 제목을 작성합니다. (예: # 제목1, ## 제목2)
- 굵은 글씨: **텍스트** 또는 __텍스트__로 표시합니다.
- 기울임꼴: *텍스트* 또는 _텍스트_로 나타냅니다.
- 리스트: -, *, 또는 번호를 사용하여 목록을 만듭니다.
- 코드 블록: 백틱(```)을 사용하여 코드 블록을 만듭니다.
- 링크: [텍스트](URL) 형식으로 링크를 삽입합니다.
* 버젼관리 *
버젼관리의 필요성.
먼저 버젼관리가 왜 필요한지에 대해 배웠다.
여러가지 이유가 있었지만 그 중 두가지만 꼽으면 내가 생각하기에 첫번째는 변경이력관리의 필요성 때문인것같다.
대학시절 과제를 할때 예를 들어 밑에 사진을 보면
이런 경험이 한번쯤 있을것이다. 이거를 방지하기 위한 이유가 있으며, 변경을 추적하고 이전 버전을 복구하기위함이다.
두번째로는 협업지원인거같다.
소형프로젝트든 대형프로젝트든 여러사람과 같이 작업하는 것들은 버전관리 시스템을 이용하여 서로 다른작업이 충동하지 않도록 병합하여 관리하는 기능을 제공한다.
또한, 분산작업이 가능하기때문이다. 분산작업이란 팀원들이 각자의 브랜치에서 독립적으로 작업할 수 있어 작업이 분리되고, 나중에 통합할 수 있다.
요약하여 얘기하면
버전 관리는 프로젝트의 변경 사항을 효율적으로 관리하고, 협업을 원활하게 하며, 코드 품질을 유지하고 문제 발생 시 복구할 수 있는 중요한 도구이다. 이를 통해 개발 생산성과 코드의 안정성을 크게 향상시킬 수 있다.
이 정도인것 같다.
버젼관리의 종류
로컬 VCS
단, 협업에서 쓰기에는 힘들고, 컴퓨터가 고장나는 등 내부 정보가 통째로 날아가버리면 복구할 방법이 없다.
중앙집중식 VCS
간단한 방법으로 협업이 가능하고 관리자가 누가 어떤 일을 하고 있는지 알기 쉬운 장점이 있다. 단, 중앙 서버가 다운될 경우 그동안은 업무가 마비되는 단점이 있다. 그리고 서버의 정보가 날아갈 경우 모든 히스토리가 날아가게 된다. 협업의 규모가 커지면 수정 충돌 문제 등이 발생할 수 있다.
비유하자면 나무위키의 문서 편집 시스템이 간단한 중앙집중식 버전 관리에 속한다. 대표적으로 Subversion이 있다.
분산 버전 관리 시스템 VCS
중앙 서버가 다운되더라도 개별 사용자는 각자 작업이 가능하고 서버가 날아가도 다운 받은 내용은 남아있기 때문에 가장 안정적이다. 수정 시에도 현재 코드는 나 혼자 수정하고 있기 때문에 충돌의 염려 없이 수정할 수 있으며, 최종적으로 서버에 반영할 때에만 신경써서 머지(Merge)해주면 된다.
대표적으로 Git이 있다.