협업 및 프로젝트 전에 알면 좋은 정보들

자햐·2024년 8월 13일
1

교육

목록 보기
1/51

- 목차

1. 프로젝트의 의미?

2. README는 무엇일까?

3. Git vs Github?

4. version 관리가 그렇게 중요할까?


1. 프로젝트란?


흔히 개발을 하는 사람들은 어떠한 서비스를 만들 때 "프로젝트를 시작한다.", "프로젝트 진행중이다." 라는 식의 이야기를 하는데요.

개발존에서 그토록 이야기하는 프로젝트는 어떤 뜻일까요?

프로젝트란?

: 하나의 프로그램(시스템)을 만들기 위한 일련의 프로세스

라고 말할 수 있을 것 같습니다.


좀 더 구체적으로 말해본다면?

프로젝트의 구체적 의미?

소스코드 구현뿐만 아니라, 어떤 프로그램을 만들기 위한,
1) 기획
2) 설계
3) 테스트
4) 배포
라는 과정을 포함하는 것을 프로젝트라고 말할 수 있을 것 같습니다.

프로젝트의 예시를 생각해본다면, 계산기 프로그램, 노션, 카카오톡, 네이버까지.. 광범위하게 이를 수 있습니다!

프로젝트를 할 때에는 혼자 할 수도 있지만, 여러 분야의 일들을 담당하는 사람들과 함께 할 수도 있겠죠, 이를 협업이라고 말합니다.

협업할 때에는 코드 공유, 문서 공유, 진행률(진행 척도) 공유, 담당자가 누구인지? 공유 등의 일들을 하게 되겠지요? 결국은 [협업 = 공유] 라고 보아도 과언이 아닐 겁니다. : 3



2. README(리드미)는 무엇일까?


리드미의 뜻에 대해 알아봅시다.

깃허브를 처음 들어가면 README라는 말이 써 있는 페이지를 볼 수 있습니다. 그 밖의 다양한 개발 관련 문서에서도 README라는 말을 볼 수 있죠. 어떤 뜻인지 알아봅시다!

(1) READ ME! : "읽으쇼!"

리드미는 크게 두 가지 역할을 하고 있는 문서 입니다.

(1) 완성된 프로그램의 설명서

  • 프로그램 사용 방법
  • 레퍼런스

(2) 구현 중인 프로젝트의 현황

  • 구현된 주요 기능
  • 구현 현황
  • 코드가 해결해야 하는 문제 등

을 설명하는 것!


(2) 리드미 작성법(개념)

ReadME 작성법 : 'Markdown' 을 이용합니다!

section1. 특별한 리드미 파일?
section2. markdown이 무엇인가요?
section3. 그럼 markdown의 주요 목적은 무엇인가요?
section4. markdown을 쓸 줄 알면 많이 도움이 되나요?
section5. 그 중에서도... 깃허브 markdown

section1. 특별한 README(리드미) 파일?

Markdown이라는 걸 이용한 리드미 파일은 특별해 보입니다..
사실은?
-> 특별한 파일은 아닙니다!
-> 그냥 확장자만 .md인 파일(markdown)일 뿐이랍니다.

[확장자 종류]
.txt : 텍스트 파일
.jpg : 그림 파일
.mov : 동영상 파일

-> Readme.txt
그니까 그냥 텍스트파일로 써도 되는 것이지요.

-> Readme.md
얘는 markdown의 확장자를 가진 readme 파일입니다.

section2. markdown이 무엇인가요?

그럼 markdown(마크다운)은 무엇일까요?

개발자가 아닌 일반 사용자들도 웹에서 쉽고 예쁘게, 가독성 좋게 만들어주는 기술, 일반 텍스트를 웹 기술로 바꿔주는 하나의 도구.

(웹 개발을 몰라도 일반 유저들이 웹에서 글을 가독성있게 쓸 수 있도록 만들어놓은 도구_텍스트를 웹 전용 텍스트로 만드는 도구)

그럼 마크다운이 없었다면?
-> 그냥 맑은고딕체로 딱딱한 텍스트로만 이뤄진 웹을 보게 되었겠죠?

-> markdown의 주목적
1. 읽기 쉽게
2. 쓰기 쉽게
하는 것이 주 목적입니다!

-> markdown의 사용처?

위키백과, 티스토리, 노션, 슬랙...

-> 그 중에서도.. 깃허브 markdown
markdown을 일부 변형한
깃허브-flavored markdown


chap3. 리드미 작성법(실습)

개행은 역슬래쉬

애웅 -> 코드작성!
공백 4칸 이상 띄워서 쓰면 된다.

인용문!
우엥

사실 강조의 의미로 리드미에서 사용함

알아야 하는 마크다운은 깃허브에서 쓰는 마크다운
좀 더 개발자 지향적인 마크다운 서비스

같은 문법으로 디스코드 사용중 !
디스코드에서 사용하는 마크다운은 깃허브에서 쓰는 마크다운과 같음



Part 2, chap4(2). 깃 처음 만나기

chap5(3). 버전 관리

목차
section1. 버젼이란?
section2. 버젼 관리의 중요성
section3. 버전 관리 시스템의 종류

버전이란?
-> 버전은 유의미한 수정을 말합니다.
(개선에 가까움)

<기존>
abc

<수정>
abcd <-는 되어야 의미가 있다!
abc <- 띄어쓰기 하나는 의미 없어..

버전의 추가?
1.0 > 1.1 > 1.2 > ... > 2.0

뭐가 맞을까?

굳이 따지면 1.0과 2.0이 메인버전이지만,
1.1 1.2같은 경우 서브버전이다.

서브버전의 경우 더 쪼개진 작은 버전이라고 생각하면 됨


chap6. 버전 관리의 중요성

안정성을 보완해주는 그런 ?

그래서 우리는 버전 관리 시스템을 씁니다.
version control system

  • 버전 관리
  • 백업 복구
  • (선택) 협업

개발에만 쓸 필요 없고 문서작업 할 때도 쓸 수 있음



버전 관리 시스템의 종류(version system)
1. 로컬 vcs -> 혼자하던걸 시스템 설치해서 내 컴퓨터에서만 하는거(백업, 버전관리 등등 할 수 있지만 협업은 못함) -> 버전 관리를 깔끔하게 하려고 그냥 하는거...

  1. 중앙집중식 vcs -> 중간에 중심의 컴퓨터를 하나 두는 것. 중앙컴퓨터에다가 다 저장을 하는 것
    (하나는 내 컴퓨터, 하나는 다른 곳에 있는 컴퓨터. 내 컴퓨터에서 버전관리 하는게 아니라 다른 컴퓨터에다가 백업 용도로 계속 저장하는 것. 중심은 다른 컴퓨터. 다른 컴퓨터가 백업된 버전을 가지고 있고, 우리는 우리 컴퓨터로 필요한 "특정 파일" 하나만 가지고 와서 작업을 하는 것.)
    이제 제 3의 컴퓨터라면 언제든지 중앙컴퓨터에 연결하여 협업을 할 수 있게 된 것.

대표적인 시스템으로는 svn, cvs 등이 있음

  1. 분산 vcs -> 분산형은 중앙형 컴퓨터로부터 내 컴퓨터로 버전 "통째로(프로젝트 단위로)" 가지고 옴. 훨씬 더 관리 포인트가 편하게 됨. 안정적이게 됨.
    파일 하나하나 가지고 오는 것보다는(중앙집중식보다는) 전체 뭉탱이를 가지고 와서 수정을 하는게 더 안정적임.

중앙집중식 vcs는 파일에서 같은 부분이 다른 컴퓨터에서 수정이 될 경우 충돌이 날 수 있음
분산vcs에서는 중앙컴퓨터 관점에서 관리포인트가줄어든 것이라고 볼 수 있는 것.

대표적인 시스템 : git, mecurial, bazaar

우리는 분산 vcs를 쓰겠죠!




profile
산업과 예술의 만남에 있는 예비 개발자..

0개의 댓글