|
| 1 | +<div align = center> |
| 2 | + |
1 | 3 | # ๐ท ํฌํ ๊ฒ๋ - For Together |
2 | | -> ๋ฉ๋ฆฌ ๋จ์ด์ง ์น๊ตฌ๋ค๊ณผ ์ค์๊ฐ์ผ๋ก ํจ๊ป ์ฐ๊ณ ํธ์งํ๋ ์ฌ์ง ์ดฌ์ ์ฑ |
| 4 | + |
| 5 | +<br> |
3 | 6 |
|
4 | 7 |  |
5 | 8 |
|
6 | | -#### ํ์ ์๊ฐ |
| 9 | +<img src="https://github.com/user-attachments/assets/0243957d-da45-4fa2-a49e-a83bc4a4cccc" width="500" align="right"> |
7 | 10 |
|
8 | | -<details> |
9 | | -<summary> </summary> |
| 11 | +<br><br><br><br> |
10 | 12 |
|
11 | | -|[S009_๊น๊ธฐ์](https://github.com/Kiyoung-Kim-57)|[S034_์ก์๊ท](https://github.com/youn9k)|[S035_์ก์ํ](https://github.com/0Hooni)|[S077_ํ์น์](https://github.com/hsw1920)| |
12 | | -|:---:|:---:|:---:|:---:| |
13 | | -|<img src="https://github.com/user-attachments/assets/6a865499-ef54-4c48-84ae-8d8eb9a229b6" width=150>|<img src="https://github.com/user-attachments/assets/eaadb82c-4880-4e66-bfe7-4eac844ca594" width=150>|<img src="https://github.com/user-attachments/assets/6cdb37fa-d0d1-46ed-bd6d-faa54db5e6b8" width=150>|<img src="https://github.com/user-attachments/assets/697edcf8-7709-42c2-82de-85f8f2bed08c" width=150>| |
14 | | -| ํฉํธ๋ ์ฝ๋๊ฐ ๊ฑด<br>๊ฐํด์ง๊ณ ์๋ค๋ ๊ฑฐ์. | ์ด ๋ํ ์ก์ค์ ์ํ๊ฒ ์ง์. | ๋๋ฒ๊น
๋ค ํด์คฌ์์. | ์ ์ํ... ํด์ผ๊ฒ ์ง? | |
15 | | -| iOS | iOS | iOS | iOS | |
16 | | -</details> |
| 13 | +<i>"ํจ๊ปํ๋ฉด ๋ ํน๋ณํด์ง๋ ์๊ฐ"</i> |
| 14 | +<br><br> |
| 15 | +<i>"์ง์ธ๋ค๊ณผ ํจ๊ป ์ฌ์ง์ ์ฐ๊ณ ๊พธ๋ฐ ์ ์์ด์"</i> |
| 16 | +<br><br> |
| 17 | +<i>**์ค์๊ฐ ์ฐ๊ฒฐ**, **์ฌ์ง ์ดฌ์**, **๊พธ๋ฏธ๊ธฐ**๊น์ง โ </i> |
| 18 | +<br><br> |
| 19 | +<i>**PhotoGether**์์ ์ฌ๋ฌ๋ถ์ ํน๋ณํ ์๊ฐ๋ค์ ์ ์ฅํ๊ณ ๊ณต์ ํด๋ณด์ธ์.</i> |
17 | 20 |
|
18 | | -|[S009_๊น๊ธฐ์](https://github.com/Kiyoung-Kim-57)|[S034_์ก์๊ท](https://github.com/youn9k)|[S035_์ก์ํ](https://github.com/0Hooni)|[S077_ํ์น์](https://github.com/hsw1920)| |
19 | | -|:---:|:---:|:---:|:---:| |
20 | | -|<img src="https://avatars.githubusercontent.com/u/121777185?v=4" width=150>|<img src="https://avatars.githubusercontent.com/u/60254939?v=4" width=150>|<img src="https://avatars.githubusercontent.com/u/37678646?v=4" width=150>|<img src="https://avatars.githubusercontent.com/u/66902876?v=4" width=150>| |
21 | | -| ๊ฑด๊ฐํ ์ฝ๋๋ฅผ ์จ๋ด๋<br>๊ฐ๋ฐ์๊ฐ ๋๊ณ ์ถ์ต๋๋ค. | ์ง๋๊ฑฐ์์?<br>์ด๊ฒจ. | ๋๋ฒ๊น
๋ค ํด์คฌ์์. | ์ ์ํ... ํด์ผ๊ฒ ์ง? | |
22 | | -| iOS | iOS | iOS | iOS | |
| 21 | +</div> |
23 | 22 |
|
24 | | -## ๊ฐ๋ฐ ํ๊ฒฝ |
| 23 | +<br><br><br> |
25 | 24 |
|
26 | | -| ํ๊ฒฝ | ๋ฒ์ | |
27 | | -|:---|:---| |
28 | | -| XCode | 16+ | |
29 | | -|Swift | 5.9 | |
30 | | -| Deployment Target | iOS 16+ | |
31 | | -| Packaging | SPM | |
32 | 25 |
|
33 | | -## ์ํคํ
์ณ ๊ตฌ์กฐ |
| 26 | +## โจ ์ฑ ํ๋ก์ฐ ์๊ฐ |
34 | 27 |
|
35 | | -3-layer Clean Architecture ๋ฅผ ๊ธฐ๋ฐํ๊ณ ์์ต๋๋ค. |
36 | 28 |
|
37 | | -์งง์ ํ๋ก์ ํธ ๊ธฐ๊ฐ๋์ ํ์ ์์ฐ์ฑ์ ๋์ผ ์ ์๋ ๊ตฌ์กฐ๋ฅผ ๊ณ ๋ฏผํ์ต๋๋ค. |
| 29 | +| ๐โโ๏ธ๐ ๋ชจ์ฌ๋ด์ | ๐ธ ํจ๊ป ์ฐ์ด์ | ๐ ํจ๊ป ๊พธ๋ฉฐ์ | ๐ ๊ณต์ ํด์ | |
| 30 | +| :-----: | :-----: | :-----: | :-----: | |
| 31 | +| <img width="250" alt="bye world" src="https://github.com/user-attachments/assets/a139e0c0-d1e2-44d6-a5c6-98174bbe332a"> | <img width="250" alt="Image" src="https://github.com/user-attachments/assets/b9ff509e-2930-4e84-8938-37514d4b469e"> | <img width="250" alt="hello world" src="https://github.com/user-attachments/assets/22e6126c-1008-4233-9419-db1bb8d49307"> |<img width="250" alt="hello world" src="https://github.com/user-attachments/assets/44f08974-1e3a-412b-a1a3-eb42f77e5d75"> | |
| 32 | +|- ๋ฐฉ์ ์์ฑํ์ฌ ์น๊ตฌ๋ฅผ ์ด๋ํ ์ ์์ต๋๋ค.<br>- ์น๊ตฌ๋ก๋ถํฐ ๋งํฌ๋ฅผ ๋ฐ์ ์ฐธ์ฌํ ์ ์์ต๋๋ค.<br>- ์ค๋์ค/๋น๋์ค ๊ณต์ ๋ฅผ ํ ์ ์์ต๋๋ค. |- ์ดฌ์ํ ์ ์์ต๋๋ค.<br>- ์ /ํ๋ฉด ์นด๋ฉ๋ผ ์ ํ์ ํ ์ ์์ต๋๋ค.<br>- ๋ง์ดํฌ๋ฅผ On/Off ํ ์ ์์ต๋๋ค. |- ํธ์ง ๊ณผ์ ์ด ์ค์๊ฐ์ผ๋ก ๊ณต์ ๋ฉ๋๋ค.<br>- ์คํฐ์ปค๋ฅผ ๋ถ์ฌ ์ฌ์ง์ ๊พธ๋ฐ ์ ์์ต๋๋ค.<br>- ํ๋ ์์ ๋ฐ๊ฟ ์ ์์ต๋๋ค. | - ํธ์ง ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.<br>- ์ฌ์ง์ ๊ณต์ /์ ์ฅํ ์ ์์ต๋๋ค. | |
38 | 33 |
|
39 | | -์ต์ข
์ ์ผ๋ก test double๊ณผ demo ์ฑ์ ํ์ฉํด ์์
๊ฐ์ ์ข
์์ฑ์ ๋์ด ๋
๋ฆฝ์ ์ธ ์์
์ ํ ์ ์๋๋ก ํ์ต๋๋ค. |
40 | 34 |
|
41 | | - |
| 35 | +## โจ ํต์ฌ ์ฑ๋ฆฐ์ง ์๊ฐ |
42 | 36 |
|
| 37 | +### โจ WebSocket ์๋ฒ |
43 | 38 |
|
44 | | -## ๊ธฐ์ ์คํ |
| 39 | +โข **์๋ฒ๊ฐ ํ์ํ๋ ์ด์ ** |
45 | 40 |
|
46 | | -### WebRTC |
| 41 | +์ฐ๋ฆฌ ์ฑ์ WebRTC๋ฅผ ํตํด ์ฌ๋ฌ ๋ช
๊ณผ P2P ์ฐ๊ฒฐ์ด ํ์ํ ์๋น์ค์
๋๋ค. ์ด ๊ณผ์ ์์ Signaling ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ๊ธฐ ์ํด ์๋ฒ๊ฐ ํ์ํ์ผ๋ฉฐ, Swift Vapor๋ฅผ ์ฌ์ฉํด Swift ์ฝ๋๋ก ์ง์ WebSocket ์๋ฒ๋ฅผ ๊ตฌ์ถํ์ต๋๋ค. |
47 | 42 |
|
48 | | -> ์ค์๊ฐ์ผ๋ก ์์/์์ฑ/๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ธฐ ์ํด ์ฌ์ฉํ์ต๋๋ค. |
49 | | -> |
50 | | -> ๋ฉ๋ฆฌ ๋จ์ด์ง ์ฌ์ฉ์์ ์ค์๊ฐ์ผ๋ก ํต์ ํ๊ธฐ ์ํด ๋ ์ดํด์๊ฐ ์งง๊ณ p2p ๋ฐฉ์์ผ๋ก ์๋ฒ ๋ถ๋ด์ด ์ ์ WebRTC๋ฅผ ์ฑํํ์ต๋๋ค. |
| 43 | +โข **์์ฒญ/์๋ต ๊ตฌ์กฐ ์ค๊ณ** |
| 44 | + |
| 45 | +ํ๋์ ์๋ํฌ์ธํธ๋ก ๋ชจ๋ ์์ฒญ๊ณผ ์๋ต์ ์ฒ๋ฆฌํฉ๋๋ค. ์์ฒญ๋ณ๋ก ์๋ฒ ๋ก์ง๊ณผ ์๋ต ๋ฐ์ดํฐ๊ฐ ๋ฌ๋ผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํด ๋ฉ์์ง ๊ตฌ์กฐ๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ์ ๋ฆฌํ์ต๋๋ค. |
| 46 | + |
| 47 | +> **MessageType**: ์๋ฒ๊ฐ ์์ฒญ์ ์ฒ๋ฆฌํ ๋ก์ง์ ๊ฒฐ์ ํ๋ Enum ์์ฑ |
| 48 | +> |
| 49 | +> **Message**: ์์ฒญ์ ํ์ํ ์ ๋ณด๋ฅผ ๋ด๋ ๋ฐ์ดํฐ |
| 50 | +
|
| 51 | +์ด๋ ๊ฒ ๊ตฌ์กฐํํ์ฌ ์๋ฒ๊ฐ ํจ์จ์ ์ผ๋ก ๋ก์ง์ ์ํํ๋๋ก ํ์ต๋๋ค. |
| 52 | + |
| 53 | +โข **[ํธ๋ฌ๋ธ ์ํ
] ์๋ฒ ๋ค์ด ๋ฌธ์ ** |
| 54 | + |
| 55 | +์๋ฒ ๊ฐ๋ฐ ์ค ๋์ ์ ๊ทผ์ผ๋ก ์ธํ Race Condition ๋ฌธ์ ๋ก ์๋ฒ๊ฐ ์์ฃผ ๋ฉ์ท์ต๋๋ค. ์น์์ผ ์์ฒญ ๊ด๋ฆฌ ๊ฐ์ฒด๋ฅผย Actor๋ก ๋ฆฌํฉํ ๋งํ๋ฉด์ ๋์ ์ ๊ทผ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค. |
| 56 | + |
| 57 | +### โจ WebRTC |
| 58 | + |
| 59 | +โข **WebRTC ์ฑํ ์ด์ ** |
| 60 | + |
| 61 | +์ต๋ 4๋ช
์ ์ ์ ๊ฐ ์ค์๊ฐ ์์, ์์ฑ ๊ณต์ ์ ๋์ ํธ์ง์ ํด์ผ ํ๊ธฐ์ ๋ฎ์ ๋ ์ดํด์๊ฐ ์ค์ํ์ต๋๋ค. ์๋ฒ๋ฅผ ๊ฒฝ์ ํ์ง ์๊ณ P2P ์ฐ๊ฒฐ์ ์ง์ํ๋ WebRTC๋ฅผ ์ฌ์ฉํ์ต๋๋ค. |
| 62 | + |
| 63 | +โข **Mesh ๋ฐฉ์ ์ฑํ ์ด์ ** |
| 64 | + |
| 65 | + |
| 66 | +<img width="40%" alt="Image from Notion" src="https://github.com/user-attachments/assets/888e7156-e2ba-488e-9fe1-56bc7f7aae69"> |
| 67 | + |
| 68 | + |
| 69 | +์๋ฒ ๊ฐ๋ฐ ๋ฆฌ์์ค๋ฅผ ์ค์ด๊ธฐ ์ํด Mesh ๋ฐฉ์์ ์ ํํ์ต๋๋ค. Mesh ๋ฐฉ์์ ์ฐธ๊ฐ์๋ค ๊ฐ ์ง์ ์ฐ๊ฒฐ์ ์ง์ํ๋ฉฐ, ์ต๋ 4๋ช
๊น์ง ์ฐ๊ฒฐํ๊ธฐ์ ์ฑ๋ฅ์ ๋ฌธ์ ๊ฐ ์๋ค๊ณ ํ๋จํ์ต๋๋ค. |
| 70 | + |
| 71 | +โข **WebRTC ์ฐ๊ฒฐ ๊ณผ์ ** |
| 72 | + |
| 73 | +1. ๋ฐฉ ์์ฑ์๊ฐ ์น์์ผ ์๋ฒ์์ ๋ฐฉ์ ์์ฑํ๊ณ , ๋ฐฉ ์ ๋ณด๋ฅผ ๋ฅ๋งํฌ URL๋ก ์ด๋ ๋์์๊ฒ ๊ณต์ ํฉ๋๋ค. |
| 74 | + |
| 75 | +2. ์ฐธ์ฌ์๊ฐ ๋งํฌ๋ฅผ ํตํด ๋ฐฉ์ ์ฐธ๊ฐํ๋ฉด, ์๋ฒ์ ๋ฐฉ ์ฐธ๊ฐ ์์ฒญ์ ๋ณด๋
๋๋ค. |
| 76 | + |
| 77 | +3. ๊ธฐ์กด ์ฐธ๊ฐ์๋ ์๋ก์ด ์ฐธ๊ฐ์์ ์ ๋ณด๋ฅผ ๋ธ๋ก๋์บ์คํ
์ผ๋ก ๋ฐ์ต๋๋ค. |
| 78 | + |
| 79 | +4. Signaling์ ํตํด ๋ฐ์ดํฐ ๊ตํ ํ P2P ์ฐ๊ฒฐ์ด ์ฑ๋ฆฝ๋ฉ๋๋ค. |
| 80 | + |
| 81 | +โข **[ํธ๋ฌ๋ธ ์ํ
] AVCaptureSession ์นด๋ฉ๋ผ ์ ๊ทผ ๋ฌธ์ ** |
| 82 | + |
| 83 | +WebRTC P2P ์ฐ๊ฒฐ ์ค ์์ฑ ์ฐ๊ฒฐ์ ๋์์ผ๋ ํ๋ฉด ์ฐ๊ฒฐ์ด ๋์ง ์๋ ๋ฌธ์ ๋ฅผ ๋ฐ๊ฒฌํ์ต๋๋ค. ์ด๋ย AVCaptureSession์ด ๋จ์ผ ์ ๊ทผ๋ง ํ์ฉํ๊ธฐ ๋๋ฌธ์ด์์ต๋๋ค. ๊ฐ ๊ฐ์ฒด๊ฐ ์นด๋ฉ๋ผ ๋ฐ์ดํฐ๋ฅผ ๋์์ ์์ฒญํด ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ผ๋ฉฐ, ๋ฐ์ดํฐ๋ฅผ ํ ๊ณณ์์๋ง ๊ด๋ฆฌํ๋๋ก ๋ฆฌํฉํ ๋งํ์ฌ ํด๊ฒฐํ์ต๋๋ค. |
| 84 | + |
| 85 | + |
| 86 | + |
| 87 | +## โจ ์ค์๊ฐ ๋ฐ์ดํฐ ๋๊ธฐํ |
51 | 88 |
|
52 | | -### Combine |
| 89 | + |
53 | 90 |
|
54 | | -> ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ๊ณผ UI ๋ฐ์ธ๋ฉ์ ์ํด ์ฌ์ฉํ์ต๋๋ค. |
| 91 | +<br> |
| 92 | + |
| 93 | +- ์ค์๊ฐ ๋ฐ์ดํฐ ๋๊ธฐํ๋ฅผ ํตํด ๋ชจ๋ ์ฐธ์ฌ์๋ ๋์ผํ ํ๋ฉด ์ํ๋ฅผ ์ ์งํ ์ ์์ต๋๋ค. |
| 94 | +- ์ฐธ์ฌ์๋ค์ ๋์ ๋ค๋ฐ์ ๋น๋๊ธฐ์ ์ธ ํธ์ง ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค. |
| 95 | +- ๋คํธ์ํฌ ์ํ์ ๋ฐ๋ฅธ ๊ฒฝ์ ์ํฉ์ ์ํํฉ๋๋ค. |
| 96 | +- ์ค์ ์ง์ค ์ํ ๊ด๋ฆฌ๋ฅผ ํตํด ๋ชจ๋ ์ฐธ์ฌ์๊ฐ ๋์ผํ ์ํ๋ฅผ ์ ์งํ๋๋ก ํฉ๋๋ค. |
| 97 | + |
| 98 | +> [๐ ์ค์๊ฐ ๋ฐ์ดํฐ ๋๊ธฐํ๋ฅผ ์ํ ์ด๋ฒคํธ ํ๋ธ](https://github.com/boostcampwm-2024/iOS04-PhotoGether/wiki/%EC%8B%A4%EC%8B%9C%EA%B0%84-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%8F%99%EA%B8%B0%ED%99%94%EB%A5%BC-%EC%9C%84%ED%95%9C-%EC%9D%B4%EB%B2%A4%ED%8A%B8-%ED%97%88%EB%B8%8C) |
| 99 | +
|
| 100 | + |
| 101 | +## โจ ์ํคํ
์ณ ๊ตฌ์กฐ |
| 102 | + |
| 103 | +<img width="100%" alt="Image from Notion" src="https://github.com/user-attachments/assets/fd2573f6-71a5-4109-8386-04e8a0ae46c9"> |
| 104 | + |
| 105 | +- **3-Layer ๊ธฐ๋ฐ ํด๋ฆฐ ์ํคํ
์ณ**๋ฅผ ์ฑํํ์ฌ ๊ด์ฌ์ฌ๋ฅผ ๋ถ๋ฆฌํ๊ณ **ํ์ฅ์ฑ๊ณผ** **์ ์ง๋ณด์์ฑ**์ ๋์
๋๋ค. |
| 106 | + |
| 107 | +- ์ธํฐํ์ด์ค ์์กด ์ค๊ณ๋ฅผ ํตํด **๋ฎ์ ๊ฒฐํฉ๋**์ ์ ์ฐํ ๊ธฐ๋ฅ ์ถ๊ฐ ๋ฐ ์์ ์ด ๊ฐ๋ฅํ๋๋ก ํฉ๋๋ค. |
| 108 | + |
| 109 | +- ๋ช
ํํ ์ญํ ๋ถ๋ฆฌ๋ก **์ผ๊ด๋ ์ฝ๋ ๊ตฌ์กฐ**๋ฅผ ์ ์งํฉ๋๋ค. ์ด๋ฅผ ํตํด ์ฝ๋ ํ๋ฆ ์ดํด๋ฅผ ๋๊ณ ๊ฐ๋ฐ ์๋๋ฅผ ๋์
๋๋ค. |
| 110 | + |
| 111 | + |
| 112 | + |
| 113 | +## โจ ํ๋ ์ ํ
์ด์
๋ ์ด์ด ๊ตฌ์กฐ |
| 114 | + |
| 115 | +<img width="100%" alt="image" src="https://github.com/user-attachments/assets/13d75a37-2ac1-4e72-a708-d12b7dc6dd7a"> |
| 116 | + |
| 117 | +> [!NOTE] |
| 118 | +> ํ์ฌ ์ ํฌ์ Presentation Layer๋ ์์ ๊ฐ์ด ์ปค๋ฎค๋์ผ์ด์
ํ๊ณ ์์ต๋๋ค. |
55 | 119 | > |
56 | | -> ๋ค๋ฅธ ์ ํ์ง๋ก๋ RxSwift๊ฐ ์์๊ณ , ์ฑ๋ฅ๊ณผ ํผ์คํธ ํํฐ๋ผ๋ ์ด์ ์์ Combine์ ์ ํํ๊ฒ ๋์์ต๋๋ค. |
| 120 | +> View๋ ์ ์ ์ธํฐ๋์
์ด ์ผ์ด๋๋ ์ง์ ์ผ๋ก, ๋น์ฆ๋์ค ๋ก์ง์ ViewModel์์ ์ฒ๋ฆฌ๋๋ฉฐ, ์ต์ข
์ ์ผ๋ก View๋ ๊ฐฑ์ ๋ ์ํ๋ฅผ ๋ฐ์ํฉ๋๋ค. |
| 121 | +> |
| 122 | +> ํนํ, ์ฌ์ง ํธ์ง๊ณผ ๊ฐ์ **์ด๋ฒคํธ ๋ฐ์์ด ๋น๋ฒํ ๊ธฐ๋ฅ ์๊ตฌ์ฌํญ**์์, ์ด๋ฒคํธ์ ์ํ๋ฅผ ๋ช
ํํ๊ฒ ์ ์ํ๊ณ ๊ด๋ฆฌํ๋ ๊ฒ์ด ์ค์ํ์ต๋๋ค. ์ด๋ฅผ ์ํด Input-Output ํจํด์ ๋์
ํ๊ฒ ๋์์ต๋๋ค. |
57 | 123 | > |
58 | | -> ๋ง์ฝ ๋ค์ํ UI ์ปดํฌ๋ํธ์์ ๋ฐ์ธ๋ฉ์ด ํ์ํ๋ค๋ฉด RxSwift์ RxCocoa๋ฅผ ์ฌ์ฉํ๊ฒ ์ง๋ง, |
| 124 | +> View์์ ๋ฐ์ํ๋ ํญ๊ณผ ๊ฐ์ ์ด๋ฒคํธ๋ฅผ **Input**, View์ ์ ๋ฌ๋ ๋ฐ์ดํฐ ๋ฑ์ ์ํ๋ฅผ **Output**์ผ๋ก ์ ์ํ์ฌ ๊ฐ ๊ฐ์ฒด์ ์ญํ ์ ๋ช
ํํ๊ฒ ๋ถ๋ฆฌํ์์ต๋๋ค. |
| 125 | +> |
| 126 | +> ๋ํ ๊ฐ๋ฐ ๊ณผ์ ์์ ์๋ก์ด ์ด๋ฒคํธ๋ ์ํ๋ฅผ ์ถ๊ฐํ ๋ ๊ตฌ์กฐ์ ์ผ๋ก ์์ง๋์ด ์์ด ์ฝ๊ฒ ํ์ฅ์ด ๊ฐ๋ฅํ์ต๋๋ค. |
| 127 | +> |
| 128 | +> ์ถ๊ฐ์ ์ผ๋ก ํ ๋ด PR ์์ฒญ์ ์ฝ๋ ๋ฆฌ๋ทฐ๋ฅผ ํ์๋ก ์งํํ๊ณ ์๋ ์ํฉ์์ ๋์ผํ ํจํด์ ํ์ฉํจ์ผ๋ก์จ ๋น ๋ฅธ ๊ตฌ์กฐ ํ์
์ ํตํด ์ฝ๋ ๋ฆฌ๋ทฐ ์๊ฐ์ด ๋จ์ถ๋์ด ์์ฐ์ฑ์ด ํฅ์๋์์ต๋๋ค. |
| 129 | +
|
| 130 | + |
| 131 | +## โจ ๋ชจ๋ ๊ตฌ์กฐ |
| 132 | + |
| 133 | +<img width="100%" alt="Group 1000003128" src="https://github.com/user-attachments/assets/6f1d3921-5a41-4034-a3cb-dea1dfbf493f"> |
| 134 | + |
| 135 | +> [!NOTE] |
| 136 | +> ์ ํฌ์ ๋ชจ๋ ๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ๋ชจ๋์ ๋ถ๋ฆฌํจ์ผ๋ก์จ ์ ๊ทผ์ ์ด์ ์ค์ ์ ํตํด ํน์ ๋ชจ๋์ ์์ ํ๊ฑฐ๋ ๊ธฐ๋ฅ์ ํ์ฅํ ๋ ๋ค๋ฅธ ๋ชจ๋์ ๋ฏธ์น๋ ์ํฅ์ ์ต์ํํ ์ ์์์ต๋๋ค. ์ด๋ก ์ธํด ์์ ํ๊ฒ ๊ฐ๋ฐ์ ํ ์ ์์์ต๋๋ค. |
59 | 137 | > |
60 | | -> ํด๋น ํ๋ก์ ํธ์์ ํ๋ฉด์ด ์ ๊ณ ๋น๊ต์ UI ์ปดํฌ๋ํธ๋ค์ด ๊ฐ๋จํด Combine์ ์ฌ์ฉํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. |
| 138 | +> ๋ํ ๊ฐ Feature๋ณ DemoApp์ ํตํด ๋ณ๋ ฌ์ ์ธ ํ๋ฉด ๊ฐ๋ฐ์ ์งํํด ๊ฐ๋ฐ ์๋๋ฅผ ๋์ผ ์ ์์์ต๋๋ค. |
| 139 | +
|
| 140 | + |
| 141 | +## ๐ป ๊ฐ๋ฐ ํ๊ฒฝ |
| 142 | +<div align="center"> |
| 143 | +<img height="22" src="https://img.shields.io/badge/iOS-16.0+-lightgray"> <img height="22" src="https://img.shields.io/badge/Xcode-16.0-blue"> <img height="22" src="https://img.shields.io/badge/Swift-5.9-orange"> <img height="22" src="https://img.shields.io/badge/Platform-iOS-blue"> |
| 144 | +</div> |
| 145 | + |
| 146 | + |
| 147 | +## ๐ ํ์ ์๊ฐ |
| 148 | + |
| 149 | +<div align = center> |
| 150 | + |
| 151 | +|[`S009` ๊น๊ธฐ์](https://github.com/Kiyoung-Kim-57)|[`S034` ์ก์๊ท](https://github.com/youn9k)|[`S035` ์ก์ํ](https://github.com/0Hooni)|[`S077` ํ์น์](https://github.com/hsw1920)| |
| 152 | +| :--: | :--: | :--: | :--: | |
| 153 | +| <img src="https://avatars.githubusercontent.com/u/121777185?v=4" width=150> | <img src="https://avatars.githubusercontent.com/u/60254939?v=4" width=150> | <img src="https://avatars.githubusercontent.com/u/37678646?v=4" width=150> | <img src="https://avatars.githubusercontent.com/u/66902876?v=4" width=150> | |
| 154 | +| **`iOS`** | **`iOS`** | **`iOS`** | **`iOS`** | |
61 | 155 |
|
62 | | -### AVFoundation |
| 156 | +</br> |
63 | 157 |
|
64 | | -> ์นด๋ฉ๋ผ ์ดฌ์ ๋ฐ ํธ์ง ๊ทธ๋ฆฌ๊ณ VoIP ๊ธฐ๋ฅ์ ์ํด ์ฌ์ฉํ์ต๋๋ค. |
| 158 | +| ๐ท๏ธ ๋ฐ๋ก๊ฐ๊ธฐ | [Wiki](https://github.com/boostcampwm-2024/iOS04-HARU/wiki) | [ํ ๋
ธ์
](https://www.notion.so/0hooni/HARU-12e07f89fdcd8077a443dbba60cb124d) | [๊ทธ๋ผ์ด๋ ๋ฃฐ](https://github.com/boostcampwm-2024/iOS04-HARU/wiki/๊ทธ๋ผ์ด๋-๋ฃฐ) | [์ปจ๋ฒค์
](https://github.com/boostcampwm-2024/iOS04-HARU/wiki/์ปจ๋ฒค์
) | [ํ์๋ก](https://www.notion.so/0hooni/05cb406cd61f460ba7294ae3ffa31f7e) | [๊ธฐํ/๋์์ธ](https://www.figma.com/design/6jACkAa5WxD8mm4KgsPtzg/iOS04-GP?node-id=11-32851) | |
| 159 | +| :--------: | :---------------------------------------------------------: | :---------------------------------------------------------------------------: | :----------------------------------------------------------------------------: | :------------------------------------------------------------------: | :---------------------------------------------------------------------: | :------------------------------------------------------------------------------------------: | |
65 | 160 |
|
66 | | -|๐ท๏ธ ๋ฐ๋ก๊ฐ๊ธฐ|[Wiki](https://github.com/boostcampwm-2024/iOS04-HARU/wiki)|[ํ ๋
ธ์
](https://www.notion.so/0hooni/HARU-12e07f89fdcd8077a443dbba60cb124d)|[๊ทธ๋ผ์ด๋ ๋ฃฐ](https://github.com/boostcampwm-2024/iOS04-HARU/wiki/๊ทธ๋ผ์ด๋-๋ฃฐ)|[์ปจ๋ฒค์
](https://github.com/boostcampwm-2024/iOS04-HARU/wiki/์ปจ๋ฒค์
)|[ํ์๋ก](https://www.notion.so/0hooni/05cb406cd61f460ba7294ae3ffa31f7e)|[๊ธฐํ/๋์์ธ](https://www.figma.com/design/6jACkAa5WxD8mm4KgsPtzg/iOS04-GP?node-id=11-32851)| |
67 | | -|:-:|:-:|:-:|:-:|:-:|:-:|:--:| |
| 161 | +</div> |
0 commit comments