Skip to content
This repository has been archived by the owner on Jul 19, 2023. It is now read-only.

Commit

Permalink
오픈소스 과제 5
Browse files Browse the repository at this point in the history
Fixes #32
  • Loading branch information
fkdl0048 committed May 30, 2023
1 parent 92b8efb commit 32f8443
Show file tree
Hide file tree
Showing 2 changed files with 146 additions and 0 deletions.
146 changes: 146 additions & 0 deletions Homework/Homework5.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,146 @@
# 오픈소스SW개론 과제 5 (협업 실습)

18011690 이정안

하나의 프로젝트 주제를 정해 수행하는데 마치 여러 사람이 협업하듯이 GitHub에 버전관리를 하면서 프로젝트를 완성하고 오픈소스로 공개하는 실습을 진행

## 과제 설명

- 프로그래밍 언어: C, C++, Python 중 하나를 선택함

- 브랜치 전략: Git flow 또는 GitHub flow 브랜치 전략을 사용할 것. 더 이상 필요하지 않더라도 사용한 모든 브랜치를 평가를 위해 삭제하지 말고 유지할 것.

- 본인 코드: 코드는 본인이 직접 작성한 코드이어야함. 인터넷이나 다른 사람의 코드의 전체 혹은 일부를 사용하는 것은 표절로 간주되며 허용되지 않음. 그러나 과거에 본인이 수행했던 프로젝트의 코드를 사용하는 것은 가능함. 이 과제는 코딩 자체가 아닌 GitHub 협업 및 버전관리 등을 연습하는 것을 목표로 하기 때문.

- 코드의 정확성: 코드는 오류 없이 실행이 되어야함. 실행이 안 되거나 버그가 발생하는 경우 감점됨Ÿ프로젝트 난이도: 다소 어려운 프로젝트 주제를 선택해야함. 한 사람이 쉽게 끝낼 수 있는 프로젝트는 굳이 여러 사람이 브랜치 전략을 사용하여 GitHub 버전관리를 하면서 협업할 이유가 없기 때문.

- README.md: README.md 파일에 코드를 컴파일하고 실행하기 위한 자세한 지침을 포함해야함. 코드는 Windows 또는 Linux OS 둘 중 하나 이상과는 호환되어야함. 예를 들어, 코드가 MacOS에서 작성된 경우 MacOS 및 Linux 각각에서 실행 가능한 지침을 모두 제공해야할 수 있음. 또한, README.md에는 코드의 용도, 기능, 사용법 등을 작성해야함.

- 호환성: 다른 컴퓨터에서 코드를 테스트하여 다른 컴퓨터 환경에서 작동하는지 확인할 것. 자신의 코드를 실제 오픈소스로 공개한다고 생각하고 다른 사람들이 쉽게 실행할 수 있도록 노력할 것. 불충분하거나 불분명한 지침으로 인해 평가자가 코드를 실행할 수 없는 경우 감점됨

- 코드 공개: 해당 코드는 GitHub 원격저장소에 README.md와 함께 공개할 것. 코드 공개가 불가능한 경우 비공개 원격저장소를 만들고 평가를 위해 조교의 GitHub 계정을 invite할 것.

- 메시지: Commit 메시지의 경우 수정 내용을 잘 반영한 메시지여야함. 실습 때처럼 “Contents1”와 같은 메시지를 작성하면 안 됨. 파일명, 디렉토리명, pull request 코멘트 등 다른 모든 내용들도 마찬가지로 실제 현장에서 협업할 때 사용할만한 내용으로 되어있어야함.

- 가독성: 주석 등을 활용하여 코드 가독성에 신경 쓸 것.

- 코드/버전관리 설명: 코드에 대해 한글/word 등 제출하는 문서에 자세히 설명할 것. 또한, 버전관리 방식에 대해서도 자세히 설명할 것. 각 브랜치의 기능, 브랜치 전략, 협업 시 역할분담 등등.

## 프로젝트 주제

**ReInput-tool**

진로가 게임 개발자이다 보니 실제로 진행했던 유니티 오픈소스 라이브러리 개발 프로젝트로 선정

게임 개발과정에서 효율적인 디버깅을 위해 개발된 툴이다.

약 2개월전에 진행된 프로젝트로 현재 V0.1.2 버전까지 개발되었다.

동아리에서 개발되어 동아리 사람들이 실제로 사용하고 있으며 개발 과정에서 Github flow를 참고하여 Issue, Pull Request, Discussion 등을 사용하였다.

실제로 개발되는 SandBox프로젝트와 릴리즈되는 프로젝트를 분리하여 개발하였으며, 이를 위해 브랜치 전략을 사용하였다.

## 프로그래밍 언어

C# (Unity)

## 브랜치 전략

Github flow

## 본인 코드

개발에서 본인은 데이터 처리, 입력 처리등을 담당하였고 협업자 1은 UI를 제작하였다.

따라서 본인(fkdl0048)코드만 첨부할 예정

## 코드의 정확성

실제로 동아리에서 사용되고 있으며, 버그가 발생하지 않는다.

## 프로젝트 난이도

약 2개월간 개발 진행.

개발 내역, 회의 내용, 협업을 위한 기초 베이스 룰 같은 내용도 레포에 포함되어 있다.

## README.md

릴리즈 레포에 사용하기 위한 방법과 영상이 포함되어 있다.

## 호환성

유니티 프로젝트이기 때문에 유니티가 설치되어 있어야 한다.

UI ToolKit을 사용하였기 때문에 UI Toolkit이 설치되어 있어야 한다.

## 코드 공개

개발 레포, 릴리즈레포 모두 공개되어 있다.

## 메시지

수정 요구 사항과 직접적인 코드 리뷰또한 포함되어 있음

## 가독성

리뷰를 통해 올바른 가독성을 가지고자 함

## 코드/버전관리 설명

- [릴리즈 레포](https://github.com/BRIDGE-DEV/ReInput-tool)
- [개발 레포](https://github.com/BRIDGE-DEV/Unity_Custom_Editor_Study)

### 버전관리 방식

기본적으로 유니티에서 직접 사용하기 위해서는 릴리즈 레포와 개발레포(SandBox)레포를 구분하여 관리하였다.

개발레포는 github flow를 사용하여 Main을 기준으로 Feature 브랜치를 생성하여 개발하였다.(각 개발 기능을 중심으로)

즉, 작업하기 이전에 작업 해야하는 내용을 직접 파악하고 이를 이슈로 세분화 한다.

![image](https://github.com/fkdl0048/ToDo/assets/84510455/72e1bce5-a1ed-4461-bbb9-d961cdb51667)

- [기능 개발 Issue](https://github.com/BRIDGE-DEV/Unity_Custom_Editor_Study/issues/6)

![image](https://github.com/BRIDGE-DEV/Unity_Custom_Editor_Study/assets/84510455/c8cc0df7-1299-4d1b-a893-bffcc94a00b0)

작업을 Task로 만들어서 목적, 내용, 참고사항으로 분리하고 해당 이슈를 기준으로 브랜치를 생성하여 작업한다.

작업을 실시간으로 협업자에게 공유가 가능해지고 이슈와 PR을 바인딩하여 PR이 병합되면 이슈또한 닫히게 된다.

- [기능 개발 PR](https://github.com/BRIDGE-DEV/Unity_Custom_Editor_Study/pull/8)

![image](https://github.com/BRIDGE-DEV/Unity_Custom_Editor_Study/assets/84510455/154fe070-3f1e-486e-b05d-dcb58313a863)

![image](https://github.com/BRIDGE-DEV/Unity_Custom_Editor_Study/assets/84510455/bfa996da-83fb-45e0-944f-975e7af63059)

이런식으로 각 브랜치 전략을 가져가며 개발을 진행했다.

**코드리뷰**

![image](https://github.com/fkdl0048/ToDo/assets/84510455/4256bd5c-03eb-4f1d-be51-8ec29464bff2)

### 협업시 역할분담

사전에 이런 내용은 Discussion을 통해 협의하였으며, 이를 통해 각자의 역할을 분담하였다.

![image](https://github.com/BRIDGE-DEV/Unity_Custom_Editor_Study/assets/84510455/f878001e-dcc0-4320-a0d0-0f9675e4acb6)

실제 개발에 대한 기획과 역할 분담 프로세스

- [역할 분담 및 기획](https://github.com/BRIDGE-DEV/Unity_Custom_Editor_Study/discussions/3)

*모든 코드에 대한 내용을 작성할 수 없어서 해당 레포를 참고*

### 릴리즈 레포

*위에 레포 링크 첨부*

![image](https://github.com/fkdl0048/ToDo/assets/84510455/a847034e-c48e-4ee0-94fc-8dc9b317049d)

![image](https://github.com/fkdl0048/ToDo/assets/84510455/2883dde7-0818-411d-9c15-fef341815fba)

어떤 라이브러리인지, 설치 방법, 사용 방법, 라이센스, 릴리즈 노트 등이 작성되어 있다.

실제 사용되는 GIF도 같이 첨부되어 있다.
Binary file added Homework/Homework5.pdf
Binary file not shown.

0 comments on commit 32f8443

Please sign in to comment.