'23.11.14(화) 웹 풀 사이클 데브코스 TIL
프로젝트 관리의 중요성
우리의 프로젝트가 포트폴리오가 되기 까지
프로젝트 관리라는 개념에 앞서 프로젝트 라는 것은 무엇인가?
일상에서 프로젝트 라는 단어의 뜻을 정확히 이해하지는 않지만 다들 어떤 추상적인 이미지를 떠올리며 사용할 것이다.
출처: 위키백과
이를 소프트웨어 개발의 측면에서 생각하면
어떤 '마구잡이' 라는 이름의 MMORPG 게임을 개발하려고 할 때
마구잡이 개발 프로젝트 로 명명할 수 있다.
이 때 게임 개발 자체 내에서 채팅 시스템을 구현하려고 하면,
마구잡이 채팅 시스템 개발 프로젝트
가 될 수 있다.
마구잡이 개발 프로젝트
- 채팅 시스템 개발 프로젝트
- 퀘스트 수행 관리 프로젝트
- 고객문의 플랫폼 개발 프로젝트
...
프로젝트는 MMORPG 게임이라는 큰 개념으로 정의할 수 있고,
중간 중간 과정의 소단위의 개념으로도 정의할 수 있다.
또, 새로운 것을 만들어 내는 것 뿐만 아니라 이미 만들어진 프로그램을 고도화하는 업무도 프로젝트가 될 수 있다.
버전1 -> 버전
종합하면,
새로운 소프트웨어를 만들든, 기존의 것을 업그레이드 하든
"일정한 목적을 달성" 하기 위한 모든 업무 과정들을 프로젝트라고 명명할 수 있다.
우리가 개발자라는 직업을 가지게 된다면
개인 프로젝트보다 팀 프로젝트로 업무가 이뤄지는 경우가 많기 때문에 개발자에게 협업 능력은 매우 중요하다.
그럼 협업을 잘 하려면 무엇이 중요할까?
바로, 공유 하는 것이다.
개발자가 공유한다고 하면
정도를 떠올릴 수 있다.
물론 개발자는 디자이너, 기획자, FE개발자, BE개발자, 클라이언트.. 들과 소통하며
아이디어 제시, 프로젝트 진행률, 버그리포트, 기획서 등 다양한 형태의 공유가 필요할 것이다.
그 중 첫째로 코드를 가장 밀접하게 협업할 개발자들 사이에서는 코드 공유가 중요하다.
우리가 코드를 공유할 때의 목표는 내가 없어도 공유된 자료만으로 이해할 수 있게 하는 것이다.
출처: 내 repo
우리가 만약 이런 소스 코드를 별도의 설명 없이 몇 만 line을 분석하고 이를 수정해 사용해야 한다고 생각해보자. 생각만 해도 어질어질할 것이다.
하지만 코드가 어떤 기능을 하고, 어떤 개발환경에서 작성되었고, 쓰인 코드가 어떤 의미인지 정리된 문서가 따로 있다면
코드를 해석하는 데 큰 도움이 될 것이다.
그래서 우리가 필요한 것은?
Readme는
등을 효과적으로 공유하기 위해 작성한다.
가독성을 높여 참고할 수 있는 내용을 코드와 같이 전달한다면 코드를 훨씬 보기가 편할 것이다.
Markdown은 단순한 텍스트를 구조적으로 가독성을 높이도록 만드는 하나의 기술이다.
Markdown의 시작점은 웹.
웹 사이트에서 일반인들이 개발을 배우지 않더라도 글을 쉽고 예쁘게 작성할 수 있도록
웹 전용 텍스트로 바꿀 수 있게 해 주는 기술이다.
우리는 이미 마크다운을 사용하고 있었다!
출처: 네이버 블로그
우리는 Markdown이라는 개념을 몰랐지만 어릴적부터 이런 텍스트 에디터와 함께
예쁘게 꾸며 글을 올릴 수 있었다.
이 텍스트 에디터의 여러가지 기능을 통해 우리의 Raw한 텍스트를 Markdown으로 바꾸어 업로드를 하고 있었기 때문인 것이다.
다시 프로젝트의 논점으로 돌아와서,
이 Markdown을 이용하면 쉽게 읽기 좋은 Readme를 만들 수 있다.
출처: 내 repo
위는 필자가 이전에 작성했던 Readme의 일부이다.
같은 내용의 텍스트더라도 가독성이 높다는 것을 바로 느낄 수 있다.
우리는 이런 마크다운으로 작성된 .md
파일, 예를 들어 readme.md
파일을 만들어 공유하게 될 것이다.
우리의 Readme는 Github라는 버전 관리 플랫폼에서 활약하게 될 예정이다.
버전(Version)이라는 단어는 우리에게 익숙할 것이다.
버전은 현재 상태에서의 완성본이라는 것을 뜻한다.
어떤 소프트웨어를 사용하거나, 게임을 할 때
각 소프트웨어의 이름에 붙은 숫자를 보고 판단할 수 있다.
자연수로 표현하기도 하고, 1.13 같은 소수처럼 보이는 형식으로도 표현하기도 한다.
일반적으로 . 앞에 오는 자연수 부분을 큰 업데이트로, 뒤로 갈 수록 소규모 업데이트를 위해 사용한다.
어떤 숫자를 바꿀 지의 기준은 프로젝트 관리자에게 달려있다.
출처: 나무위키 / 내 repo
우리는 이미 버전 관리에 익숙하다.
최최종찐막제출용마지막수정1123
왼쪽에서 졸업 논문 파일을 만든 작성자는
제일 첫 번째의 졸업논문.hwp
이라는 파일에서 논문 작성을 마치고
많은 수정을 통해 졸업논문최종완성본final최종2.hwp
에 도달했다.마지막버전은유서인데
여러 표시를 통해 순서를 간신히 파악할 수 있으나
원하는 내용이 어느 파일에 있는지는 한 눈에 알기 쉽지 않다.
우측은 나의 커밋 로그의 일부인데
각 업데이트를 할 때 마다 어떤 부분이 추가, 수정되었는지 바로 알 수 있다.
이것이 VCS(Version Control System 버전 관리 시스템)을 이용하는 첫 번째 이유가 된다.
우리는 앞으로 Github라는 VCS를 사용하며 버전 관리를 하게 될 것이고,
버전 관리 뿐만 아니라 백업 복구, 협업을 위한 다양한 사용 등을 목적으로 쓰게 될 것이다.
깃허브 만세!
와 포스트 진짜 예쁘게 잘 쓰시네요...! 같이 열심히 써봐요!