Backend for Frontend (BFF) Architecture ๋ฅผ ์ฝ๊ณ ์ ๋ฆฌํ ๋ด์ฉ์ ๋๋ค.
๊ฒฐ๋ก ๋ถํฐ ๋งํ์๋ฉด BFF๋ ์ฌ์ฉ์ ๊ฒฝํ์ ๊ฐ์ ํ ์ ์์ต๋๋ค. ์๋ก ๋ค๋ฅธ ํด๋ผ์ด์ธํธ๋ง๋ค ์ฌ์ฉ์ ์ธํฐํ์ด์ค์ ๋ฐ์ดํฐ๋ฅผ ์ ํํ๊ฒ ์ ๊ณตํ๋๋ก ๋์์ฃผ๊ณ , ๋ค์ ๋ณต์ก์ฑ์ด ๋๋๋ผ๋ ์ฑ๋ฅ์ ๊ฐ์ ๊ณผ ์ ์ฐ์ฑ์ ๊ทธ๋งํผ์ ๊ฐ์น๊ฐ ์์ต๋๋ค. ๋ง์ฝ ์๋น์ค๋ฅผ ์น ์ฑ, ๋ชจ๋ฐ์ผ ์ฑ, IoT ๋๋ฐ์ด์ค๋ก ์๋น์ค๋ฅผ ํ์ฅํ๋ค๋ฉด BFF ๋ฅผ ๊ณ ๋ คํด๋ณผ ์ ์๋ค๊ณ ํฉ๋๋ค.
BFF(Backend for Frontend) ์ํคํ ์ฒ ๋ฑ์ฅ ๋ฐฐ๊ฒฝ
- ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ ์ ๋ ๋ถ์ฐ๋จ
- ๊ฐ ํด๋ผ์ด์ธํธ ์๊ตฌ์ ๋ง์ถ ๋ฐฑ์๋ ์๋น์ค๋ฅผ ์ ๊ณต์ด ํ์ํด์ง(์ ์ง ๋ณด์์ ํธ์์ฑ๊ณผ ์์ ํ ์ฌ์ฉ์ ๊ฒฝํ ์ ๊ณต์ ์ํด)
BFF(Backend for Frontend) ์ํคํ ์ฒ๋?
๊ฐ ํ๋ก ํธ์๋ ์ธํฐํ์ด์ค์ ์ ์ฉ ๋ฐฑ์๋ ๋ ์ด์ด๋ฅผ ์ ๊ณตํ๋ ์ํคํ์ฒ ํจํด
๊ฐ ํ๋ก ํธ์๋(ex. ๋ชจ๋ฐ์ผ ์ฑ, ์น ์ฑ, ๋๋ฐ์ด์ค ..) ์๋ก ๋ค๋ฅธ ์ฑ๋ฅ, ๋ฐ์ดํฐ, ์ธํฐ๋์ ์๊ตฌ์ฌํญ์ ๊ฐ์ง ์ ์์
=> ํน์ ํ๋ก ํธ์๋์ ์๊ตฌ์ ๋ง์ถ ๋ฐฑ์๋๋ฅผ ์ ๊ณต
- ๋ค์ํ ์๋น์ค ํธ์ถ์ ํตํฉํ๊ฑฐ๋ ์กฐ์
- ํด๋ผ์ด์ธํธ ์นํ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ค๋น
- ํ๋ก ํธ์๋์ ๊ด๋ จ๋ ํน์ ๋ก์ง ์ฒ๋ฆฌ
=> ๊ด์ฌ์ฌ๋ฅผ ๋ถ๋ฆฌํ๊ณ ๊ฐ ํด๋ผ์ด์ธํธ์ ์ ํฉํ๊ฒ ๋ฐฑ์๋๋ฅผ ์ต์ ํ
BFF์ ์๋ ๋ฐฉ์
- ํด๋ผ์ด์ธํธ ์์ฒญ: ํด๋ผ์ด์ธํธ(๋ชจ๋ฐ์ผ, ์น ๋ฑ)๋ ํด๋นํ๋ BFF์ ์์ฒญ์ ๋ณด๋.
- BFF ๋ ์ด์ด: BFF๋ ์ฌ๋ฌ ๋ง์ดํฌ๋ก์๋น์ค๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ํตํฉํ๊ณ , ํ์ํ ๋ณํ์ด๋ ์ต์ ํ๋ฅผ ์ํํ ๋ค, ๋ง์ถคํ ์๋ต์ ์ ๊ณต
- ๋ง์ดํฌ๋ก์๋น์ค: BFF๋ ํ์ ์๋น์ค(์: ์ฌ์ฉ์ ์๋น์ค, ์ฃผ๋ฌธ ์๋น์ค ๋ฑ)์ ์ํธ์์ฉํฉ๋๋ค.
์ ํต์ ์ธ ์ํคํ ์ฒ vs BFF
์ ํต์ ์ธ ์ํคํ ์ฒ
- ๋จ์ผ API ๊ฒ์ดํธ์จ์ด๊ฐ ์น, ๋ชจ๋ฐ์ผ, IoT ๋ฑ ์ฌ๋ฌ ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ์์ฒญ์ ์ฒ๋ฆฌ
- ํด๋ผ์ด์ธํธ๋ณ ์๊ตฌ๋ฅผ ์ฒ๋ฆฌํ๋ ์ ์ฐ์ฑ์ ๋ถ์กฑ. ์) ์๋ก ๋ค๋ฅธ ํด๋ผ์ด์ธํธ ์ฑ์ ๋ง์ถ ๋ฐ์ดํฐ ๋ชจ๋ธ, ํน์ ํ๋ก ํธ์๋๋ฅผ ์ํ ๋ณต์กํ ์๋น์ค ๊ด๋ฆฌ ๋ฑ..
- ๋ฐฑ์๋๋ฅผ ๋ถ๋ฆฌํ์ฌ ๊ฐ ํด๋ผ์ด์ธํธ๊ฐ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ ํํ๊ฒ ์ ๊ณต๋ฐ๋๋ก ๋ณด์ฅ
BFF๊ฐ ํ๋ ์ํคํ ์ณ์์ ์ธ๊ธฐ๋ฅผ ๋๋ ์ด์
- ๋ง์ถคํ ์ฌ์ฉ์ ๊ฒฝํ: ๋ชจ๋ฐ์ผ ์ฑ์ด๋ ๋ฐ์คํฌํ์ด๋ ์จ์ด๋ฌ๋ธ ๋๋ฐ์ด์ค์ด๋ , ๊ฐ ํ๋ก ํธ์๋๋ ํ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ธํ๊ณ ์ ํํ ํ์ํ ๋ฐ์ดํฐ๋ง ๋ฐ์
- ๋ณต์ก์ฑ ๊ฐ์: BFF๋ ๊ฐ ๋ฐฑ์๋๋ฅผ ๋ง์ถคํํ์ฌ ํ๋ซํผ ๊ฐ ๋งค๋๋ฌ์ด ๊ฒฝํ์ ๋ณด์ฅํ๋ฉฐ ์์คํ ์ ๋จ์ํ
- ์ฑ๋ฅ ํฅ์: ๋ถํ์ํ API ํธ์ถ์ ์ค์ฌ ์๋ต ์๋ ๋ฐ ์ฌ์ฉ์ ๋ง์กฑ๋๋ฅผ ํฅ์
- ๋น ๋ฅธ ๊ฐ๋ฐ: ํ์ด ๊ฐ ํ๋ก ํธ์๋์ ๋ง๋ BFF๋ฅผ ๋ฐ๋ก ์์ ํ ์ ์์ด ์๋ก ๊ฐ์ญํ์ง ์๊ณ ๋ ๋น ๋ฅด๊ฒ ๊ฐ๋ฐ ๊ฐ๋ฅ
- ๊ฐํ๋ ๋ณด์: BFF๋ ๋ฐฑ์๋์์ ๋ชจ๋ ์ํธ์์ฉ์ ์ ์ดํ๊ธฐ ๋๋ฌธ์ ์๊ฒฉํ ๋ณด์ ์กฐ์น๋ฅผ ์คํํ ์ ์์. ์) ํ ํฐ ๊ฒ์ฆ, ์ ๋ ฅ ๊ฒ์ฆ, ์๋ ์ ํ
BFF๋ฅผ ์ธ์ ์ฌ์ฉํด์ผ ํ ๊น
- ๋ค์ค ํ๋ซํผ ์ ํ๋ฆฌ์ผ์ด์ : ์น, ๋ชจ๋ฐ์ผ, ์ค๋งํธ ๋๋ฐ์ด์ค ๋ฑ ๋ค์ํ ํ๋ซํผ์ ์ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๋ ๊ฒฝ์ฐ, BFF๋ ๊ฐ ํ๋ซํผ์ ๋ง์ถคํ ๊ฒฝํ์ ์ ๊ณตํ ์ ์์.
- ๋ง์ดํฌ๋ก์๋น์ค ์ค์ผ์คํธ๋ ์ด์ : ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ์์ ํด๋ผ์ด์ธํธ๊ฐ ์ฌ๋ฌ ์๋น์ค(์: ์ฌ์ฉ์ ์๋น์ค, ์ฃผ๋ฌธ ์๋น์ค, ์ฌ๊ณ ์๋น์ค)๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์์ผ ํ ๋, BFF๋ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ํตํฉํ์ฌ ํด๋ผ์ด์ธํธ์ ์ผ๊ด๋ ์๋ต ์ ๊ณต ๊ฐ๋ฅ
- ๋ ๊ฑฐ์ API ์ต์ ํ: ๋ง์ดํฌ๋ก์๋น์ค๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๊ฑฐ๋ ๋ ๊ฑฐ์ ์์คํ ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ, BFF๋ ๋ณต์กํ ๊ธฐ์กด ์ํคํ ์ฒ๋ฅผ ๊ฐ์ถ๊ณ ํ๋ก ํธ์๋์ ํ๋์ ์ธ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ ์ ์์.
๋์ ๊ณผ ๊ณ ๋ ค ์ฌํญ
- ์ ์ง ๊ด๋ฆฌ ์ค๋ฒํค๋ ์ฆ๊ฐ: ๊ฐ ํ๋ก ํธ์๋๋ง๋ค ๋ณ๋์ ๋ฐฑ์๋๋ฅผ ์ ์งํด์ผ ํ๋ฏ๋ก ๋ณต์ก์ฑ ์ฆ๊ฐํ ์ ์์. ์ถ๊ฐ ๋ชจ๋ํฐ๋ง, ํ์ฅ์ฑ ๊ด๋ฆฌ, ๋ณด์ ์กฐ์น๊ฐ ํ์
- ์ผ๊ด์ฑ ๋ฌธ์ : ์ ์คํ๊ฒ ์ค๊ณํ์ง ์์ผ๋ฉด ํด๋ผ์ด์ธํธ๋ง๋ค ๋ฐํ๋๋ ๋ฐ์ดํฐ์ ์ผ๊ด์ฑ์ด ๋จ์ด์ง ์ ์์.
- ์ฑ๋ฅ ๋ณ๋ชฉ: BFF ๋ ์ด์ด๊ฐ ์ต์ ํ๋์ง ์์ผ๋ฉด ๋ง์ ์์ฒญ์ ์ฒ๋ฆฌํ๊ฑฐ๋ ๋ณต์กํ ์ฐ์ฐ์ ์ํํ ๋ ์ฑ๋ฅ ๋ณ๋ชฉ์ด ๋ฐ์ํ ์ ์์.
๊ตฌํ Best Practice
BFF ์ํคํ ์ฒ ๊ตฌํ์ ๋ค์ ๋ด์ฉ์ ๊ณ ๋ คํ์
- BFF ๋ด ๋น์ฆ๋์ค ๋ก์ง ์ ํ: BFF๋ ์ฃผ๋ก ํ๋ก ํธ์๋๋ฅผ ์ํ ๋ฐ์ดํฐ ์ค์ผ์คํธ๋ ์ด์ ๋ฐ ํฌ๋งทํ ์ ์ง์คํด์ผ ํ๋ฉฐ, ๋ณต์กํ ๋น์ฆ๋์ค ๋ก์ง์ ๊ตฌํํด์๋ ์ ๋จ.
- ์บ์ฑ ์ฌ์ฉ: ํนํ ๋ชจ๋ฐ์ผ ํด๋ผ์ด์ธํธ๋ฅผ ์ํด ์ฑ๋ฅ์ ํฅ์์ํค๋ ค๋ฉด BFF ๋ ์ด์ด์์ ์์ฃผ ์ฌ์ฉํ๋ ์๋ต์ ์บ์ฑ
- ์๋ฌ ์ฒ๋ฆฌ: ์๋ฌ ์ฒ๋ฆฌ์ ๋ก๊น ์ ์ค์ ์ง์คํํ์ฌ ํด๋ผ์ด์ธํธ๊ฐ ์ง๋ฉดํ๋ ๋ฌธ์ ๋ฅผ ๋ฐฉ์ง
- ๋ณด์: ์ธ์ฆ, ๊ถํ ๋ถ์ฌ, ์๋ ์ ํ ๋ฑ์ ํตํด BFF ๋ ๋ฒจ์์ ๋ณด์์ ๊ฐํํ์ฌ ๋ฐฑ์๋ ์๋น์ค๋ฅผ ๋ณดํธํ๊ธฐ
์ค์ BFF ์ฑ๊ณต ์ฌ๋ก
- ๋ทํ๋ฆญ์ค: BFF ์ํคํ ์ฒ๋ ๋ทํ๋ฆญ์ค์ ์ํํ ํฌ๋ก์ค ๋๋ฐ์ด์ค ๊ฒฝํ์ ์ ๊ณต. ๋ชจ๋ฐ์ผ ์ฑ์ ๊ฐ๋ฒผ์ด ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ณ , ๋ฐ์คํฌํ ์ฑ์ ๋ ํ๋ถํ ๊ธฐ๋ฅ์ ์ํด ๋ ๋ง์ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์จ๋ค.
- ์คํฌํฐํ์ด: ํด๋ํฐ์ด๋ ํ๋ธ๋ฆฟ์ด๋ ์ค๋งํธ ์คํผ์ปค๋ , ์คํฌํฐํ์ด์ BFF๋ ๊ฐ ๋๋ฐ์ด์ค์ ์ต์ ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํ์ฌ ๋น ๋ฅด๊ณ ๋งค๋๋ฌ์ด ์์ ๊ฒฝํ์ ๋ณด์ฅ
๊ฒฐ๋ก : BFF๋ ์๋ฒฝํ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณต!
๊ฐ๋ฐ์๋ค์ด ๊ฐ ์ฌ์ฉ์ ์ธํฐํ์ด์ค์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ ํํ ์ ๊ณตํ๋๋ก ๋์์ค
๋ณต์ก์ฑ์ ๋ํ ์ ์์ง๋ง ์ฑ๋ฅ ๊ฐ์ ๊ณผ ์ ์ฐ์ฑ์ ๊ทธ๋งํผ์ ๊ฐ์น๊ฐ ์์.
์น ์ฑ, ๋ชจ๋ฐ์ผ ์ฑ, IoT ๋๋ฐ์ด์ค๋ก ์๋น์ค๋ฅผ ํ์ฅํ๋ค๋ฉด BFF ๋ฅผ ๊ณ ๋ คํด๋ณผ ์ ์๋ค.
'note' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
MLOps 01: Data testing, why, what and how (0) | 2024.11.14 |
---|---|
virtualbox ubuntu 22.04์ elastic search ์ค์น ํ ์๊ฒฉ ์์ฒญ ํ ์คํธ (0) | 2024.10.10 |
Spark๋ฅผ ์ฌ์ฉํ Config-Driven ๋ฐ์ดํฐ ํ์คํ ํ๋ ์์ํฌ (๋ฒ์ญ) (0) | 2024.09.29 |
Docker ๋น๋ ์๊ฐ์ 40% ๋จ์ถํ ๋ฐฉ๋ฒ (๋ฒ์ญ) (0) | 2024.05.01 |
[LangChain] LangChain์ ํ์ฉํ ๋ฌธ์ ๊ธฐ๋ฐ ์ฑ๋ด ๋ง๋ค๊ธฐ (0) | 2024.03.20 |