[데브코스 TIL] Day 1 - 프로젝트 관리의 중요성 - 웹 풀 사이클 데브코스 TIL

김진환·2023년 11월 14일
5
post-thumbnail

'23.11.14(화) 웹 풀 사이클 데브코스 TIL

프로젝트 관리의 중요성

우리의 프로젝트가 포트폴리오가 되기 까지

프로젝트 관리라는 개념에 앞서 프로젝트 라는 것은 무엇인가?

📝 프로젝트란?

일상에서 프로젝트 라는 단어의 뜻을 정확히 이해하지는 않지만 다들 어떤 추상적인 이미지를 떠올리며 사용할 것이다.

출처: 위키백과

이를 소프트웨어 개발의 측면에서 생각하면
어떤 '마구잡이' 라는 이름의 MMORPG 게임을 개발하려고 할 때

마구잡이 개발 프로젝트 로 명명할 수 있다.

이 때 게임 개발 자체 내에서 채팅 시스템을 구현하려고 하면,

마구잡이 채팅 시스템 개발 프로젝트

가 될 수 있다.

마구잡이 개발 프로젝트

  1. 채팅 시스템 개발 프로젝트
  2. 퀘스트 수행 관리 프로젝트
  3. 고객문의 플랫폼 개발 프로젝트
    ...

프로젝트는 MMORPG 게임이라는 큰 개념으로 정의할 수 있고,
중간 중간 과정의 소단위의 개념으로도 정의할 수 있다.

또, 새로운 것을 만들어 내는 것 뿐만 아니라 이미 만들어진 프로그램을 고도화하는 업무도 프로젝트가 될 수 있다.

버전1 -> 버전

종합하면,
새로운 소프트웨어를 만들든, 기존의 것을 업그레이드 하든
"일정한 목적을 달성" 하기 위한 모든 업무 과정들을 프로젝트라고 명명할 수 있다.


🤝 협업

우리가 개발자라는 직업을 가지게 된다면
개인 프로젝트보다 팀 프로젝트로 업무가 이뤄지는 경우가 많기 때문에 개발자에게 협업 능력은 매우 중요하다.

그럼 협업을 잘 하려면 무엇이 중요할까?


바로, 공유 하는 것이다.

개발자가 공유한다고 하면

  • 코드 공유
  • 문서 공유

정도를 떠올릴 수 있다.

물론 개발자는 디자이너, 기획자, FE개발자, BE개발자, 클라이언트.. 들과 소통하며
아이디어 제시, 프로젝트 진행률, 버그리포트, 기획서 등 다양한 형태의 공유가 필요할 것이다.

그 중 첫째로 코드를 가장 밀접하게 협업할 개발자들 사이에서는 코드 공유가 중요하다.

우리가 코드를 공유할 때의 목표는 내가 없어도 공유된 자료만으로 이해할 수 있게 하는 것이다.

출처: 내 repo

우리가 만약 이런 소스 코드를 별도의 설명 없이 몇 만 line을 분석하고 이를 수정해 사용해야 한다고 생각해보자. 생각만 해도 어질어질할 것이다.

하지만 코드가 어떤 기능을 하고, 어떤 개발환경에서 작성되었고, 쓰인 코드가 어떤 의미인지 정리된 문서가 따로 있다면
코드를 해석하는 데 큰 도움이 될 것이다.

그래서 우리가 필요한 것은?


📖 Readme

Readme는

  1. 완성된 프로그램의 설명서
  • 프로그램 사용 방법
  • 레퍼런스
  1. 구현 중인 프로젝트의 현황
  • 구현된 주요 기능
  • 구현 현황
  • 해결해야 하는 문제

등을 효과적으로 공유하기 위해 작성한다.

가독성을 높여 참고할 수 있는 내용을 코드와 같이 전달한다면 코드를 훨씬 보기가 편할 것이다.

결국 Readme의 올바른 활용은 우리의 프로젝트의 성공과 직결될 것이다.


📑 Markdown

Markdown은 단순한 텍스트를 구조적으로 가독성을 높이도록 만드는 하나의 기술이다.

Markdown의 시작점은 웹.

웹 사이트에서 일반인들이 개발을 배우지 않더라도 글을 쉽고 예쁘게 작성할 수 있도록
웹 전용 텍스트로 바꿀 수 있게 해 주는 기술이다.

우리는 이미 마크다운을 사용하고 있었다!


출처: 네이버 블로그

우리는 Markdown이라는 개념을 몰랐지만 어릴적부터 이런 텍스트 에디터와 함께
예쁘게 꾸며 글을 올릴 수 있었다.

이 텍스트 에디터의 여러가지 기능을 통해 우리의 Raw한 텍스트를 Markdown으로 바꾸어 업로드를 하고 있었기 때문인 것이다.


다시 프로젝트의 논점으로 돌아와서,
이 Markdown을 이용하면 쉽게 읽기 좋은 Readme를 만들 수 있다.

출처: 내 repo

위는 필자가 이전에 작성했던 Readme의 일부이다.
같은 내용의 텍스트더라도 가독성이 높다는 것을 바로 느낄 수 있다.

우리는 이런 마크다운으로 작성된 .md 파일, 예를 들어 readme.md 파일을 만들어 공유하게 될 것이다.

우리의 Readme는 Github라는 버전 관리 플랫폼에서 활약하게 될 예정이다.


📋 버전 관리

버전(Version)이라는 단어는 우리에게 익숙할 것이다.

버전은 현재 상태에서의 완성본이라는 것을 뜻한다.

어떤 소프트웨어를 사용하거나, 게임을 할 때

  • 파워포인트 2021
  • 윈도우 11
  • 스타크래프트 1.16.1 립버젼

각 소프트웨어의 이름에 붙은 숫자를 보고 판단할 수 있다.

자연수로 표현하기도 하고, 1.13 같은 소수처럼 보이는 형식으로도 표현하기도 한다.

일반적으로 . 앞에 오는 자연수 부분을 큰 업데이트로, 뒤로 갈 수록 소규모 업데이트를 위해 사용한다.

어떤 숫자를 바꿀 지의 기준은 프로젝트 관리자에게 달려있다.

출처: 나무위키 / 내 repo

우리는 이미 버전 관리에 익숙하다.
최최종찐막제출용마지막수정1123

왼쪽에서 졸업 논문 파일을 만든 작성자는
제일 첫 번째의 졸업논문.hwp 이라는 파일에서 논문 작성을 마치고
많은 수정을 통해 졸업논문최종완성본final최종2.hwp에 도달했다.마지막버전은유서인데

여러 표시를 통해 순서를 간신히 파악할 수 있으나
원하는 내용이 어느 파일에 있는지는 한 눈에 알기 쉽지 않다.

우측은 나의 커밋 로그의 일부인데
각 업데이트를 할 때 마다 어떤 부분이 추가, 수정되었는지 바로 알 수 있다.

이것이 VCS(Version Control System 버전 관리 시스템)을 이용하는 첫 번째 이유가 된다.

우리는 앞으로 Github라는 VCS를 사용하며 버전 관리를 하게 될 것이고,

버전 관리 뿐만 아니라 백업 복구, 협업을 위한 다양한 사용 등을 목적으로 쓰게 될 것이다.

깃허브 만세!

profile
개발자라는 틀에 얽매이지 않는 성장

4개의 댓글

comment-user-thumbnail
2023년 11월 15일

와 포스트 진짜 예쁘게 잘 쓰시네요...! 같이 열심히 써봐요!

1개의 답글
comment-user-thumbnail
2023년 11월 15일

배울점이 많습니다~~~

1개의 답글