1. 프로젝트의 중요성 / Markdown

JSLEE·2024년 4월 8일

프로젝트란?

프로젝트의 개념은 다음과 같다.

프로젝트(영어: project)는 일정한 기간 안에 일정한 목적을 달성하기 위해 수행하는 업무의 묶음을 말한다. 하나의 프로젝트는 정해진 기간, 배정된 금액, 투입인력 등 일정한 제약조건 하에서 각종 요구사항(requirement)을 수행하는 방식으로 진행된다.

하나의 업무 또는 일을 나타내는 단위를 뜻하는 말로 많이 사용되고 있다.
https://ko.wikipedia.org/wiki/%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8

즉, 프로젝트란 하나의 프로그램을 만들기 위한 프로세스로써, 큰 업무가 아닌 작은 업무들 또한 하나의 프로젝트로 볼 수 있다. 개발을 위해 업무를 수행하는 것도 프로젝트이고, 영업을 위해 기획하는 것도 프로젝트이며, 무언가에 대한 설계를 진행하는 것 또한 하나의 프로젝트로 볼 수 있다.


작은 프로젝트의 경우에 혼자서도 수행할 수 있지만, 큰 프로젝트의 경우에는 많은 사람들과 협업을 해야하는 경우가 생긴다. 하지만, 내가 작성한 코드들이 다른 사람들이 보기에는 이해가 어렵고 난잡한 경우가 생길 수 있다. 따라서 협업을 잘 하기 위해서는 소통능력이 요구되며 적절하게 공유를 진행해야 한다. 그래서 사용하는 것이 리드미(ReadMe) 이다.

ReadMe

리드미란, 다른 사용자들이 내가 작성한 코드나 업무에 대해 쉽게 이해할 수 있도록 텍스트의 형태로 안내를 해주는 것이다. 예를 들어, 개인이 배포한 소프트웨어에 리드미 파일을 첨부하여 사용자들이 쉽게 설치할 수 있도록 하고, 주의사항 등을 적어놓는 것 등 프로그램에 대해 설명을 적어놓는 것이 리드미이다.

간단한 내용들은 물론 단순히 텍스트(.txt)파일로 나타낼 수 있지만, 내용이 많아질수록 텍스트만으로는 가독성이 떨어진다. 따라서, 마크다운(.md)을 이용하여 리드미를 작성한다.

Markdown

그래서 마크다운이 무엇이냐하면 다음과 같다.

마크다운(Markdown)은 일반 텍스트 기반의 경량 마크업 언어다. 일반 텍스트로 서식이 있는 문서를 작성하는 데 사용되며, 일반 마크업 언어에 비해 문법이 쉽고 간단한 것이 특징이다. HTML과 리치 텍스트(RTF) 등 서식 문서로 쉽게 변환되기 때문에 응용 소프트웨어와 함께 배포되는 README 파일이나 온라인 게시물 등에 많이 사용된다.


https://ko.wikipedia.org/wiki/%EB%A7%88%ED%81%AC%EB%8B%A4%EC%9A%B4

요약하자면, 텍스트를 가독성있게 읽을 수 있도록 글자를 꾸미는 것이다.
대표적인 효과로는, 글자를 굵게 나타내고 기울인다거나, 위의 박스처럼 박스안에 내용을 담을 수 있다.
이는 다양한 Github, Notion, Discord 등 다양한 플랫폼에서 지원하고 있다.

Markdown의 사용법

플랫폼마다 사용법과 출력물의 미세한 차이는 있겠지만, 대부분은 유사하다.

1. 제목 쓰기

제목 앞에 #을 붙이는 형식으로 작성한다.
ex)
# 제목
## 제목
###	제목
#### 제목
##### 제목
###### 제목

#이 적을수록 큰 글자이고, #이 많을수록 작은 글자이다.
제일 작은 제목의 크기

2. 번호가 있는 목록

ex)
1.
2.
3. 
의 숫자를 작성하여 사용한다.

3. 번호가 없는 목록

- * + 기호를 이용하여 작성한다.
ex) - 내용

어떤 기호를 사용하든 똑같다. 
  • 내용

4. 기울여 쓰기(_)

양 옆에 언더바(_)를 이용하여 작성한다.
ex) _기울이기_

기울이기


5. 굵게 쓰기(**)

양 옆에 별표 2개(**)를 이용하여 작성한다.
ex) **굵게**

굵게


6. 코드 블록(```)

문단의 첫줄과 끝줄에 ```를 작성한다.
ex)
```js
console.log('hello')
```
console.log('hello')

7. 인용문(>)

> 를 이용하여 작성한다.

ex)
> 가나다라마바사

가나다라마바사


마크다운의 대표적인 문법은 살펴보았고, 프로젝트를 수행하면서 만나게 되는 버전에 대해서 정리한다.

버전에 대하여

버전이란?

버전이란 보통 "어떤 프로그램을 수정, 개선하여 완성한 것. 새로워질 때마다 번호를 늘려 나감." 을 의미한다.
프로그래밍에서 우리가 주목해야 할 점은 "개선"이다.
즉, 유의미한 수정을 했을 때 버전업이 되었다고 생각할 수 있겠다.

버전 관리의 중요성

버전을 수정했다는 것은 새로운 하나의 완성본이 생겨났다는 말과 같다.
즉, 하나의 프로젝트를 수행하면서 여러가지 버전의 결과물들이 생성될 것이다.
그래서 왜 버전관리가 중요한가? 그 이유는 다음과 같다.

  • 새로운 버전은 수정하여 또 새로운 버전으로 개선할 수 있다. (수정 가능)
  • 작업을 수행하다가 충돌과 오류가 너무 많이 생겨서 예전 파일로 돌아가고 싶다. (백업 및 복구 기능)
  • 다른 사용자들과 공유하여 작업하기 용이하다. (협업)

따라서 버전의 관리는 중요하며 관리 방식또한 여러가지가 존재한다.

버전 관리 시스템의 종류

1. 로컬 VCS( Version Control System )

로컬VCS는 말 그대로 로컬에서 버전 관리를 진행한다.
내 컴퓨터 안에서만 버전 관리를 한다는 것이다.
따라서 협업에는 사용할 수 없다.

2. 중앙집중식 VCS

중앙집중식VCS는 중간의 컴퓨터(서버)를 통한다.
서버를 통하여 작업물의 필요한 부분만 떼와서 작업을 하고, 다시 서버에 저장한다.
이 방식은 협업이 가능하지만, 다른 사용자들이 동시에 수정할 경우 충돌을 일으킬 수 있다.

3. 분산 VCS

분산VCS가 가장 자주 사용하는 방식이다.
필요한 버전을 통째로 가져와서 작업을 한 뒤, 통째로 저장한다.
따라서, 분산 VCS는 협업하는 과정에서 안정적인 버전 관리 시스템 모델이다.


profile
공부한 내용들을 정리하기 위해 사용하는 블로그입니다.

0개의 댓글