
BFF : Backend for Frontend
๋ง์ดํฌ๋ก ์๋น์ค ์ํคํ ์ณ(MSA)์ ํจํด ์ค ํ๋!
์ต๊ทผ์๋ ๋ค์ํ ๋ชจ๋ฐ์ผ ๊ธฐ๊ธฐ๊ฐ ๋ง์์ง๋ฉด์ ๋ค์ํ ํด๋ผ์ด์ธํธ(์น ์ฌ์ดํธ, ๋ชจ๋ฐ์ผ ์ดํ๋ฆฌ์ผ์ด์ , ์ค๋งํธ ๊ธฐ๊ธฐ ๋ฑ)๋ค์ด ์กด์ฌํ๊ณ ์๋ค. ํด๋ผ์ด์ธํธ๋ค์ด ์๊ตฌํ๋ API๊ฐ ๋ค ๊ฐ๋ค๋ฉด ๊ณ ๋ฏผ์ด ์์๊ฒ ์ง๋ง, ํด๋ผ์ด์ธํธ๋ง๋ค ์๊ตฌํ๋ API๊ฐ ๋ง์์ ธ์ ๊ฐ๋ณ๋ก ๊ด๋ฆฌํ๊ธฐ๋ ํ๋ค์ด์ก๋ค.
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ด BFF(Backend for Frontend) ํจํด์ผ๋ก, API Gateway์ ๊ฐ์ ์ง์ ์ ์ ํ๋๋ก ๋์ง ์๊ณ ํ๋ก ํธ์๋ ์ ํ์ ๋ฐ๋ผ ๊ฐ๊ฐ ๋๋ ํจํด์ด๋ค. ํ๋ก ํธ์๋๋ฅผ ์ํ ๋ฐฑ์๋๋ผ๋ ์๋ฏธ๋ก BFF๋ผ๊ณ ๋ถ๋ฅธ๋ค.
์ด๊ฑธ ์ฌ์ฉํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์์ด? ๐
๋ฐฑ์๋๊ฐ ํ๋์ผ ๋,
์ ์ ์ ์ ์ฒด ํ๋กํ ์ธ๋ถ ์ ๋ณด๋ฅผ ๋ฐํํ๋ ๋ฐฑ์๋ ์๋น์ค๊ฐ ์๊ณ , ๋ค๋ฅธ ์์ ์ ๋ณด๋ฅผ ํ์ํ 3๊ฐ์ ํด๋ผ์ด์ธํธ๊ฐ ์๋ค๊ณ ๊ฐ์ ํด๋ณด์. ์น์์๋ ์ด๋ฆ, ์๋
์์ผ, ์ฃผ์, ์ ํ๋ฒํธ, ์ด๋ฉ์ผ ์ ๋ณด๋ฅผ ๋ฐ๊ธธ ์ํ๊ณ ๋ชจ๋ฐ์ผ์์๋ ์ด๋ฆ, ์๋
์์ผ, ์ ํ๋ฒํธ ์ ๋ณด์ ์ค๋งํธ ๊ธฐ๊ธฐ์์๋ ์ด๋ฆ๋ง ๋ฐ๊ธธ ์ํ๊ณ ์๋ค. ๊ฐ ํด๋ผ์ด์ธํธ๋ค์ด ์๊ตฌํ๋ API์ ์๊ณผ ๋ด์ฉ์ด ์กฐ๊ธ์ฉ ๋ค๋ฅด๋ค.
๊ทธ๋ ์ง๋ง ๋ชจ๋ ํด๋ผ์ด์ธํธ๊ฐ ํ๋์ ๋ฐฑ์๋ ์๋น์ค์ ์์กดํ๊ณ ์๊ธฐ ๋๋ฌธ์,
๋ง์ฝ์ ์ด ์ค ํ๋์ ํด๋ผ์ด์ธํธ๋ฅผ ๋ค๋ฅธ ๊ฑธ๋ก ๋ณ๊ฒฝํ๊ธฐ๋ก ํ๋ค๋ฉด ๋ ๋ค๋ฅธ ํด๋ผ์ด์ธํธ์ ํผ๋์ ์ค ์๋ ์๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ BFF ํจํด!
๊ฐ ํด๋ผ์ด์ธํธ๋ง๋ค ์๊ตฌ์ฌํญ์ ์ถฉ์กฑํ ์ ์๋ ๋ฐฑ์๋ ์๋น์ค๋ฅผ ๋ฐ๋ก ๋๊ณ , ๊ณตํต๋๋ API ๋ชจ๋๋ง ์ ์ฒด ๋ฐฑ์๋ ์๋น์ค์์ ๊ฐ์ ธ๋ค ์ฐ๋ ํจํด์ด๋ค. ํด๋ผ์ด์ธํธ์์ ์ฌ๋ฌ ์๋ํฌ์ธํธ๋ฅผ ๋์์ ํธ์ถํ๋ ๋์ ํ์ํ ๋ชจ๋ ๋ฆฌ์์ค๋ฅผ ๋จ์ผ ์๋ํฌ์ธํธ๋ก ์์ฒญํ ์ ์๋ค.
BFF ํจํด์ ์ฅ์ ๐
- ํด๋ผ์ด์ธํธ๋น ํ๋์ ๋ฐฑ์๋ ์๋น์ค๋ฅผ ๋ง๋ค๊ฒ ๋๋๊น, ์๋น์ค์ ๋์๊ณผ ๊ธฐ๋ฅ์ ๋ง๋ ์๊ตฌ์ฌํญ์ ์ ์์ฉํ ์ ์๋ค.
- ๋ค๋ฅธ ํด๋ผ์ด์ธํธ ํ๊ฒฝ์ ์ํฅ์ ์ค ์ผ๋ ค๊ฐ ์๋ค.
- ๋ฒ์ฉ์ ์ธ ๋ฐฑ์๋ ์๋น์ค๋ณด๋ค ๋ ์๊ณ , ๋ ๋ณต์กํ๊ณ , ๋ ๋น ๋ฅธ ์๋น์ค๋ฅผ ์ ๊ณตํ ์ ์๋ค.
- ์ผ์ ๋ฐ ์์ ์ฐ์ ์์, ๊ธฐ๋ฅ ํตํฉ, ์ด์ ๋ฑ์ ์์ด ์ ์ฐํ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ๋ค.
BFF ํจํด์ ๋จ์ โน๏ธ
- ๊ด๋ฆฌํด์ผํ๋ ๋ฐฑ์๋ ์๋น์ค ์๊ฐ ์ฆ๊ฐํ๋ค.
- ์ฌ๋ฌ ํด๋ผ์ด์ธํธ๊ฐ ๋์ผํ ์์ฒญ์ ์ํํ๋ ๊ฒฝ์ฐ, ๋จ์ผ ๋ฐฑ์๋ ์๋น์ค๋ก ์ถฉ๋ถํ์ง BFF ๊ตฌํ์ด ์ ๋ง ํ์ํ์ง ์ถฉ๋ถํ ๊ณ ๋ ค๊ฐ ํ์ํ๋ค.
- ํด๋น ํจํด์ ๊ตฌํํ ๋ ์๋น์ค ๊ฐ์ ์ฝ๋๊ฐ ์ค๋ณต๋ ๊ฐ๋ฅ์ฑ์ด ๋๋ค.
- ํจํด์ ๊ตฌํํ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ๊ณ ๋ คํด์ผ ํ๋ค.
โจ ์ ๋ฆฌ
๋ง์ดํฌ๋ก ์๋น์ค๋ก ์ ํ์ด ์ด๋ฃจ์ด์ง๊ณ ์๋ ์์ฆ, BFF ํจํด์ ์์ฉ ๊ฐ๋ฅ์ฑ์ด ๋ฌด๊ถ๋ฌด์งํ ๊ฒ ๊ฐ๋ค!