프로젝트와 VCS

Younha Lee·2025년 12월 30일

TIL

목록 보기
1/70

프로젝트와 README, 그리고 VCS

1. 프로젝트란 무엇인가?

프로젝트란 일정한 기간 안에 일정한 목적을 달성하기 위해 수행하는 업무의 묶음을 말해요

  • 기획부터 설계, 개발, 테스트를 거쳐 배포까지 포함하는 전체 프로세스를 의미해요
  • 코드 및 문서로 진행의 척도를 얼마나 팀원과 공유하는 게 협업의 지름길이에요

2. 협업의 얼굴, 리드미(README)

리드미는 크게 두 가지 역할을 해요

📝 리드미에 들어가는 내용

  • 완성된 프로그램의 설명서
  • 프로젝트의 현황

🛠 마크다운(Markdown) 문법 활용하기

리드미는 주로 .md 확장자를 가진 마크다운 파일로 작성해요.
이를 통해 웹에서 가독성 좋게 글을 꾸밀 수 있습니다.
우리가 사용하는 깃허브와 디스코드, 벨로그도 지원해요
(이 블로그 글도 마크다운으로 작성중이에요!)

기능문법 예시비고
제목(Header)# H1 ~ ###### H6#의 개수로 크기 조절
인용문> 내용참고 문구 등에 사용
목록- 항목 또는 1. 항목순서 있거나 없는 목록
코드 블록```code```코드 삽입용

실습을 조금 해볼게요

  • 실습한 내용을 캡쳐했어요!
  • 이탈릭체(기울임) 입니다.
  1. 볼드체(굵게) 입니다.
  • 취소선 입니다.
  • 리드미 작성법 공부하기
  • 오늘 배운 내용 블로그에 정리하기
let a = 'a'
var b = 'b'
const c = 'c'

console.log(a); // a

3. 버전 관리(Version Control)의 핵심

버전이란?

코드에 행해지는 "유의미한 수정"을 의미해요
기능 추가나 버그 수정 등 기록할 가치가 있는 변화에요

  1. 다른 사람의 버전을 관리하기 어려워요
  2. 각각의 변화가 어떤 수정사항을 담고 있는지 알 수 없어요

버전 관리 시스템(VCS)의 역할

  1. 변경 사항 추적: 어떤 부분이 어떻게 달라졌는지 확인
  2. 백업 및 복구: 문제가 생겼을 때 과거의 특정 시점으로 되돌리기
  3. 협업: 여러 사람이 동시에 같은 코드를 작업할 수 있게 지원

4. VCS의 3가지 유형

버전 관리 시스템은 발전 과정에 따라 크게 세 가지로 나뉘워요

① 로컬 버전 관리

  • 특징: 내 컴퓨터 안의 간단한 DB에 변경 정보를 저장해요
  • 단점: 내 컴퓨터가 고장 나면 이력이 사라지며, 다른 사람과 협업이 불가능합니다.
  • 게임할 때 로컬로 세이브파일을 저장하는 것이랑 비슷해요.

② 중앙 집중형 버전 관리

  • 특징: 중앙 서버에 모든 파일의 히스토리가 있고, 사용자는 서버에서 파일을 내려받아 사용해요 (예: SVN)
  • 장점: 중앙에서 통제하므로 협업 관리가 용이해요.
  • 단점: 버전을 관리하는 중앙 서버가 다운되면 작업이 중단되고, 서버 하드가 깨지면 모든 프로젝트 히스토리를 잃을 위험이 매우 커요
  • 일부 회사에서는 아직도 svn을 사용하는 경우도 있다고 알고 있어요

③ 분산형 버전 관리 (현재 가장 많이 사용)

  • 특징: 서버의 저장소를 통째로 복제하여 내 컴퓨터에 담아요 (예: Git).
  • 장점:
    • 서버에 문제가 생겨도 내 로컬 복제본으로 복구가 가능해요
      • 원격 레포를 실수로 삭제해도 로컬로 관리하는 누군가가 다시 레포를 올리면 살릴 수도 있어요!
    • 오프라인에서도 작업과 커밋이 가능해요
    • 모든 작업자가 전체 히스토리를 공유하므로 가장 안전하고 유연해요


💡 오늘의 요약

  • 프로젝트는 기획부터 배포까지의 전 과정이에요
  • README는 마크다운 문법으로 다른 사람들이 보기 좋게 문서화할 수 있어요
  • 버전 관리는 협업과 안전한 개발을 위한 필수 시스템이고, 현재는 분산형 관리 시스템(Git)이 표준으로 사용되고 있어요.
profile
할 땐 하고 놀 땐 노는 일일놀놀입니다.

0개의 댓글