
프로젝트:
일정하게 정해진 제약조건 하에 각종 요구사항을 수행하는 일련의 프로세스
하나의 서비스, 프로그램, 웹사이트 등을 만들기 위해 기획-설계-개발-테스트-배포의 과정을 거친다.
이와 같은 프로세스를 ‘프로젝트’라 칭한다.
프로젝트의 범위는 서비스 개발 과정의 시작과 끝만 의미하는 것은 아니다.
완성된 서비스에 신규 기능을 추가하는 과정 또한 하나의 ‘프로젝트’로 정의할 수 있다.
하나의 프로젝트를 완성하기 위해, 이해관계자들과 협업을 진행한다.
개발자로써 코딩을 잘 하는 것도 중요하지만 협업이 필요한 프로젝트에선 소통이 잘 되어야한다.
소통을 잘 하기 위해 우리는 코드, 문서, 진행 과정, 완성율 등을 이해관계자들과 ‘공유’해야한다.
마크다운:
일반 텍스트를#,*,>와 같은 특수기호를 활용하여 양식이 있는 문서를 작성할 수 있는 하나의 기술
텍스트 .txt, 사진 .jpg, 영상 .mov 등 파일에 포함된 데이터 형식에 따라 ‘파일 확장자’로 종류를 구분한다.
텍스트 데이터를 마크다운 문법을 적용하여 출력할 파일에는 .md 확장자를 사용하여 마크다운 포멧을 적용한다.
마크다운을 사용하여 글을 작성할 수 있는 플랫폼의 종류는 Velog, Tistory, Notion 등이 있다.
플랫폼 중 Github 에서는 ‘Github-Flavored Markdown’ 이라는 변형된 마크다운 문법이 적용되어있으며, 이와 같은 문법을 Discord에서도 사용할 수 있다.
Github에 소스코드 공유 시, 프로그램에 대한 사용방법과 주요 기능 등이 서술된 README 파일을 배포하게된다.
이때 README 파일에 .md 확장자와 마크다운 문법을 적용하여 가독성 좋은 가이드를 배포할 수 있다.
버전:
같은 대상의 시간 흐름에 따라 변화된 상태를 구분하기 위한 이름표
문서나 소스코드에서 유의미한 수정이 발생하였을 때, 유니코드로 명칭을 구분한다면 어떤 것이 최종본을 의미하는지 찾기 어렵다.
이러한 문제점을 해결하기 위하여 대상을 관리하는 협업자들과 약속된 포맷으로 넘버링을 하여 버전을 관리한다.
위와 같이 수동으로 버전관리를 진행할 수 있지만, Version Control System(이하 VCS)를 통해 자동으로 관리할 수 있다.
VCS를 활용하여 버전관리 뿐만 아니라, 백업 및 복구 기능을 협업 시 유용하게 사용할 수 있다.
VCS의 종류는 로컬 / 중앙집중형 / 분산형 이렇게 3가지로 구분할 수 있다.
중앙집중식과 분산 방식의 차이점은 아래와 같다.
중앙집중형 VCS:
모든 버전 정보를 하나의 중앙 서버에 저장하여 파일 단위로 변경사항을 교체
분산형 VCS:
각 클라이언트가 전체 저장소의 복사본을 보유하여 저장소 단위로 변경사항을 교체