Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feedback #1

Open
wants to merge 27 commits into
base: feedback
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
920c4cc
Setting up GitHub Classroom Feedback
github-classroom[bot] Oct 12, 2024
8e8a4c4
add deadline
github-classroom[bot] Oct 12, 2024
09ededc
feat: code 디렉토리 생성
02ggang9 Oct 12, 2024
f65f827
feat: test 파일 생성
02ggang9 Oct 12, 2024
476923d
feat: submoudle test
02ggang9 Oct 12, 2024
a99f8b1
feat: μ„œλΈŒλͺ¨λ“ˆ μΆ”κ°€
02ggang9 Oct 12, 2024
843a926
Add files via upload
02ggang9 Oct 25, 2024
d07d03e
Add files via upload
02ggang9 Oct 30, 2024
aee95a6
Update README.md
02ggang9 Oct 30, 2024
e299563
Update README.md
02ggang9 Oct 30, 2024
8eda0b7
Update README.md
02ggang9 Oct 30, 2024
7abf20c
Update README.md
02ggang9 Oct 30, 2024
34cf0b9
feat: μ‹œμŠ€ν…œ ꡬ성도 사진 μˆ˜μ • 및 유튜브 μ˜μƒμ˜ 썸넀일 μΆ”κ°€
llddang Oct 30, 2024
b51d76d
feat: ꡬ성도 사진 μ‚­μ œ
llddang Oct 30, 2024
5f1d208
feat: μ˜ˆμ „ ꡬ성도 사진 μ‚­μ œ
llddang Oct 30, 2024
fdf01f0
feat: μƒ˜ν”Œ λ¦¬λ“œλ―Έ 파일 μ‚­μ œ
llddang Oct 30, 2024
1775428
feat: μƒ˜ν”Œ μ„€μΉ˜ 및 λΉŒλ“œ 파일 μ‚­μ œ
llddang Oct 30, 2024
6b25d42
feat: μ„œλΈŒ λͺ¨λ“ˆ μœ„μΉ˜ λ³€κ²½
llddang Oct 30, 2024
855db0a
feat: λ¬Έμ„œ μ—…λ‘œλ“œ
llddang Oct 30, 2024
66c7f1a
Update README.md
JJimini Oct 30, 2024
e319335
Update README.md
JJimini Oct 30, 2024
60b2a0a
Update README.md
JJimini Oct 30, 2024
77e8c8f
Update README.md
JJimini Oct 30, 2024
7ee3550
Update README.md
02ggang9 Oct 30, 2024
92fa408
Delete docs/03.λ°œν‘œμžλ£Œ/λ°œν‘œμžλ£Œ.pdf
llddang Oct 31, 2024
6bfc99f
feat: λ°œν‘œμžλ£Œ μ—…λ‘œλ“œ
llddang Oct 31, 2024
0fa62ea
feat: λ°œν‘œμžλ£Œ 및 ν¬μŠ€ν„° 파일 μˆ˜μ •
llddang Oct 31, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
[submodule "Frontend"]
path = Frontend
url = https://github.com/PNU-Tree/Tree-front
[submodule "Unity-FPS"]
path = Unity-FPS
url = https://github.com/PNU-Tree/unity-FPS-microgame
[submodule "Unity-HDRP"]
path = Unity-HDRP
url = https://github.com/PNU-Tree/unity-HDRP
[submodule "WebRTC-HDRP"]
path = WebRTC-HDRP
url = https://github.com/PNU-Tree/HDRP-signaling
[submodule "WebRTC-FPS"]
path = WebRTC-FPS
url = https://github.com/PNU-Tree/FPS-signaling
[submodule "Backend"]
path = Backend
url = https://github.com/PNU-Tree/backend
[submodule "Infra"]
path = Infra
url = https://github.com/PNU-Tree/Tree-infra
[submodule "Database"]
path = Database
url = https://github.com/PNU-Tree/database
1 change: 1 addition & 0 deletions Backend
Submodule Backend added at cff96e
1 change: 1 addition & 0 deletions Database
Submodule Database added at 030ad5
1 change: 1 addition & 0 deletions Frontend
Submodule Frontend added at 43a728
1 change: 1 addition & 0 deletions Infra
Submodule Infra added at 2f2898
352 changes: 148 additions & 204 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,205 +1,149 @@
# Template for Capstone
이 λ ˆνŒŒμ§€ν† λ¦¬λŠ” 학생듀이 μΊ‘μŠ€ν†€ ν”„λ‘œμ νŠΈ 결과물을 μœ„ν•œ λ ˆνŒŒμ§€ν† λ¦¬ μƒμ„±μ‹œμ— μ°Έκ³ ν•  λ‚΄μš©λ“€μ„ λ‹΄κ³  μžˆμŠ΅λ‹ˆλ‹€.
1. λ ˆνŒŒμ§€ν† λ¦¬ 생성
2. λ ˆνŒŒμ§€ν† λ¦¬ ꡬ성
3. λ ˆνŒŒμ§€ν† λ¦¬ 제좜
4. README.md κ°€μ΄λ“œλΌμΈ
5. README.md μž‘μ„±νŒ

---

## 1. λ ˆνŒŒμ§€ν† λ¦¬ 생성
- [https://classroom.github.com/a/NJK_cPkH](https://classroom.github.com/a/NJK_cPkH)
- μœ„ Github Classroom 링크에 접속해 본인 쑰의 github λ ˆνŒŒμ§€ν† λ¦¬λ₯Ό μƒμ„±ν•˜μ„Έμš”.
<img src="https://github.com/user-attachments/assets/b5a7f34a-e146-4253-b57d-672737a75a50" alt="κΉƒν—™ 클래슀룸 레포 생성" width="600" />

- λ ˆν¬μ§€ν† λ¦¬ 생성 μ‹œ νŒ€λͺ…은 `TEAM-{μ‘° 번호}` ν˜•μ‹μœΌλ‘œ μƒμ„±ν•˜μ„Έμš”.
- 예λ₯Ό λ“€μ–΄, 2024년도 3쑰의 νŒ€λͺ…은 `TEAM-03` μž…λ‹ˆλ‹€.
- 이 경우 `Capstone2024-TEAM-03`μ΄λž€ μ΄λ¦„μœΌλ‘œ λ ˆνŒŒμ§€ν† λ¦¬κ°€ μƒμ„±λ©λ‹ˆλ‹€.

---

## 2. λ ˆνŒŒμ§€ν† λ¦¬ ꡬ성
- λ ˆνŒŒμ§€ν† λ¦¬ 내에 README.md 파일 μƒμ„±ν•˜κ³  μ•„λž˜μ˜ κ°€μ΄λ“œλΌμΈκ³Ό μž‘μ„±νŒμ„ μ°Έκ³ ν•˜μ—¬ README.md νŒŒμΌμ„ μž‘μ„±ν•˜μ„Έμš”. (이 λ ˆνŒŒμ§€ν† λ¦¬μ˜ SAMPLE_README.md μ°Έμ‘°)
- λ ˆνŒŒμ§€ν† λ¦¬ 내에 docs 디렉토리λ₯Ό μƒμ„±ν•˜κ³  docs 디렉토리 λ‚΄μ—λŠ” 과제 μˆ˜ν–‰ ν•˜λ©΄μ„œ μž‘μ„±ν•œ 각쒅 λ³΄κ³ μ„œ, λ°œν‘œμžλ£Œλ₯Ό μ˜¬λ €λ‘‘λ‹ˆλ‹€. (이 λ ˆνŒŒμ§€ν† λ¦¬μ˜ docs 디렉토리 μ°Έμ‘°)
- κ·Έ 밖에 λ ˆνŒŒμ§€ν† λ¦¬μ˜ 폴더 ꡬ성은 과제 결과물에 따라 자유둭게 κ΅¬μ„±ν•˜λ˜ 가급적 μ½”λ“œμ˜ λͺ©μ μ΄λ‚˜ κΈ°λŠ₯에 따라 디렉토리λ₯Ό λ‚˜λˆ„μ–΄ κ΅¬μ„±ν•˜μ„Έμš”.

---

## 3. λ ˆνŒŒμ§€ν† λ¦¬ 제좜

- **`[주의]` λ ˆνŒŒμ§€ν† λ¦¬ 제좜**은 ν•΄λ‹Ή λ ˆνŒŒμ§€ν† λ¦¬μ˜ ownership을 **ν•™κ³Ό 계정**으둜 λ„˜κΈ°λŠ” κ²ƒμ΄λ―€λ‘œ 되돌릴 수 μ—†μŠ΅λ‹ˆλ‹€.
- **λ ˆνŒŒμ§€ν† λ¦¬ 제좜** μ „, 더 이상 μˆ˜μ • 사항이 μ—†λŠ”μ§€ λ‹€μ‹œ ν•œλ²ˆ ν™•μΈν•˜μ„Έμš”.
- github λ ˆνŒŒμ§€ν† λ¦¬μ—μ„œ Settings > General > Danger zone > Transfer 클릭
<img src="https://github.com/user-attachments/assets/cb2361d4-e07e-4b5d-9116-aa80dddd8a8b" alt="μ†Œμœ μ£Ό λ³€κ²½ 경둜" width="500" />

- [ Specify an organization or username ]에 'PNUCSE'λ₯Ό μž…λ ₯ν•˜κ³  확인 메세지λ₯Ό μž…λ ₯ν•˜μ„Έμš”.
<img src="https://github.com/user-attachments/assets/7c63955d-dcfe-4ac3-bdb6-7d2620575f3a" alt="μ†Œμœ μ£Ό λ³€κ²½" width="400" />

---

## 4. README.md κ°€μ΄λ“œ 라인
- README 파일 μž‘μ„±μ‹œμ— μ•„λž˜μ˜ 5가지 ν•­λͺ©μ˜ λ‚΄μš©μ€ ν•„μˆ˜μ μœΌλ‘œ 포함해야 ν•©λ‹ˆλ‹€.
- μ•„λž˜μ˜ 5가지 ν•­λͺ©μ΄μ™Έμ— ν”„λ‘œμ νŠΈμ˜ 이해λ₯Ό 돕기 μœ„ν•œ λ‚΄μš©μ„ 좔가해도 λ©λ‹ˆλ‹€.
- SAMPLE_README.md 이 λ‹¨μˆœν•œ ν˜•νƒœμ˜ μ˜ˆμ œμ΄λ‹ˆ μ°Έκ³ ν•˜μ„Έμš”.

```markdown
### 1. ν”„λ‘œμ νŠΈ μ†Œκ°œ
#### 1.1. λ°°κ²½ 및 ν•„μš”μ„±
> ν”„λ‘œμ νŠΈλ₯Ό μ‹€ν–‰ν•˜κ²Œ 된 λ°°κ²½ 및 ν•„μš”μ„±μ„ μž‘μ„±ν•˜μ„Έμš”.

#### 1.2. λͺ©ν‘œ 및 μ£Όμš” λ‚΄μš©
> ν”„λ‘œμ νŠΈμ˜ λͺ©ν‘œ 및 μ£Όμš” λ‚΄μš©μ„ μž‘μ„±ν•˜μ„Έμš”.

### 2. 상세섀계
#### 2.1. μ‹œμŠ€ν…œ ꡬ성도
> μ‹œμŠ€ν…œ ꡬ성도(infra, front, backλ“±μ˜ node κ°„μ˜ 관계)의 사진을 μ‚½μž…ν•˜μ„Έμš”.

#### 2.1. μ‚¬μš© 기술
> μŠ€νƒ 별(backend, frontend, designerλ“±) μ‚¬μš©ν•œ 기술 및 버전을 μž‘μ„±ν•˜μ„Έμš”.
>
> ex) React.Js - React14, Node.js - v20.0.2

### 3. μ„€μΉ˜ 및 μ‚¬μš© 방법
> μ œν’ˆμ„ μ„€μΉ˜ν•˜κΈ° μœ„ν—€ ν•„μš”ν•œ μ†Œν”„νŠΈμ›¨μ–΄ 및 μ„€μΉ˜ 방법을 μž‘μ„±ν•˜μ„Έμš”.
>
> μ œν’ˆμ„ μ„€μΉ˜ν•˜κ³  λ‚œ ν›„, μ‹€ν–‰ ν•  수 μžˆλŠ” 방법을 μž‘μ„±ν•˜μ„Έμš”.

### 4. μ†Œκ°œ 및 μ‹œμ—° μ˜μƒ
> ν”„λ‘œμ νŠΈμ— λŒ€ν•œ μ†Œκ°œμ™€ μ‹œμ—° μ˜μƒμ„ λ„£μœΌμ„Έμš”.

### 5. νŒ€ μ†Œκ°œ
> νŒ€μ› μ†Œκ°œ & ꡬ성원 별 μ—­ν•  λΆ„λ‹΄ & κ°„λ‹¨ν•œ μ—°λ½μ²˜λ₯Ό μž‘μ„±ν•˜μ„Έμš”.
```

## 5. README.md μž‘μ„±νŒ
* λ§ˆν¬λ‹€μš΄ μ–Έμ–΄λ₯Ό μ΄μš©ν•΄ README.md νŒŒμΌμ„ μž‘μ„±ν•  λ•Œ μ°Έκ³ ν•  수 μžˆλŠ” λ§ˆν¬λ‹€μš΄ μ–Έμ–΄ 문법을 κ³΅μœ ν•©λ‹ˆλ‹€.
* λ‹€μ–‘ν•œ μ˜ˆμ œμ™€ 보닀 μžμ„Έν•œ 문법은 [이 λ¬Έμ„œ](https://www.markdownguide.org/basic-syntax/)λ₯Ό μ°Έκ³ ν•˜μ„Έμš”.

### 5.1. 헀더 Header
```
# This is a Header 1
## This is a Header 2
### This is a Header 3
#### This is a Header 4
##### This is a Header 5
###### This is a Header 6
####### This is a Header 7 은 μ§€μ›λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
```
<br />

### 5.2. 인용문 BlockQuote
```
> This is a first blockqute.
> > This is a second blockqute.
> > > This is a third blockqute.
```
> This is a first blockqute.
> > This is a second blockqute.
> > > This is a third blockqute.
<br />

### 5.3. λͺ©λ‘ List
* **Ordered List**
```
1. first
2. second
3. third
```
1. first
2. second
3. third
<br />

* **Unordered List**
```
* ν•˜λ‚˜
* λ‘˜

+ ν•˜λ‚˜
+ λ‘˜

- ν•˜λ‚˜
- λ‘˜
```
* ν•˜λ‚˜
* λ‘˜

+ ν•˜λ‚˜
+ λ‘˜

- ν•˜λ‚˜
- λ‘˜
<br />

### 5.4. μ½”λ“œ CodeBlock
* μ½”λ“œ λΈ”λŸ­ 이용 '``'
```
μ—¬λŸ¬μ€„ 주석 "```" 이용
"```
#include <stdio.h>
int main(void){
printf("Hello world!");
return 0;
}
```"

단어 주석 "`" 이용
"`Hello world`"

* 큰 λ”°μ›€ν‘œ(") 없이 μ‚¬μš©ν•˜μ„Έμš”.
```
<br />

### 5.5. 링크 Link
```
[Title](link)
[λΆ€μ‚°λŒ€ν•™κ΅ 정보컴퓨터곡학뢀](https://cse.pusan.ac.kr/cse/index..do)

<link>
<https://cse.pusan.ac.kr/cse/index..do>
```
[λΆ€μ‚°λŒ€ν•™κ΅ 정보컴퓨터곡학뢀](https://cse.pusan.ac.kr/cse/index..do)

<https://cse.pusan.ac.kr/cse/index..do>
<br />

### 5.6. κ°•μ‘° Highlighting
```
*single asterisks*
_single underscores_
**double asterisks**
__double underscores__
~~cancelline~~
```
*single asterisks* <br />
_single underscores_ <br />
**double asterisks** <br />
__double underscores__ <br />
~~cancelline~~ <br />
<br />

### 5.7. 이미지 Image
```
<img src="image URL" width="600px" title="Title" alt="Alt text"></img>
![Alt text](image URL "Optional title")
```
- μ›Ήμ—μ„œ μž‘μ„±ν•œλ‹€λ©΄ README.md λ‚΄μš© μ•ˆμœΌλ‘œ 이미지λ₯Ό λ“œλž˜κ·Έ μ•€ λ“œλ‘­ν•˜λ©΄ 이미지가 μƒμ„±λ©λ‹ˆλ‹€.
- 웹이 μ•„λ‹Œ λ‘œμ»¬μ—μ„œ μž‘μ„±ν•œλ‹€λ©΄, github issue에 이미지λ₯Ό λ“œλž˜κ·Έ μ•€ λ“œλ‘­ν•˜μ—¬ image url 을 얻을 수 μžˆμŠ΅λ‹ˆλ‹€. (URL만 λ³΅μ‚¬ν•˜κ³  issueλŠ” 제좜 μ•ˆ 함.)
<img src="https://github.com/user-attachments/assets/0fe3bff1-7a2b-4df3-b230-cac4ef5f6d0b" alt="μ΄μŠˆμ— image 올림" width="600" />
<img src="https://github.com/user-attachments/assets/251c6d42-b36b-4ad4-9cfa-fa2cc67a9a50" alt="image url 볡사" width="600" />


### 5.8. 유튜브 μ˜μƒ μΆ”κ°€
```markdown
[![μ˜μƒ 이름](유튜브 μ˜μƒ 썸넀일 URL)](유튜브 μ˜μƒ URL)
[![λΆ€μ‚°λŒ€ν•™κ΅ 정보컴퓨터곡학뢀 μ†Œκ°œ](http://img.youtube.com/vi/zh_gQ_lmLqE/0.jpg)](https://www.youtube.com/watch?v=zh_gQ_lmLqE)
```
[![λΆ€μ‚°λŒ€ν•™κ΅ 정보컴퓨터곡학뢀 μ†Œκ°œ](http://img.youtube.com/vi/zh_gQ_lmLqE/0.jpg)](https://www.youtube.com/watch?v=zh_gQ_lmLqE)

- μ΄λ•Œ 유튜브 μ˜μƒ 썸넀일 URL은 유투브 μ˜μƒ URLλ‘œλΆ€ν„° λ‹€μŒκ³Ό 같이 얻을 수 μžˆμŠ΅λ‹ˆλ‹€.

- `Youtube URL`: https://www.youtube.com/watch?v={λ™μ˜μƒ ID}
- `Youtube Thumbnail URL`: http://img.youtube.com/vi/{λ™μ˜μƒ ID}/0.jpg
- 예λ₯Ό λ“€μ–΄, https://www.youtube.com/watch?v=zh_gQ_lmLqE 라고 ν•˜λ©΄ μΈλ„€μΌμ˜ μ£Όμ†ŒλŠ” http://img.youtube.com/vi/zh_gQ_lmLqE/0.jpg 이닀.
# ν΄λΌμš°λ“œ 게이밍 μ‹œμŠ€ν…œ 개발

## νŒ€μ› μ†Œκ°œ
<div align="left">
<table>
<tr>
<td align="center">
이수빈
</td>
</td>
<td align="center">
이닀은
</td>
<td align="center">
이지민
</td>
</tr>
<tr>
<td align="center">
<a href="https://github.com/02ggang9">
<img src="https://github.com/02ggang9.png" width="80" alt="02ggang9"/>
<br/>
<sub><b>[email protected]</b></sub>
</a>
<br/>
</td>
<td align="center">
<a href="https://github.com/llddang">
<img src="https://github.com/llddang.png" width="80" alt="llddang"/>
<br />
<sub><b>[email protected]</b></sub>
</a>
<br/>
</td>
<td align="center">
<a href="https://github.com/JJimini">
<img src="https://github.com/JJimini.png" width="80" alt="JJimini"/>
<br />
<sub><b>[email protected]</b></sub>
</a>
<br/>
</td>
</tr>
<tr>
<td align="center">
Infra
</td>
<td align="center">
Frontend, Unity
</td>
<td align="center">
Backend, Database
</td>
</tr>
</table>
</div>

## 1. ν”„λ‘œμ νŠΈ μ†Œκ°œ
### 1.1. λ°°κ²½ 및 ν•„μš”μ„±
ν΄λΌμš°λ“œ 게이밍(Cloud Gaming)은 κ²Œμž„μ„ ν΄λΌμ΄μ–ΈνŠΈμ— μ„€μΉ˜ν•˜μ§€ μ•Šκ³  μŠ€νŠΈλ¦¬λ°μ„ 톡해 κ²Œμž„μ„ μ œκ³΅ν•˜λŠ” 방식이닀. μ‚¬μš©μžλŠ” λ„€νŠΈμ›Œν¬λ₯Ό 톡해 μ„œλ²„μ—μ„œ 처리된 κ²Œμž„ μ˜μƒμ„ 전솑받아 κ²Œμž„μ„ 즐길 수 μžˆλ‹€. 졜근 κ³ μ„±λŠ₯ κ²Œμž„μ— λŒ€ν•œ μš”κ΅¬κ°€ μ¦κ°€ν•˜κ³  있으며, λ‹€μ–‘ν•œ κΈ°κΈ°μ—μ„œ κ²Œμž„μ„ μ‹€ν–‰ν•˜λ €λŠ” μˆ˜μš”κ°€ λŠ˜λ©΄μ„œ ν΄λΌμš°λ“œ κ²Œμ΄λ°μ€ λΉ λ₯΄κ²Œ μ„±μž₯ν•˜λŠ” λΆ„μ•Όκ°€ λ˜μ—ˆλ‹€. ν΄λΌμš°λ“œ κ²Œμ΄λ°μ€ μ‚¬μš©μžκ°€ μž₯치 μ„±λŠ₯으둜 λΆ€ν„° λ°›λŠ” 영ν–₯을 μ΅œμ†Œν™”ν•˜κ³  κ³ ν™”μ§ˆ, κ³ μ‚¬μ–‘μ˜ κ²Œμž„μ„ 즐길 수 μžˆλŠ” μž₯점을 μ œκ³΅ν•œλ‹€.


### 1.2. λͺ©ν‘œ 및 μ£Όμš” λ‚΄μš©
λ³Έ 과제의 λͺ©ν‘œλŠ” ν΄λΌμš°λ“œ 게이밍 μ„±λŠ₯을 μ΅œμ ν™”ν•˜κ³  μ‚¬μš©μžμ—κ²Œ λ‹€μ–‘ν•œ ν™˜κ²½μ—μ„œ μ•ˆμ •μ μΈ μ„œλΉ„μŠ€λ₯Ό μ œκ³΅ν•˜λŠ” 것이닀. Unity Render Streaming κΈ°μˆ μ„ ν™œμš©ν•˜μ—¬ μ„œλ²„μ—μ„œ μ‹€μ‹œκ°„μœΌλ‘œ κ³ ν™”μ§ˆμ˜ κ²Œμž„ μ˜μƒμ„ λ Œλ”λ§ν•˜κ³  μŠ€νŠΈλ¦¬λ°ν•œλ‹€. 이λ₯Ό 톡해 ν΄λΌμ΄μ–ΈνŠΈ μž₯치의 ν•˜λ“œμ›¨μ–΄ μ„±λŠ₯κ³Ό μš΄μ˜μ²΄μ œμ— 영ν–₯을 받지 μ•Šκ³  κ³ ν’ˆμ§ˆμ˜ κ²Œμž„ κ²½ν—˜μ„ μ œκ³΅ν•  수 μžˆλ‹€. λ˜ν•œ κ·Έλž˜ν”½ 처리 뢀담을 μ„œλ²„λ‘œ μ΄μ „ν•˜μ—¬ μΌκ΄€λœ κ²Œμž„ ν’ˆμ§ˆμ„ μœ μ§€ν•  수 μžˆλ„λ‘ ν•œλ‹€.

WebRTC(Web Real-Time Communication)λ₯Ό μ‚¬μš©ν•˜μ—¬ μ‹€μ‹œκ°„ κ²Œμž„ λ°μ΄ν„°μ˜ 전솑 및 μŠ€νŠΈλ¦¬λ°μ„ κ°œμ„ ν•œλ‹€. 이λ₯Ό 톡해 지연 μ‹œκ°„μ„ μ΅œμ†Œν™”ν•˜κ³  κ²Œμž„ ν”Œλ ˆμ΄μ˜ λ°˜μ‘μ„±μ„ ν–₯μƒμ‹œν‚¨λ‹€. ν΄λΌμš°λ“œ κ²Œμž„μ—μ„œ μ€‘μš”ν•œ μ„±λŠ₯ μš”μ†ŒμΈ 지연 μ‹œκ°„μ„ 쀄이기 μœ„ν•΄ μœ„μ˜ κΈ°μˆ μ„ ν†΅ν•©μ μœΌλ‘œ ν™œμš©ν•˜μ—¬ μ‹€μ‹œκ°„ 데이터 전솑 지연을 μ΅œμ†Œν™”ν•˜λŠ” 것을 λͺ©ν‘œλ‘œ ν•œλ‹€.


## 2. 상세 섀계

### 2.1. μ‹œμŠ€ν…œ ꡬ성도
![μ‹œμŠ€ν…œ ꡬ성도](https://github.com/user-attachments/assets/b03f4f9b-33b0-41e0-bf5e-91b0c03183ac)

### 2.2. μ‚¬μš© 기술
**Infra**
- Terraform - v1.9.8
- Kubernetes - v1.31.1
- Prometheus - v2.47.0
- Grafana - v10.1.2

**Front**
- Node - v20.11.0

**Unity**
- Unity - v2022.3.28f1

**Backend**
- Spring boot - v3.3.4
- Spring Webflux - v6.1.13
- Spring Security - v6.3.3
- R2DBC - v1.0.5
- PostgreSQL - v14

## 3. μ„€μΉ˜ 및 μ‚¬μš© 방법


### ν”„λ‘ νŠΈμ—”λ“œ μ„œλ²„

`npm run start` λͺ…λ Ήμ–΄λ₯Ό 톡해 둜컬 개발 μ„œλ²„λ₯Ό μ‹€ν–‰ν•©λ‹ˆλ‹€.

### λ°±μ—”λ“œ μ„œλ²„(Spring Boot)

Spring Boot λ°±μ—”λ“œ μ„œλ²„λŠ” `./mvnw spring-boot:run` λͺ…λ Ήμ–΄λ₯Ό 톡해 μ‹€ν–‰ν•©λ‹ˆλ‹€. ν”„λ‘œμ νŠΈ 디렉토리 λ‚΄μ—μ„œ μ‹€ν–‰ν•΄μ•Ό ν•˜λ©°, 정상 μ‹€ν–‰ μ—¬λΆ€λŠ” 둜그둜 ν™•μΈν•©λ‹ˆλ‹€.

### λ°μ΄ν„°λ² μ΄μŠ€ μ„œλ²„(PostgreSQL)

PostgreSQL λ°μ΄ν„°λ² μ΄μŠ€ μ„œλ²„λ₯Ό Docker둜 μ„€μ •ν•©λ‹ˆλ‹€. ν•„μš”ν•œ ν™˜κ²½ λ³€μˆ˜λŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€:
- `POSTGRES_USER`: λ°μ΄ν„°λ² μ΄μŠ€ μ‚¬μš©μž 이름
- `POSTGRES_PASSWORD`: λ°μ΄ν„°λ² μ΄μŠ€ λΉ„λ°€λ²ˆν˜Έ
- `POSTGRES_DB`: 생성할 λ°μ΄ν„°λ² μ΄μŠ€ 이름

Dockerλ₯Ό 톡해 μ»¨ν…Œμ΄λ„ˆλ₯Ό μƒμ„±ν•˜κ³  μ‹€ν–‰ν•©λ‹ˆλ‹€.

### μœ λ‹ˆν‹° κ²Œμž„ λ Œλ”λ§

Unity Hubλ₯Ό μ‚¬μš©ν•˜μ—¬ GitHubμ—μ„œ ν΄λ‘ ν•œ ν”„λ‘œμ νŠΈλ₯Ό μ—° λ‹€μŒ, ꡬ글 STUN μ„œλ²„(`stun:stun.l.google.com:19302`)λ₯Ό μ΄μš©ν•΄ Render Streaming URL을 μ„€μ •ν•©λ‹ˆλ‹€. Unity Hubμ—μ„œ λ Œλ”λ§ μ‹œμž‘ λ²„νŠΌμ„ ν΄λ¦­ν•˜μ—¬ μŠ€νŠΈλ¦¬λ°μ„ μ‹œμž‘ν•©λ‹ˆλ‹€.

## 4. μ†Œκ°œ 및 μ‹œμ—° μ˜μƒ
### 1. ν™ˆ
![ν™ˆν™”λ©΄](https://github.com/user-attachments/assets/6de33f60-8fb8-45b9-97e5-e8fbfbab60f9)

μ‚¬μš©μžλŠ” μ–Έμ œλ“ μ§€ μ›Ή λΈŒλΌμš°μ €λ₯Ό 톡해 μ„œλΉ„μŠ€μ— μ ‘μ†ν•˜μ—¬ κ²Œμž„μ„ μ‹€ν–‰ν•  수 μžˆλ‹€.

### 2. νšŒμ›κ°€μž…
![νšŒμ›κ°€μž… ν™”λ©΄](https://github.com/user-attachments/assets/3a4b5c69-3df5-4749-8b28-503d78ddd14f)

μ‚¬μš©μžλŠ” λ‹‰λ„€μž„, λΉ„λ°€λ²ˆν˜Έλ₯Ό ν˜•μ‹μ— 맞게 μž…λ ₯ν•œ ν›„ νšŒμ›κ°€μž…μ„ ν•  수 μžˆλ‹€.

### 3. 둜그인
![둜그인 ν™”λ©΄](https://github.com/user-attachments/assets/eeaf4fb6-01cf-4e43-ab32-fe887f2ea0db)

μ‚¬μš©μžλŠ” νšŒμ›κ°€μž…ν•œ κ³„μ •μœΌλ‘œ λ‘œκ·ΈμΈν•  수 μžˆλ‹€.

둜그인 κ²°κ³Ό λ°˜ν™˜λ˜λŠ” 정보λ₯Ό localStorage에 μ €μž₯ν•˜μ—¬ λ‹€μ‹œ μ ‘μ†ν–ˆμ„ λ•Œμ—λ„ 둜그인 정보가 λ‚¨μ•„μžˆλ„λ‘ ν•˜μ˜€λ‹€.

### 4. κ²Œμž„ ν”Œλ ˆμ΄
![κ²Œμž„ν”Œλ ˆμ΄ν™”λ©΄](https://github.com/user-attachments/assets/1f63c05c-4d77-4b9a-ba55-476a19023943)

WebRTCλ₯Ό 톡해 슀트리밍 λ˜λŠ” κ²Œμž„ μ˜μƒμ„ 받을 수 μžˆλ‹€.

전체 ν™”λ©΄ λ²„νŠΌμ„ ν΄λ¦­ν•˜μ—¬ μ—¬λ°±μ—†λŠ” ν™”λ©΄μœΌλ‘œ κ²Œμž„μ„ μ‹€ν–‰ν•  μˆ˜λ„ μžˆλ‹€.

### 5. λž­ν‚Ή
![λž­ν‚Ήν™”λ©΄](https://github.com/user-attachments/assets/49aeefd9-9d31-49f9-a3e3-7f92698a7f89)

μ‚¬μš©μžκ°€ κ²Œμž„μ„ ν΄λ¦¬μ–΄ν•œ μ‹œκ°„μ— λ”°λ₯Έ μˆœμœ„λ₯Ό λ³Ό 수 μžˆλ‹€.

### 6. μ˜μƒ
[![2024λ…„ μ „κΈ° μ‘Έμ—…κ³Όμ € 30 Tree](https://github.com/user-attachments/assets/a6963421-c98e-4ec6-a6d1-0de552c65a97)](https://www.youtube.com/watch?v=HeQP4ZvuC5g&list=PLFUP9jG-TDp-CVdTbHvql-WoADl4gNkKj&index=30&pp=iAQB)
Loading