깃 관련 과제 조사

Hyun·2023년 10월 24일

과제

  1. 10월 25일 발표 내용 요약
  2. 10월 26일 학습 내용 정리

1.1. 버전 관리

버전 관리 시스템 (VCS, Version Control System): 파일 변화를 시간에 따라 기록, 나중에 특정 시점의 버전을 다시 꺼내올 수 있음

  • 각 파일이나 프로젝트를 통째로 이전 상태로 되돌리기
  • 시간에 따라 수정 내용 비교
  • 누가 문제를 일으켰는지 추적, 누가 언제 만들어낸 이슈
  • 파일을 잃어버리거나 잘못 고쳤을 때도 쉽게 복구

버전 관리 시스템 종류

  1. 로컬 버전 관리: (VCS 도구 중 하나: RCS, Revision Control System)를 자주 사용, 버전 관리를 위해 디렉토리(이름에 시간 삽입) 로 파일 복사 문제 해결 -> Patch Set 관리(파일에서 변경되는 부분), 이것을 적용하여 모든 파일을 특정 시점으로 되돌릴 수 있음
  1. 중앙집중식 버전 관리 (CVCS, 중앙집중식 VCS): 다른 개발자와 함께 작업할 때 문제 해결 -> 파일 관리하는 서버(cvs, Subversion, Perforce) 가 별도, 클라이언트가 중앙 서버에서 파일을 받아서 사용(checkout)
  • 치명적 결점: 서버에 문제가 발생한다면 모든 것을 잃음, 로컬 VCS도 마찬가지.
  1. 분산 버전 관리 시스템(DVCS) : 마지막 스냅샷을 체크아웃하지 않음, 저장소를 히스토리와 더불어 전부 복제 -> CLONE 은 모든 데이터를 가진 진정한 백업

출처: Git 공식 문서

1.2. Git

  • 컴퓨터 파일의 변화를 추적, 여러 사람들 사이에서 그 파일을 조정하는 버전 관리 시스템(형상 관리 도구)
  • 소스코드를 효과적으로 관리할 수 있게 해주는 무료, 공개 소포트웨어, 오프라인에서도 사용 가능
  • 분산형 관리 시스템: 중앙 서버에 문제가 발생해도 로컬 저장소에 커밋 가능, 중앙 저장소 복원도 가능
  • 장점: 여러 명이 동시에 작업하는 병렬 개발, 보통은 브랜치를 통해 개발한 후 본 프로그램에 합치는 방식 (merge)로 개발 진행

1.3. Github

  • 저장소 관리(repository management) 서비스 중 하나
  • 분산 버전 관리 툴인 깃을 사용하는 프로젝트를 지원하는 웹호스팅 서비스
  • 오픈소스가 가장 많이 존재하는 곳

2.1. xml

xml은 eXtensible Markup Language의 약자.
W3C에서 개발된, 다른 특수 목적을 갖는 마크업 언어를 만드는데 사용하도록 권장하는 다목적 마크업 언어.

-> 데이터를 정의하는 규칙을 제공하는 마크업 언어.

기본적인 몇 가지 규칙
1. 하나의 가장 큰 루트 엘리멘트로 되어있어야 함.
2. 태그를 열었다면 반드시 닫기.
3. 대소문자 구분, 띄어쓰기 생략하지 않음.

2.2. DTD (document type definition)

xml 파일이 어떤 구조, element, attributes를 가지는지 정의.

  • DTD 내부 서브셋: DTD가 파일 내부에 선언되었을 때 <!DOCTYPE> 안에 위치해야 함.
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE food [ // 안에 위치
<!ELEMENT food (name,type,cost)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT type (#PCDATA)>
<!ELEMENT cost (#PCDATA)>
]>
<food>
    <name>상추</name>
    <type>야채</type>
    <cost>2000</cost>
</food>
  • DTD 외부 서브셋: DTD가 파일 외부에 선언되었을 때 <!DOCTYPE>은 반드시 외부 DTD 파일의 주소 정보를 포함해야 함 (.dtd 확장자 사용하여 저장)

data.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE food SYSTEM "food.dtd"> // food.dtd 파일 주소 정보 포함
<food>
    <name>상추</name>
    <type>야채</type>
    <cost>2000</cost>
</food>

food.dtd

<!ELEMENT food (name,type,cost)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT type (#PCDATA)>
<!ELEMENT cost (#PCDATA)>

출처: DTD 설명

주로 사용하는 HTML 파일에서는 <!doctype html>에 해당한다.

2.3.html 4.01, xhtml 1.0 -> html5

현재 html5는 다양한 브라우저에서 호환됨.

*하위호환성의 여지를 언제나 html은 발전하면서 남겨둔다.

<!DOCTYPE> 선언은 언제나 최상단에 작성해야 함.
이 선언은 html 4.01, xhtml 1.0 버전을 거쳐 현재 쓰고 있는 html5까지 오기까지 점점 바뀌어왔다. html, css 를 분리하면서 기존 html의 디자인 태그를 삭제.

  1. html 4.01
  • <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  • <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  • <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
  1. xhtml 1.0
  • <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml-transitional.dtd">
  1. html5
  • <!DOCTYPE html>

출처: 닥타입 설명 블로그
출처: 닥타입 역사 블로그

0개의 댓글