Home - stove-smooth/sgs-smooth GitHub Wiki
์ด ๋ฌธ์๋ฅผ ๋ค์ด๊ฐ๊ธฐ ์ ์ PMP ๋? ์ฝ์ด์ฃผ์๊ธธ ๋ฐ๋๋๋ค.
๋ณธ ๋ฌธ์๋ ์์ ๊ฐ์ ๋ด์ฉ์ผ๋ก ์์ฑ๋์์ต๋๋ค.
์ด ๋ฌธ์์ ๋ํ์ฌ
1. ๋ณธ ๋ฌธ์๋ Smooth ํ์ ๊ด๋ฆฌ ํ๊ธฐ ์ํ PMP ๋ฌธ์์
๋๋ค.
2. ์์งํ ๋ฐ์ดํฐ๋ค์ ํฌ๊ฒ, ๊ณํ(Plan)๊ณผ ๊ฒฝํ์ผ๋ก ์ด๋ค์ ธ ์์ผ๋ฉฐ, ๊ณํ(Plan)์ ๋ฐ๋ฅธ ๊ด๋ฆฌ ๋์ ๋ฐ ๊ณํ ์ ๊ฒ์ ๋ฐฉ๋ฒ์ ์์๋ก Update ๋ฉ๋๋ค.
3. ๊ฒฝํ์ ๊ฒฝ์ฐ Wiki์ Footer(e.x. Project Logging)๋ก ๊ด๋ฆฌํ๋ฉฐ, ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ์ง๋ฉดํ ๋ชจ๋ ์ํฉ์ ๋ํ ๊ธฐ์ ์
๋๋ค.
- ๋ชฉํ :
MSA ๊ตฌ์กฐ๋ฅผ ์ดํดํ๊ณ ์ค๊ณํ๊ธฐ!
ํ์ฌ | ๋์ฐฉ |
---|---|
๋ชจ๋๋ฆฌ์ ๊ตฌ์กฐ๋ก๋ง ๊ฐ๋ฐ ํด ๋ณธ ์ํ. MSA ๊ตฌ์กฐ๋ ์ด๋ก ๋ง ์๊ณ ์๋ค. |
MSA ๊ตฌ์กฐ์ ์ํคํ
์ฒ๋ฅผ ์ดํดํ๊ณ ๋ถ์ฐ๋ ์๋น์ค์์ ๊ฐ๊ฐ์ api๋ค์ด ์ํํ ์๋ํ๋๋ก ์ค๊ณํ ์ ์๋ ์ํ |
์ดํด๋ ์์ด ๊ฐ๋จํ ๊ฒฝํ์ผ๋ก ์ฌ๋ฌ๊ฐ์ง ์ฌ์ฉํ ๊ธฐ์ ์คํ | ๊ธฐ์ ์คํ์ ์๋ ์๋ฆฌ๋ฅผ ํ์ ํ๋ฉฐ ์ ํํ ์ด์ ๋ฅผ ๊ฐ์ง๊ณ ์ฌ์ฉํ ์ ์๋ ์ํ. |
๐ฌ (๋์ฐฉ) ์ํ๊ฐ ๋๊ธฐ ์ํ ๊ด๋ฆฌ ๋ฐฉ์
1. ๊ธฐ์กด ๊ธฐ์ ์คํ์ ์๋ ์๋ฆฌ๋ฅผ ์ ๋๋ก ํ์
ํ์ฌ ์ ๋ฆฌํ๋ ์ต๊ด์ ๋ค์ธ๋ค.
2. MSA ๊ตฌ์กฐ์ ๋ํ ์ฑ
์ ํตํด ์ ์ฒด์ ์ธ ๊ตฌ์กฐ๋ฅผ ์ดํดํ๋ค.(Start DDD)
3. ์๋ก์ด ๊ธฐ์ ์คํ์ ์ ํ ๋๋ง๋ค ์๋ ์๋ฆฌ๋ถํฐ ์ดํดํ๋ ์ต๊ด์ ๋ค์ธ๋ค.
- ๋ชฉํ :
์๋ฒ ์ํคํ ์ฒ๋ฅผ ์ดํดํ๊ณ ์ฑ๋ฅ์ ๊ฐ์ ์ ๊ฒฝํํ๊ธฐ!
ํ์ฌ | ๋์ฐฉ |
---|---|
๋์ฉ๋ ์๋น์ค๋ฅผ ๊ณ ๋ คํด์ ์ค๊ณ ๋ฐ ๊ฐ๋ฐํด๋ณธ ๊ฒฝํ์ด ์๋ค. | ๋์ฉ๋ ์๋น์ค๋ฅผ ๊ณ ๋ คํ ์ค๊ณ ๋ฐ ๊ฐ๋ฐ ๋ฅ๋ ฅ์ ๊ฐ์ถ ์ํ |
๋ง๋ค์ด์ผ ํ๋ ๊ธฐ๋ฅ์ ๋ํด ๊ณ ๋ฏผ ๋ฐ ์ด์ ์์ด ๋ง๋๋ ์ต๊ด | ์ฌ์ฉํ ๊ธฐ์ ๋ฐ ๋ฐฉ๋ฒ์ ๋ํด ์ด์ ๋ฅผ ์ค๋ช ํ ์ ์๋ ์ํ |
์ฑ๋ฅ ์ธก์ ๋ฐ ๊ธฐ๋ฅ ๊ฐ์ ์ ๋ํ ์ํํจ | ์ฑ๋ฅ ์ธก์ ๋ฐ ๊ธฐ๋ฅ์ ๊ฐ์ ํ๋ ์ต๊ด |
๐ฌ (๋์ฐฉ) ์ํ๊ฐ ๋๊ธฐ ์ํ ๊ด๋ฆฌ ๋ฐฉ์
1. ๋์ฉ๋ ์๋น์ค๋ฅผ ๊ณ ๋ คํ ์ค๊ณ ๋ฐ ๊ฐ๋ฐ ๋ฅ๋ ฅ์ ๊ฐ์ถ ์ํ
- ๋์ฉ๋ ์๋น์ค์์ ๊ณ ๋ คํด์ผ ํ ๋ฐฐ๊ฒฝ์ง์์ ์๋๋ค.
- ์ฑ
์ ํตํด ์ฌ์ ๋ฐฐ๊ฒฝ์ง์์ ์ดํดํ๋ค.
- ์ฑ
(1ํ๋
) : ๋๊ท๋ชจ ์์คํ
์ค๊ณ ๊ธฐ์ด
- ํ๋ก์ ํธ์ ๊ธฐ๋ฅ์์ ์ ์ฉํ ์ ์๋ ๋ถ๋ถ์ ์ ๋ฆฌํ๊ณ ํ์ฉ ๋ฐ ๊ณํ์ ์๋ฆฝํ๋ค.
- ์๋น์ค๊ฐ ๋ถ์ฐ๋ ๋๋ฅผ ๊ณ ๋ คํ๋ค. โ MSA๋ฅผ ์ดํดํ๊ณ ์ ์ฉํ๋ค.
- ๊ฐ์์ ์ฑ
์ ํตํด MSA์ ๋ํ ์ดํด์ ๊ตฌํ ๋ฐฉ๋ฒ์ ๊ณต๋ถํ๊ณ ์ ์ฉํ๋ค.
- ๊ฐ์ (์๊ฐ) : Spring Cloud๋ก ๊ฐ๋ฐํ๋ ๋ง์ดํฌ๋ก์๋น์ค ์ ํ๋ฆฌ์ผ์ด์
(MSA)
- ์ฑ
(1ํ๋
) : ๋๋ฉ์ธ ์ฃผ๋ ์ค๊ณ๋ก ์์ํ๋ ๋ง์ดํฌ๋ก์๋น์ค ๊ฐ๋ฐ
2. ์ฌ์ฉํ ๊ธฐ์ ๋ฐ ๋ฐฉ๋ฒ์ ๋ํด ์ด์ ๋ฅผ ์ค๋ช
ํ ์ ์๋ ์ํ
- ๊ธฐ์ ์ ์ฌ์ฉํ ๋๋ ํญ์ ์ฌ์ฉ ์ด์ ๋ฅผ ์ ๋ฆฌํ๊ณ ๊ธฐ๋กํ๋ค.
- ์ฌ์ฉ ๊ณผ์ ์์ ์ ํ์ด ํ์ํ ์ํฉ์์๋ ๋ชฉ์ ์ ๋ฐ๋ผ ๋น๊ตํด์ผ ํ ์ธก๋ฉด์ ์ค์ ํ๊ณ ํญ๋ชฉ ๋ณ ์ฐ์ ์์์ ๋ฐ๋ผ ๊ธฐ์ ์ ์ ํํ๋ค.
3. ์ฑ๋ฅ ์ธก์ ๋ฐ ๊ธฐ๋ฅ์ ๊ฐ์ ํ๋ ์ต๊ด
- ์ฝ๋๋ฅผ ์์ฑํ๊ธฐ ์ ์ ๋ณ๋ชฉ ๋ฐ์ ๋ฐ ์ฑ๋ฅ์ ์ํฅ์ ์ค ์ ์๋ ์ง์ ์ ๋ฏธ๋ฆฌ ์๊ฐํ๊ณ ์์ฑํ๋ค.
- ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ ์ดํ์๋ ์ฑ๋ฅ ์ธก์ ๋๊ตฌ๋ฅผ ํ์ฉํ์ฌ ์ฑ๋ฅ์ ์ธก์ ํ๋ค.
- ์ธก์ ๋๊ตฌ : nGrinder
- ๋ฏธ๋ฆฌ ์์ฑํ ๋ณ๋ชฉ ์ง์ ์ ๋ํ ์๊ฐ๊ณผ ์ธก์ ๋๊ตฌ๋ฅผ ํตํด ์ป์ ๊ฒฐ๊ณผ๋ฅผ ๋น๊ตํ๋ค.
- ํ์๊ณผ์ ํ์๋ฅผ ํตํด ์ฑ๋ฅ ๊ฐ์ ํญ๋ชฉ์ ์ฐ์ ์์๋ฅผ ์ค์ ํ๊ณ '๊ฐ์ ๋ฐฉ๋ฒ' ๋ฐ '๊ธฐ๋ ํจ๊ณผ'๋ฅผ ์์ฑํ๊ณ ์ธก์ ํ ํ '์ค์ ๊ฒฐ๊ณผ'๋ฅผ ์ ๋ฆฌํ๋ค.
- ๋ชฉํ :
ํด๋ฆฐ ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฐ๋ฐ์๊ฐ ๋๊ธฐ!
ํ์ฌ | ๋์ฐฉ |
---|---|
์๊ท๋ชจ ํ๋ก์ ํธ, ๊ฐ๋จํ ๊ธฐ๋ฅ๋ง ๊ฐ๋ฐํด๋ด์ ์ฝ๋ ์์ฑ ๊ฒฝํ์ด ๋ง์ง ์์ ์ํ | ๋๊ท๋ชจ ํ๋ก์ ํธ ์์์ ํด๋ฆฐ ์ฝ๋์ ์์ฑ ๊ฒฝํ์ด ์๋ ์ํ (ํ๋ก์ ํธ๊ฐ ์๋ฃ๋๊ณ 1๋ ์ด ์ง๋ ๋ณด์๋ ๋น ๋ฅด๊ฒ ์ดํด๊ฐ ๋๋ ํด๋ฆฐ ์ฝ๋๋ฅผ ์์ฑํ๊ณ ์ถ์ต๋๋ค.) |
(๋์ฐฉ ์ํ ์์ธ)
- ํ์ผ์ ๋ชฉ์ ์ ๋ง๋ ๊น๋ํ ์ฝ๋
- ์ฌ์ฌ์ฉ์ด ์ด๋ฃจ์ด์ง๋ ์ฝ๋๋ค์ ์ฝ๊ฒ ์ฌ์ฌ์ฉ ํ ์ ์๋ ๊ตฌ์กฐ
- ์ง๊ด์ ์ผ๋ก ์ดํด๋๋ ์ด๋ฆ
๐ฌ (๋์ฐฉ) ์ํ๊ฐ ๋๊ธฐ ์ํ ๊ด๋ฆฌ ๋ฐฉ์
- 1์ฃผ์ผ์ ํ ๋ฒ ์๊ฐ ๊ฒ์งํ๋ฉฐ ์ฝ๋๋ฅผ ๋ ๊ฐ์ ํ ์ ์๋์ง ๊ณ ๋ฏผํ๋ค.
- 2์ฃผ์ผ์ ํ ๋ฒ ํ๋ก ํธ ๊ฐ๋ฐ ๊ฒฝ๋ ฅ์ด ์๋ ๋ณ์ฐฌ๋๊ณผ ํจ๊ป ์ฝ๋๋ฆฌ๋ทฐํ๋ฉฐ ๋ชฉํ๊ฐ ์ ์ง์ผ์ง๊ณ ์๋์ง ์ ๊ฒํ๋ค.
- ๋ชฉํ :
์ ์ง ๋ณด์ํ๊ธฐ ์ฌ์ด ์ฝ๋๋ฅผ ์์ฑํ๊ธฐ!
ํ์ฌ | ๋์ฐฉ |
---|---|
๋จ์ํ๊ฒ iOS ๋งค์ปค๋์ฆ์ ์ดํดํ๋ ์์ค์ ๊ฒฝํ๋ง ์๋ค. ํ๋ก์ ํธ์ ํน์ฑ์ ๋ฐํ์ผ๋ก ํจ๊ณผ์ ์ธ ์ค๊ณ๋ ๋ฌด์์ผ๊น์ ๋ํ ๊ณ ๋ฏผ์ ์์ค์์ ๋ฉ์ถฐ์๋ค. |
์ ์ง๋ณด์ ํ๊ธฐ ์ฌ์ด ์ค๊ณ์ ๋ํ ํต์ฐฐ๋ ฅ์ ๊ฐ์ถ ์ํ |
๋น๋๊ธฐ ๋ฐ ์ด๋ฒคํธ ํ๋ก๊ทธ๋๋ฐ์ ๋ํ ๊ด์ฌ์ ์์ผ๋, ๋ฐ์ํ ํ๋ก๊ทธ๋๋ฐ์ผ๋ก ๊ฐ๋ฐํด๋ณด์ง ์์๋ค. | RxSwift๋ฅผ ์ดํดํ๊ณ , ์ํฉ์ ๋ง๋ ๋น๋๊ธฐ ์ฝ๋๋ฅผ ์์ฑํ๋ค. |
๐ฌ (๋์ฐฉ) ์ํ๊ฐ ๋๊ธฐ ์ํ ๊ด๋ฆฌ ๋ฐฉ์
1. ์ ์ง๋ณด์ ํ๊ธฐ ์ฌ์ด ์ค๊ณ์ ๋ํ ํต์ฐฐ๋ ฅ์ ๊ฐ์ถ ์ํ
[์ค๊ณ ๋จ]
- ์ฃผ์ ๊ธฐ๋ฅ ๋จ์ ๊ฐ๋ฐ ์ ์ปดํฌ๋ํธ ๋ค์ด์ด๊ทธ๋จ์ ๋จผ์ ์ค๊ณํจ์ผ๋ก์ ์ ์ ํ ์ค๊ณ์ธ๊ฐ์ ๋ํด ์ ๊ฒํ๋ค.
- ๋์์ธ ํจํด์ ๊ฒฝ์ฐ, ์ ํํ ๋์์ธ ํจํด๊ณผ ๋ค๋ฅธ ๋์์ธ ํจํด์ ๋น๊ตํ์ฌ ํ๋ก์ ํธ์ ์ ์ ํ ์ค๊ณํจํด์์ ์ค๋ช
ํ ์ ์๋ค.
[์ฝ๋ ๋จ]
- ํ๋กํ ์ฝ ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ํตํด ๋ค์ํ ์ํฉ์์ ์ ์ฐํ๊ฒ ๋์ฒํ ์ ์๋ ์ฝ๋๋ฅผ ์์ฑํ๋ค.
- ์คํ ๋ฆฌ๋ณด๋ ์ฌ์ฉ์ ์ง์ํ์ฌ, ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ UI ๊ฐ๋ฐํ๋ค.
- ์์ฃผ ์ฌ์ฉํ๋ ์ปดํฌ๋ํธ๋ ๋ฏธ๋ฆฌ ์ ์ํ์ฌ ์ฌ์ฉํ๋ค.
- ๊ฐ ๋ชจ๋(๋๋ ๊ธฐ๋ฅ)๋ณ๋ก ํด๋๋ง์ ๊ตฌ์ฑํ์ฌ, ํ๋ก์ ํธ ํด๋ ๊ตฌ์กฐ๋ฅผ ์ง๊ด์ ์ผ๋ก ์ดํดํ ์ ์๊ฒ ๊ตฌ์ฑํ๋ค.
- ๊ฐ์ ๊ธฐ๋ฅ ๊ตฌํ ์, First-party๋ก ์ ๊ณต๋๋ ๊ฒ์ด ์์ผ๋ฉด ๋น๊ตํด๋ณด๊ณ ์ต๋ํ First-party ์ฌ์ฉ์ ์งํฅํ๋ค.
- ๋๋ฌด ๋ง์ ์ฝ๋์์ด๋ ํ์ต์ ๋์ด๋๊ฐ ์๋ ๊ฒฝ์ฐ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ์
2. RxSwift๋ฅผ ์ดํดํ๊ณ ์ํฉ์ ๋ง๋ ๋น๋๊ธฐ ์ฝ๋๋ฅผ ์์ฑํ๋ค.
- ์๋ก์ด ๊ธฐ๋ฅ ๋จ์์ ๊ฐ๋ฐ์ ์์ํ๊ธฐ ์ ์, ๋น๋๊ธฐ ํ๋ฆ์ ๋ํด ๋จผ์ ๊ตฌ์ํ๋ค.
- Rx ๊ด๋ จ ์๋ก์ด ์ง์์ ํ์ตํ ๊ฒฝ์ฐ, notion์ daily๋ก ์ ๋ฆฌํ๊ณ , ๋ธ๋ก๊ทธ์ ํฌ์คํ
ํ๋ค.
- ์ํฉ์ ๋ฐ๋ผ ๋ค์ํ Rx ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋๋ก ๋
ธ๋ ฅํ๋ค.
ํ์์ ๊ณตํต๋ ๊ฐ์ธ ๋ชฉํ๋ฅผ ๋ฐํ์ผ๋ก ํ ๋ชฉํ๋ฅผ ์ ์ ํ์์ต๋๋ค.
1๋ ๋ค์ ๋ด๋ ๋ถ๋๋ฝ์ง ์์ ์ฝ๋๋ฅผ ์์ฑํ์!
โ
๋ถ๋๋ฝ์ง ์์ ์ฝ๋
๋ค๋ฅธ ์ฌ๋๋ค์ด ์ด ํ๋ก์ ํธ๋ฅผ ์ก์๋ ๊ธ๋ฐฉ ๊ฐ๋ฐํ ์ ์์ ๋งํผ ์ฝ๊ฒ ์ดํดํ ์ ์๋ ์ฝ๋์ ๋๋ค.
์ด ์ฝ๋๋ฅผ ์์ฑํ๊ธฐ ์ํด์๋ ํด๋น ์ํคํ ์ฒ์ ์ ์ฒด์ ์ธ ํ๋ฆ์ ์ฝ์ ์ ์์ด์ผ ํฉ๋๋ค.
๊ธฐ์ ์คํ์ ํญ์ '์'๋ผ๊ณ ๋ฌป๋ ์ต๊ด์ ๋ค์ด์
์ ์ฐ๋์ง ์๋ ๊ฒ์ ๊ทธ ๊ธฐ์ ์คํ์ด ์ด๋ป๊ฒ ์๋ํ๋์ง ์๋ ์ํ์ด๋ค. ๊ทธ ๊ธฐ์ ์คํ์ ์๋ ์๋ฆฌ๋ถํฐ ๊ณต๋ถํ์ฌ ์ ๋๋ก ํ์ ํ๋ ๊ฒ์ด ์ค์ํ๋ค.
๐ฌ ํ ๋ชฉํ ์ธ๋ถ ๊ด๋ฆฌ ๋ฐฉ์
1. ๋ณ์ ๋๋ ํด๋์ค ์ด๋ฆ์ clearํ๊ณ ์ง๊ด์ ์ผ๋ก ์์ฑํ๋๋ก ๋
ธ๋ ฅํ๋ค.
- ํ๋ก ํธ์๋์ ๋ฐฑ์๋์์ ์ฌ์ฉํ๋ naming์ ์ฐจ์ด๊ฐ ์๊ฒ๋ ํ๋ค. ๋ฐฑ์๋์ naming์ ๊ธฐ์ค์ผ๋ก ํ๋ก ํธ์๋๊ฐ ๋ง์ถฐ ์ง๋๋ค.
2. ํฌ์ง์
(ํ๋ก ํธ์๋/๋ฐฑ์๋)์ ๊ธฐ๋ฅ ์ค๊ณ ์ ๋ฏธํ
์ ์ด์ด, ์ฐธ์์ ์์น์ผ๋ก ํ๋ฉฐ ์ํธ๊ฐ ํฌ์ง์
์ ์ดํด๋๋ฅผ ๋์ด๋๋ก ํ๋ค.
- ๋จ, ๋ฏธํ
์ ํ์๊ฐ ์๋ ์ ์๊ณ ๋ฌธ์๋ก ๋์ฒด๊ฐ ๊ฐ๋ฅํ๋ค.
3. ์๋ก์ด ๊ธฐ์ ๋๋ ์คํ์์ค๋ฅผ ๋์
์, ๊ด๋ จํด์ ์ ํฉํ ์ ํ์ด์๋๊ฐ์ ๋ํด์ ๊ณ ๋ฏผํ๊ณ Wiki์ Footer ๋ถ๋ถ์ ํ์ ์ ๋จ๊ธด๋ค.
- ํ์์๊ฒ ์ง์ ์ค๋ช
ํ๋ ์๊ฐ์ ๊ฐ์ง์ด ์๋ฌธ์ ๊ฐ๋ ํ๋๋ฅผ ๊ธฐ๋ฅผ ์ ์๋๋ก ํ๋ค.
๋ณธ ๋ฌธ์๋ฅผ ์์ํ๊ธฐ ์ ์, Discord ์๋น์ค์ ๋ํด์ ์ ๊น ์ฝ์ด์ฃผ์ธ์.
1. ์กฐ์ ๋ชจ๋ ๋ค ํ์์๋ ์์ฃผ ์ฌ์ฉํ๋ ์๋น์ค๋ก ์ ์ฐฉ์ด ๊น์ผ๋ฉฐ, ์ดํด๋๊ฐ ๋๋ค.
2. ์ฑํ
์๋ฒ, ์๊ทธ๋๋ง ์๋ฒ, ๋ฏธ๋์ด ์๋ฒ, presense ์๋ฒ, ์๋ฆผ ์๋ฒ ๋ฑ MSA ๊ด์ ์์ ํ์ฅ ์ํฌ ์ ์๋ ํ๋ก์ ํธ๋ก ์ ํฉํ๋ค.
3. ์์ฑ, ์์ ์ฑํ
์ ์ฃผ์ ์์ ๊ณ ๋ คํด์ผ ํ ๊ธฐ๋ฅ๋ค์ ์๋ ์๋ฆฌ๋ฅผ ์ ๋๋ก ํ์
ํ๋ ๊ฒ์ด ์ค์ํ๋ฏ๋ก
๊ธฐ์ ์คํ์ ์ดํด๋ถํฐ ์์ํ๋ ๋ชฉํ์ ์ ํฉํ๋ค.
4. ๋์ค์ฝ๋ ์ปค๋ฎค๋ํฐ ๊ตฌ์กฐ๋ ์นดํ
๊ณ ๋ฆฌ๋ถํฐ ๊ฐ๊ฐ์ ์ฑ๋, ์ค๋ ๋๊น์ง ๋ณต์กํ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ์ ์ฒด์ ์ธ ํ๋ฆ์ ์ดํดํ๊ณ
ํด๋ฆฐ ์ฝ๋๋ก ๋ฆฌํฉํ ๋ง ํ๊ธฐ์ ์์ฃผ ์ ํฉํ ์ฃผ์ ์ด๋ค.
1. ๋์ฉ๋ ์๋น์ค ์ค๊ณ
- ๋์ฉ๋ ์๋น์ค ์ค๊ณ ๋ฐ ๊ตฌํ์ ๊ฒฝํํ๊ธฐ ์ํด ๋ค์์ ์ฌ์ฉ์, ๋ค์ํ ์๋น์ค๋ค์ ์ฐ๊ด ๊ด๊ณ ์์์ ์์ ์ ์ผ๋ก ์๋น์ค๋๊ณ ์๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ค์ ๊ณ ๋ คํ๋ค.
- ๋์ฉ๋ ์๋น์ค ์ค๊ณ ๊ณผ์ ์์ ๋ฒค์น๋งํน ๋์์ผ๋ก ์ผ์ ์ ์๋ค.
2. ์ปค๋ฎค๋ํฐ ๋จ์์ ๋ฉ์ ์ ๊ตฌ์กฐ ์ค๊ณ
- ๋์ค์ฝ๋์ ์๋ฒ์ฒ๋ผ ์ปค๋ฎค๋ํฐ ๋จ์๋ก ์ฌ์ฉ์๊ฐ ์์ ๋กญ๊ฒ ์์ฌ์ํตํ๋ ํ๊ฒฝ์ ๊ฐ๋ฐ์ ๊ฒฝํํ๊ณ ์ถ๋ค.
- ํนํ ์๋ฒ์ ์ฑ๋์ฒ๋ผ ์ฌ์ฉ์๊ฐ ์์ ๋กญ๊ฒ ์ปค์คํฐ๋ง์ด์งํ์ฌ ๋ง๋ค์ด๊ฐ๋ ๊ณต๊ฐ์ ๊ฐ๋ฐํ๋ฉฐ ์ฌ์ฉ์ ์นํ์ ์ธ ์น์ฌ์ดํธ ๊ฐ๋ฐ ๊ฒฝํ์ ๊ฐ๊ณ ์ถ๋ค.
- ๋์ค์ฝ๋๋
์ปค๋ฎค๋ํฐ
-์นดํ ๊ณ ๋ฆฌ
-์ฑ๋
-์ค๋ ๋
์ ๊ฐ์ ๊ณ์ธต์ ๊ตฌ์กฐ๋ฅผ ๋ฐํ์ผ๋ก ์ปค๋ฎค๋ํฐ ๋ด ๊ถํ, ์๋ฆผ, ๋ฉค๋ฒ ๋ฑ์ ์์ ๋กญ๊ฒ ์ค์ ํ ์ ์๊ณ ๋ํ ๊ฐ ์ฑ๋๋ง๋ค ๊ตฌ์ฑ์ ๋ฌ๋ฆฌ ํ ์ ์๋ค.
3. ์ค์๊ฐ ์ฑํ , ์ค์๊ฐ ์์ฑ, ํ์ ์ฑํ
- ๋จ์ํ ํ ์คํธ ๋ฉ์ธ์ง๋ฅผ ์ ๋ฌํ๋ ๋ฉ์ ์ ๊ฐ ์๋ ๋ค์ํ ์๋จ์ ํตํด ์์ฌ์ํต์ ์งํํ๋ ์๋น์ค๋ฅผ ์ค๊ณํ๊ณ ๊ฐ๋ฐํ๋ฉด์ ์ ๊ณต ์๋น์ค์ ๋ฐ๋ฅธ ๋ค์ํ ์๋ฒ ์ํคํ ์ฒ ์ค๊ณ์ ๋ํ ๊ฒฝํ๊ณผ ๋ค์ํ ์์ฌ์ํต ๋ฐฉ๋ฒ์ ๋งค๋๋ฝ๊ฒ ํ๋ฉด์ ํํํ๋ ๊ฒฝํ์ ๊ฐ๊ณ ์ถ๋ค.
- ์ ํ๋ฆฌ์ผ์ด์
์ ์๋ช
์ฃผ๊ธฐ์ ๋ฐ๋ฅธ ์์ผ ํต์ ์ ์ด๋ฒคํธ ์ฒ๋ฆฌ๋ฅผ ๊ฒฝํํ ์ ์๋ค.
- ๋ฐฑ๊ทธ๋ผ์ด๋ : ์ค์๊ฐ ๋ฏธํ (ํ๋ฉด๊ณต์ , ์์ฑ ๋ฑ) ์
- ํฌ๊ทธ๋ผ์ด๋ : ์ฌ๋ฌ ์๋ฒ(๋์ค์ฝ๋์ server, ํ์ฅ๋ Room ๊ฐ๋ )์์์ ์ค์๊ฐ ๋ฉ์์ง ์ด๋ฒคํธ ์ฒ๋ฆฌ
- ๋คํธ์ํฌ ํ๊ฒฝ : reconnection์ ๋ฐ๋ฅธ socket ์ํ ์ฒ๋ฆฌ
- ๋ชฉํ :
MSA ๊ตฌ์กฐ๋ฅผ ์ดํดํ๊ณ ์ค๊ณํ๊ธฐ!
(msa ๊ตฌ์กฐ์ ๋ฐ์ดํฐ ๋๊ธฐํ ๋ฌธ์ ๋ฅผ kafka message queue๋ฅผ ์ด์ฉํ์ฌ ํด๊ฒฐ
)
API Gateway ์๋ฒ
- server routing
- token validation filter ์ฒ๋ฆฌ
์ฑํ ์๋ฒ
- websocket๋ฅผ ํตํด ํต์ ์ ์ฒ๋ฆฌํ๋ฉฐ kafka๋ฅผ ์ด์ฉํ์ฌ ๋น๋๊ธฐ ์์ ์ ํตํด ๋ฉ์ธ์ง๋ฅผ ์ฒ๋ฆฌํ๋ค
- ์นดํ์นด์ ๊ตฌ์กฐ๋ฅผ ํ์ ํ๊ณ ์ฌ๋ฌ ํด๋ฌ์คํฐ๋ฅผ ๊ด๋ฆฌํ๋ฉฐ ์ฑ๋ฅ ๊ฐ์ ์ ์ด๋ฃฌ๋ค.
์ธ์ฆ ์๋ฒ
- jwt token ๋ฐฉ์ ์ธ์ฆ ๊ตฌํ
- access token ์ธ์ฆ, refresh token + redis ์บ์ ์ ์ฅ
์๋ฆผ ์๋ฒ
- ์ฑํ ์ํคํ ์ฒ์ ํ๋ฆ์ ๋ง๋ ์๋ฆผ ์๋ฒ ๊ตฌํ
- kafka message queue๋ฅผ ์ด์ฉํ ๋น๋๊ธฐ ์ฒ๋ฆฌ.
- fcm ์ฐ๋
- ๋ชฉํ :
์๋ฒ ์ํคํ ์ฒ์ ๋ํ ์ดํด์ ํจ๊ป ์ฑ๋ฅ ๊ฐ์ ์ ๊ฒฝํํ์!
์๊ทธ๋๋ง ์๋ฒ, ๋ฏธ๋์ด ์๋ฒ ๊ฐ๋ฐ
- ์๊ทธ๋๋ง ์๋ฒ์ ๋ฏธ๋์ด ์๋ฒ ๊ฐ๋ฐ์ ํตํด ๋ฏธ๋์ด ์คํธ๋ฆผ ์ ์ก๊ณผ ๊ด๋ จํ ์ํคํ ์ฒ ์ค๊ณ ๋ฐ ๊ฐ๋ฐ ๊ฒฝํ์ ํ๋ค.
- ์ฌ์ฉ์์ ์์ ๋ฐ๋ฅธ ์ฐ๊ฒฐ ๊ด๋ฆฌ์ ๋ฏธ๋์ด ์คํธ๋ฆผ์ ๋ถ๋ฐฐ ๋ฐฉ๋ฒ์ ๋ฌ๋ฆฌํ๋ฉด์ ๋์ผํ ๊ธฐ๋ฅ์ ๋ํ ์ฑ๋ฅ ๊ฐ์ ์ ํ๋ค.
์ปค๋ฎค๋ํฐ ์๋ฒ, ์ฑํ ๋ฃธ ์๋ฒ ๊ฐ๋ฐ
- ์ปค๋ฎค๋ํฐ ๋จ์์ ๋ฉ์ ์ ๊ตฌ์กฐ์ ์ฌ์ฉ์์ ์ปค์คํฐ๋ง์ด์ง์ ๋์ํ ์ ์๋ ํจ๊ณผ์ ์ธ ๋๋ฉ์ธ ์ค๊ณ๋ฅผ ํ๋ค.
- ํ ๋ง์ดํฌ๋ก ์๋น์ค(์ ์ ์๋น์ค, ์ํ๊ด๋ฆฌ ์๋ฒ, etc.) ๊ฐ์ ์ฐ๋์ ํตํด MSA์ ๋ํ ์ดํด์ ๊ฐ๋ฐ์ ํ๋ค.
- ๋ชฉํ :
ํด๋ฆฐ ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฐ๋ฐ์๊ฐ ๋๊ธฐ
UI/UX ์ค๊ณ, Websocket ์ฐ๋, WebRTC ์ฐ๋
- ์๋นํ ์์ ํด๋ผ์ด์ธํธ ์ฝ๋ ์์์ css ์ ํ์๋ช , ๋ณ์๋ช , ํ์ผ๋ช , ํจ์๋ช ์ผ๊ด๋๊ณ ์ฝ๊ฒ ์ดํดํ ์ ์๊ฒ ์์ฑํ๋ค.
- ํ์ผ์ ๋ชฉ์ ์ ๋ง๊ฒ๋ ์ ์ ํ ๊ธฐ๋ฅ์ ๋๋๊ณ , ์ค๋ณต๋๋ ์ฝ๋๋ ์ฝ๊ฒ ์ฌ์ฌ์ฉํ ์ ์๊ฒ๋ ๋ถ๋ฆฌํ์ฌ ์์ฑํ๋ค.
UI/UX ์ค๊ณ
- Figma ์ด์ฉํด์ ๊ธฐ์กด ๋์ค์ฝ๋ ์น UI๋ฅผ ์์นด์ด๋นํ๋ค.
Websocket ์ฐ๋
- Websocket์ ํตํด ์ค์๊ฐ ์ฑํ ์ ์ฐ๊ฒฐํ๋ค.
WebRTC ์ฐ๋
- websocket๊ณผ ํจ๊ป ์ฐ๊ฒฐํ์ฌ ์์ฑ/์์ ํตํ ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ๋ค.
์ฌ์ฉ์๊ฐ ์ปค์คํฐ๋ง์ด์งํ๋ ์๋น์ค
- ์ฌ์ฉ์๊ฐ ์๋ฒ๋ฅผ ์์ฑํ๊ณ ์ฑ๋์ ์ทจํฅ์ ๋ง๊ฒ ์ปค์คํฐ๋ง์ด์งํ๋ ๋์ค์ฝ๋๋ฅผ ๊ตฌํํ๋ฉฐ ์ฌ์ฉ์ ์นํ์ ์ธ ์น์ ๊ฐ๋ฐํ๋ค.
- ๋ชฉํ :
์ ์ง ๋ณด์ํ๊ธฐ ์ฌ์ด ์ฝ๋๋ฅผ ์์ฑํ๊ธฐ!
UI/UX ์ค๊ณ
- Figma ์ด์ฉํด์ ๊ธฐ์กด ๋์ค์ฝ๋ ์ฑ UI ์์นด์ด๋น
- ์์ฃผ ์ฌ์ฉํ๋ ์์ ๋ฐ ์์ด์ฝ ๋ฑ asset ์ ์
- ๊ธฐ์กด UIKit์ extension ํ์ฌ custom
์ฑํ ๊ตฌํ
- StompClient ๋ก ์ฑํ ๋ฉ์์ง ์ฒ๋ฆฌ
- ํต์ ํ๊ฒฝ์ ๋ํ ์ ์ ํ UseCase๋ฅผ ์ ๋ณํ์ฌ ViewModel ์ค๊ณ
Web RTC ์ฐ๋
- WebRTC client side ๊ตฌํ
-
Starscream ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ (๋จ์ websocket ํต์ ์ฐ๊ฒฐ)
- URLSession์ ๊ฒฝ์ฐ iOS 13์ดํ์์๋ถํฐ ์น์์ผ ํต์ ์ง์ + ์์ ์ฑ์ ๋ฌธ์
-
Starscream ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ (๋จ์ websocket ํต์ ์ฐ๊ฒฐ)
- WebRTC ํ๋ฉด publishing
FCM ์ฐ๋
- Appdelegate ๋จ์์ ๋ฉ์์ง ์์
- ์์ ๋ ๋ฉ์์ง๋ณ server/channel ์๋ฆผ
ํ๋ก์ ํธ ๋ชฉํ ๋ฌ์ฑ์ ์ํด, ์ ๊ธฐ/๋ฐ์ผ๋ฆฌ ํ์๋ฅผ ํตํด ๊ฐ์ ์ ๋ฌด๋ฅผ ํ์ธํฉ๋๋ค.
๋ณธ ํ๋ก์ ํธ์ ํ์๋ ์๋์ ๊ฐ์ด ์งํ๋ฉ๋๋ค.
1๏ธโฃ ํ์ ์ข
๋ฅ
- ์ ๊ธฐ ํ์ (๋งค์ฃผ 1ํ)
- ๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ(๋งค์ผ 14:00)
2๏ธโฃ ์ฃผ์ ํ์ ๋ด์ฉ
- ์ ๊ธฐ ํ์) 1์ฃผ์ผ๊ฐ์ ์
๋ฌด ๊ณํ์ ๊ณต์ ํ๋ค.
- ๋จ, ์์ ๊ฐ๋ฅํ ๋ฒ์ ๋ด์์ ์ด์ผ๊ธฐ๋ฅผ ์งํํ๋ฉฐ, ๊ณ ๋ฏผ์ฌํญ ๋ฑ์ ๊ฐ๋จํ ์ธ๊ธ ์ ๋๋ง ํ๋ค.
- ๋ฐ์ผ๋ฆฌ ํ์) ์ ๋ ์
๋ฌด์ ๋ํ ํ๊ณ + ๊ธ์ผ ์
๋ฌด ๊ณํ์ ๊ณต์ ํ๋ค.
3๏ธโฃ ๊ท์น
- ํ์๋ฅผ ํ ๋๋ง๋ค ํ์๋ก์ ์์ฑํ์ฌ ๊ธฐ๋กํ๋ค.
- ์ ๊ธฐ ํ์๋ ํ์์ ์์ฒญ์ด ์์ ์ ์ธ์ ๋ ์ง ๊ฐ์ง ์ ์๋ค.
- ์ ๊ธฐ ํ์๋ 1์๊ฐ์ ๋๊ธฐ์ง ์๋๋ค.
- ์คํฌ๋ผ ํ์๋ 10~20๋ถ์ ๊ฐ์ง๋ค.
- ์์ค ์ฝ๋ ๋ฒ์ ๊ด๋ฆฌ
- Github๋ฅผ ํตํด ํ๋ก์ ํธ ์์ค์ฝ๋๋ฅผ ๊ด๋ฆฌํ๋ค.
- ๊ฐ ์ธ์ ๋ณ๋ก branch๋ฅผ ๋ค๋ฅด๊ฒ ๊ตฌ์ฑํ์ฌ develop branch๋ก pushํ๋ค.
- develop branch์์ main branch๋ก๋ ์กฐ์ฅ์ด ํ์ธํ์ฌ pushํ๋ค.
[์์ค์ฝ๋ ๋ฒ์ ๊ด๋ฆฌ R&R]
- ๋ฐ๋ณ์ฐฌ, ๊นํฌ๋(BE) : ๊ฐ์ธ ๋ธ๋์น์ push / ์ต์ข
๋ณํฉ์ ์๋๊ฐ approve ์ Merge
- ๊น๋ฏผ์ง(Web) : ๋ณธ์ธ ํ์ธ ๋ฐ ๊ถ๊ธํ ์ฌํญ ๋ฑ [๋ฐ๋ณ์ฐฌ] ํ์์๊ฒ PR ํ์ธ ์์ฒญ(approve ์ Merge)
- ๊น๋๋ฆฌ(iOS) : ๋ณธ์ธ ํ์ธ ๋ฐ Merge
** ์ต์ข
์์ค์ฝ๋ ๊ด๋ฆฌ์ : ๊นํฌ๋
- ํ์ผ ๋๋ ํ ๋ฆฌ, branch ๋ฑ ์ ์ฒด ๊ด๋ฆฌ
- ํ๋ก์ ํธ ์ผ์ ๊ด๋ฆฌ ๋ฌธ์
- Discord + Github Webhook
- Google SpreadSheets
- Github Wiki
(last update) 22.01.07.
์ํ์ ํ๋ก์ ํธ ์๊ตฌ์ฌํญ์ ๋ฐ๋ฅธ ์ํ, ํ๋ก์ ํธ ๊ด๋ฆฌ์ ๋ฐ๋ฅธ ์ํ์ผ๋ก ๋๋๋ฉฐ ํ๋ก์ ํธ ์งํ ์ ๊ณ์ ๋ณ๋๋๋ค.
1๏ธโฃ ์ํ ์์
ํ๋ก์ ํธ ์๊ตฌ์ฌํญ์ ๋ฐ๋ผ ํ๋ก์ ํธ ์ผ์ ์ ์ฐจ์ง์ด ์๊ธธ ์ ์๋ค.
2๏ธโฃ ๊ด๋ฆฌ ๊ณํ
- ํ๋ก์ ํธ ์๊ตฌ์ฌํญ์ ๋ฐ๋ฅธ ์ํ์ด ๋ฐ์ํ๋ค๋ฉด, ์ฆ์ ํ์๋ฅผ ์์งํด ํ๋ก์ ํธ ์ผ์ ์ ์กฐ์ ํ๊ฑฐ๋ ํ๋ก์ ํธ ์๊ตฌ์ฌํญ์ ์กฐ์ ํ๋ค.
- ์ด๋ฏธ ๋ฐ์ํ ์ํ ์์๋ ์ ๊ธฐ ํ์๋ฅผ ํตํด ์ด๋ป๊ฒ ์งํ๋๊ณ ์๋์ง ๊ณต์ ํ๋ค.
3๏ธโฃ list-up
a.
1๏ธโฃ ์ํ ์์
Github์ ๋ค์ํ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋๋ฐ ์์ด์ ๋ฏธ์ํ์ฌ, ์ค์ ์
๋ฌด์ ํ๋ก์ ํธ ๊ด๋ฆฌํด(Github) ๊ฐ์ ์ฐจ์ด๊ฐ ์๋ค.
2๏ธโฃ ๊ด๋ฆฌ ๊ณํ
- Github ์ฌ์ฉ์ด ๋ฏธ์ํ ํ์์ด ๋์์ ์์ฒญํ ๊ฒฝ์ฐ ๋ค๋ฅธ ํ์์ด ์ฌ์ฉ์ ๋๋๋ค.
- Github ์ฌ์ฉ์ ๋งค๋ด์ผ์ ์์ฑํ์ฌ ๊ณต์ ํ๋ค.[์์ค์ฝ๋ ๋ฒ์ ๊ด๋ฆฌ R&R]
b.
1๏ธโฃ ์ํ ์์
์ผ์ ํ
์คํฌ ์๋ฃ ์ ํ๋ก์ ํธ ๊ด๋ฆฌ ํด์ ์ด์ฉํ์ฌ ๋ค๋ฅธ ํ์๋ค์๊ฒ ํ
์คํธ ์๋ฃ๊ฐ ๋์์์ ์ ํํ๋๋ฐ ์์ด ์ด๋ ค์์ด ์๋ค.
2๏ธโฃ ๊ด๋ฆฌ ๊ณํ
- ๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ์ ํตํด ์๋ฃํ ์ผ๊ณผ ์ค๋ ํด์ผํ ์ผ์ ์๊ฐ ์์ผ๋ก ๊ณต์ ํ๋ค.
- ์ ๋ฌด ์ค ํ์คํฌ๋ฅผ ์๋ฃํ์๋ค๋ฉด, ์คํ๋ผ์ธ ์ ๋ฌด ์ค์ผ ๊ฒฝ์ฐ์๋ ์ง์ ์ด์ผ๊ธฐ๋ฅผ ํ๊ณ ์จ๋ผ์ธ ์ ๋ฌด ์ค์ผ ๊ฒฝ์ฐ ๋์ค์ฝ๋์ ํ์คํฌ-์ฝ๋ ์ฑ๋์ ํตํด ์ด์ผ๊ธฐํ๋ค.