์์นด๋ฐ๋ฏธ์์ ํ๋ก์ ํธํ๋ ์ค ํ์ผ ๋ค์ด๋ฐ์ ๊ดํด ๋ ผ์ํ๋ ์ ์ด ์์๋ค.
๊ทธ๋๋ ์ฐ๋ฆฌ(iOS๊ฐ๋ฐ์)๋ผ๋ฆฌ ์๋ก ํฉ์๋ง ํ๋ฉด ๋๋ค๊ณ ๋ง์ด ๋์์ด์, ๋ณ๋ค๋ฅธ ๋ง์ ๊บผ๋ด์ง ์๊ณ ์ง๋๊ฐ๋ค.
์ถํ์ ๊ฐ์ธ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ์ด๋ค ๋ค์ด๋ฐ์ด ๋ ๋ณดํธ์ ์ผ์ง ๊ฒ์ํ๊ณ , ๋ธ๋ก๊ทธ๋ฅผ ๋ฐ๊ฒฌํ๊ฒ ๋๋ค.
์ด๋ฅผ ์ฐธ๊ณ ํด์ ์ ๋ฆฌํด๋ณด์๋ค.
์์๋ณด์ !
- ์๋น์ค(Service)
- ๊ฐ๋ : ์๋น์ค ๋ ์ด์ด ํจํด์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉฐ, ๋น์ฆ๋์ค ๋ก์ง์ ์ฒ๋ฆฌํ๊ณ ๋ค์ํ ์ปจํธ๋กค๋ฌ๋ค์ด ๊ณตํต์ผ๋ก ์ฌ์ฉํ๋ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ๊ธฐ๋ฅ: ํน์ ํ๋ซํผ์ด๋ ์ฌ์ฉ์์ ๋ํ ์ง์์ ๊ฐ์ง์ง ์๊ณ , ์ผ๊ด๋ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ์ฌ ๋น์ฆ๋์ค ๋ก์ง์ ์คํํฉ๋๋ค. ์ปจํธ๋กค๋ฌ๋ค์ด ํ์๋ก ํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ณ , ๋ค์ํ ๋ถ๋ถ์์ ๊ณต์ ํ์ฌ ์ฌ์ฉํ ์ ์๋๋ก ํฉ๋๋ค.
- ์ญํ : ๋น์ฆ๋์ค ๋ก์ง์ ์ฒ๋ฆฌํ๊ณ , ํน์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ๋ฐ ์ง์คํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ํ ๊ฐ์ง ๋๋ฉ์ธ์ ํนํ๋ ์ ๋ฌด๋ฅผ ์ํํฉ๋๋ค. ์ฌ์ฉ์ ๊ด๋ฆฌ, ๊ฒ์๋ฌผ ๊ด๋ฆฌ ๋ฑ๊ณผ ๊ฐ์ด ํน์ ๋๋ฉ์ธ์ ๋ํ ๋ก์ง์ ๊ตฌํํฉ๋๋ค.
- ๋งค๋์ (Manager)
- ๊ฐ๋ : ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค์ํ ๊ตฌ์ฑ ์์๋ค์ ๊ด๋ฆฌํ๊ณ ์ค์ ์ง์ค์ ์ผ๋ก ์ ์ดํ๋ ์ญํ ์ ํฉ๋๋ค.
- ๊ธฐ๋ฅ: ์ฃผ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ๋ฌ ๊ตฌ์ฑ ์์๋ค ๊ฐ์ ์ํธ์์ฉ์ ์กฐ์จํ๊ณ ๊ด๋ฆฌํฉ๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ, ์ ํ๋ฆฌ์ผ์ด์ ์ํ ๊ด๋ฆฌ, ์ธ์ ๊ด๋ฆฌ ๋ฑ๊ณผ ๊ฐ์ด ์ค์ํ ๋ถ๋ถ๋ค์ ๊ด๋ฆฌํ๋ฉฐ, ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฒด์์ ๊ณตํต์ ์ผ๋ก ์ฌ์ฉ๋ ์ ์๋ ๊ธฐ๋ฅ๋ค์ ์ ๊ณตํฉ๋๋ค.
- ์ญํ
- ์ ์ญ์ ๋ฆฌ์์ค ๊ด๋ฆฌ: ์ ์ญ์ ์ธ ๋ฐ์ดํฐ๋ ๋ฆฌ์์ค๋ฅผ ๊ด๋ฆฌํ๋ฉฐ, ์ฌ๋ฌ ์ปดํฌ๋ํธ ๊ฐ์ ๊ณต์ ๋ ์ ์๋ ์ํ๋ฅผ ๊ด๋ฆฌํฉ๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ, ์บ์ฑ, ๋ก๊น ๊ณผ ๊ฐ์ ์ ์ญ์ ์ธ ๋ฆฌ์์ค๋ฅผ ์ ์ดํฉ๋๋ค.
- ์ค์ฌ์ ์ญํ : ์ฌ๋ฌ ์ปดํฌ๋ํธ ๊ฐ์ ์ํธ์์ฉ์ ์ค์ฌํ๊ณ ์กฐ์จํฉ๋๋ค. ๋ค์ํ ๋ถ๋ถ์์ ํ์ํ ์ค๋ณต๋ ๋ก์ง์ด๋ ์ํ๋ฅผ ์ค์ ์ง์ค์ ์ผ๋ก ๊ด๋ฆฌํ์ฌ ์ฝ๋ ์ค๋ณต์ ๋ฐฉ์งํ๊ณ ์ ์ง๋ณด์์ฑ์ ๋์ ๋๋ค.
- ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐ์ ์ธ ๋ก์ง ์ฒ๋ฆฌ: ์ ์ญ์ ์ธ ๊ด๋ฆฌ๊ฐ ํ์ํ ๋ก์ง์ ์ฒ๋ฆฌํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๋ณด์ ๊ด๋ฆฌ, ์ด๋ฒคํธ ๋ก๊น , ์ธ์ ๊ด๋ฆฌ, ์ ํ๋ฆฌ์ผ์ด์ ์ด๊ธฐํ ๋ฑ์ ์ญํ ์ ์ํํฉ๋๋ค.
- Controller(์ปจํธ๋กค๋ฌ)
- ๊ฐ๋ : Model-View-Controller(MVC) ๋์์ธ ํจํด์ ๊ธฐ๋ฐํ ๊ตฌ์ฑ ์์๋ก, ์ฃผ๋ก ์ฌ์ฉ์ ์ธํฐํ์ด์ค(UI)์ ๋น์ฆ๋์ค ๋ก์ง ์ฌ์ด์ ํต์ ์ ๊ด๋ฆฌํฉ๋๋ค.
- ๊ธฐ๋ฅ: ์ฌ์ฉ์์ ์ก์ ์ ๋ฐ์ํ์ฌ ๋ชจ๋ธ์ ์ํ๋ฅผ ๋ณ๊ฒฝํ๊ฑฐ๋ ๋ชจ๋ธ๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ UI์ ํ์ํ๋ ์ญํ ์ ํฉ๋๋ค. ์ฃผ๋ก ํน์ ํ๋ซํผ์ ๋ง๊ฒ HTTP ํต์ ๋ฑ์ ์ฒ๋ฆฌํ๊ณ , HTML๊ณผ ๊ฐ์ ํํ๋ก UI๋ฅผ ๋ ๋๋งํฉ๋๋ค.
์๋น์ค์ ์์๋ฅผ ๋์ฑ ์์๋ณด์๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค!
- UserService(์ฌ์ฉ์ ์๋น์ค):
์ฌ์ฉ์ ๊ด๋ฆฌ์ ๊ด๋ จ๋ ๊ธฐ๋ฅ๋ค์ ์ ๊ณตํ๋ ์๋น์ค์ ๋๋ค. ํ์ ๊ฐ์ , ๋ก๊ทธ์ธ, ์ฌ์ฉ์ ํ๋กํ ๊ด๋ฆฌ, ๊ถํ ๋ถ์ฌ ๋ฑ์ ๊ธฐ๋ฅ์ ์ํํฉ๋๋ค. - ProductService(์ ํ ์๋น์ค):
์ ํ๊ณผ ๊ด๋ จ๋ ๊ธฐ๋ฅ๋ค์ ์ ๊ณตํ๋ ์๋น์ค๋ก, ์ ํ ๋ชฉ๋ก ์กฐํ, ์ ํ ์์ธ ์ ๋ณด ๊ฐ์ ธ์ค๊ธฐ, ์ ํ ์ฃผ๋ฌธ ๋ฑ์ ๊ธฐ๋ฅ์ ์ฒ๋ฆฌํฉ๋๋ค. - PaymentService(๊ฒฐ์ ์๋น์ค):
๊ฒฐ์ ์ฒ๋ฆฌ์ ๊ด๋ จ๋ ๊ธฐ๋ฅ๋ค์ ์ ๊ณตํ๋ ์๋น์ค์ ๋๋ค. ๊ฒฐ์ ์๋จ ์ถ๊ฐ, ๊ฒฐ์ ์งํ, ๊ฒฐ์ ๋ด์ญ ์กฐํ ๋ฑ์ ๋ด๋นํฉ๋๋ค. - EmailService(์ด๋ฉ์ผ ์๋น์ค):
์ด๋ฉ์ผ ๋ฐ์ก๊ณผ ๊ด๋ จ๋ ๊ธฐ๋ฅ๋ค์ ์ ๊ณตํ๋ ์๋น์ค๋ก, ์ด๋ฉ์ผ ์ ์ก, ํ ํ๋ฆฟ ๊ธฐ๋ฐ์ ์ด๋ฉ์ผ ์์ฑ, ์ด๋ฉ์ผ ์ ํจ์ฑ ๊ฒ์ฌ ๋ฑ์ ์์ ์ ์ํํฉ๋๋ค.
๋งค๋์ ๋ ์ผ๋ฐ์ ์ผ๋ก ์ปจํธ๋กค๋ฌ๋ ์๋น์ค์ ์ ์ฌํ ์ญํ ์ ์ํํ์ง๋ง, ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ญ์ ์ธ ๋ฆฌ์์ค๋ ์ํ๋ฅผ ๊ด๋ฆฌํ๊ฑฐ๋ ์ฌ๋ฌ ์ปดํฌ๋ํธ ๊ฐ์ ์ค์ฌ์ ์ญํ ์ ํ๋ ๋ฐ์ ์ด์ ์ด ๋ง์ถฐ์ง๋๋ค. ์๋ฅผ ๋ค์ด, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ, ๋ก๊น , ๋ณด์, ์ ํ๋ฆฌ์ผ์ด์ ์ค์ ๋ก๋ ๋ฑ๊ณผ ๊ฐ์ ์ ์ญ์ ์ธ ์์ ์ ์ฒ๋ฆฌํฉ๋๋ค. ์ด๋ฌํ ๋งค๋์ ๋ ํน์ ๋๋ฉ์ธ์ด๋ ๊ธฐ๋ฅ์ ๊ตญํ๋์ง ์๊ณ , ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฒด์ ๊ด๋ฆฌ๋ฅผ ๋ด๋นํ์ฌ ์ ๋ฐ์ ์ธ ๋ชจ๋ํ์ ์ ์ง๋ณด์์ฑ์ ํฅ์์ํต๋๋ค.
์๊ฒ๋ ์ ์ ํ ๋๋ก ํ์์๊ฒ ๊ณต์ ํ๊ณ ์ ์ฉ์ํค๋ ์๊ฐ์ ๊ผญ ๊ฐ์ ธ์ผ๊ฒ ๋ค!
'๐ป Develop' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Develop] iOS ๊ฐ๋ฐํ๋ฉฐ status code์ ๋ฐ๋ผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ๋ค (+status code ์ ๋ฆฌ) (1) | 2024.07.04 |
---|---|
[Develop] DTO์ DAO, VO (0) | 2024.01.17 |
[Develop] CI/CD์ ๋ํ์ฌ (0) | 2023.11.05 |