ํ๋ฌํฐ Bloc์ ์ค๋ฌด์ ์ด๋ป๊ฒ ์ฐ๋๊ณ ์?
์ด ๊ฐ์์์ ํ์ธํด๋ณด์ธ์! ๐ค
๋จ์ ์ ํธ์ฑ ์ฑ์ ๋ง๋ค ์ ์๋๋ฐ...
๋ค์ํ ๊ธฐ๋ฅ์ด ํฌํจ๋ ๊ท๋ชจ๊ฐ ์๋ ์๋น์ค ์ฑ์ ์ด๋ป๊ฒ ๋ง๋ค ์ ์์๊น ๊ณ ๋ฏผํ๊ณ ๊ณ์ ๊ฐ์?
๋จ์ ๋ฐ๋ผํ๊ธฐ์ ํด๋ก ์ฝ๋ฉ NO! Flutter Bloc์ ํตํ ์ํ๊ด๋ฆฌ
Naver Book API๋ฅผ ํ์ฉํ ์ฑ
๋ฆฌ๋ทฐ ์ฑ ๋ง๋ค๊ธฐ!
์ด๋ฒ ๊ฐ์๋?
- ์ค๋ฌด์์ ์ฌ์ฉํ ์ ์๋ ๋ค์ํ ๊ธฐ๋ฅ๋ค์ ๋ด์ ํจ๊ป ๊ฐ๋ฐํ๋ฉฐ ํ์ตํ ์ ์๋๋ก ๋ง๋ค์์ต๋๋ค.
- ๋จ์ํ ์ฝ๋ ์
๋ ฅํ๊ณ ๋ฐ๋ผํ๋ ๋ฐฉ์์ด ์๋ ๊ตฌ์กฐ ์ค๋ช
๋ฐ flow ๋ฑ์ ์ค๋ช
ํ์ฌ ์ฑ์ ๋ง๋ค์ด๊ฐ๋ฉด์ ์๊ธธ ์ ์๋ ๊ถ๊ธํ ์ฌํญ๋ค์ ๋ค๋ค์ต๋๋ค.
- Naver open API๋ฅผ ์ ์ฒญํ์ฌ ํ์ฉํ๋ ๋ฐฉ๋ฒ๊ณผ ํ์ด์ด๋ฒ ์ด์ค๋ฅผ ํ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ์ฆ์์คํ
๋ฐ ํ์ผ ์
๋ก๋ ๋ฑ ์ค์ ์์ ํ์ฉํ ์ ์๋ ๊ธฐ๋ฅ๋ค์ ํ์ตํ ์ ์๋๋ก ์ ๋ฆฌ๋์์ต๋๋ค.
ํ์ต ๋ด์ฉ ๐
1. ํ๋ก์ ํธ ์ธํ
- ํ๋ก์ ํธ ์์ฑ ๋ฐ Github ์ฐ๋
- ์ด๊ธฐ ํ๋ฌํฐ ํ๋ก์ ํธ ์์กด์ฑ
- ๊ธฐ๋ณธ์ ํ๋ก์ ํธ ํ๋ ์ ์ธํ
- ํด๋ ๊ตฌ์กฐ ์ค๋ช
- ์ฑ ์คํ Flow ์ค๋ช
- ๊ธฐ๋ณธ route ์ค์
2. ์ธ๋ถ ์ฐ๋
- Naver Open API ์ฑ
api ์ ์ฒญ ๋ฐ Post Man์ ํ์ฉ api ์ฌ์ฉ
- ํ์ด์ด๋ฒ ์ด์ค ํ๋ก์ ํธ ์ฐ๋ ๋ฐ ์ค์
- Naver Open API ์ ํ์ด์ด๋ฒ ์ด์ค ๋ฐ์ดํฐ flow ์ค๋ช
- Dio๋ฅผ ํตํ Naver Open API ์ธํ
3. Splash ํ์ด์ง / ์ฑ ์๊ฐ ํ์ด์ง
- ์ฑ ์คํ ์ ํญ์ ๋ง์ฃผํ๋ ํ์ด์ง ๋ฐ ์ฑ ์ต์ด ์คํ ์ ์ฑ์ ์๊ฐํ๋ ํ์ด์ง๋ฅผ ๊ฐ๋จํ ๋ง๋ค์ด๋ด
๋๋ค.
4. SNS ๋ก๊ทธ์ธ ๋ฐ ํ์๊ฐ์
- ํ์ด์ด๋ฒ ์ด์ค SNS ๋ก๊ทธ์ธ Google๊ณผ Apple์ ์ค์ ํด๋ด
๋๋ค.
- GoRouter๋ฅผ ํตํด ๋ก๊ทธ์ธ ๋ฐ ํ์๊ฐ์
์ํ์ ๋ฐ๋ผ ์๋ Routingํ๋ ๋ฐฉ๋ฒ์ ํ์ตํฉ๋๋ค.
- ๊ฐ๋จํ ์ ๋ณด๋ก ํ์๊ฐ์
์ ์งํํ์ง๋ง ํ๋กํ ์ด๋ฏธ์ง๋ ์
๋ ฅ๋ฐ์ ํ์ผ์
๋ก๋ํ๋ ๋ฐฉ๋ฒ๋ ์์๋ด
๋๋ค.
5. ๊ฒ์
- ๋ค์ด๋ฒ ์ฑ
API๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ ํ๋ฉด์ ๋ง๋ค์ด์ค๋๋ค.
- ๋ค์ด๋ฒ Open API์ Pagination์ ์ดํด๋ณด๊ณ ํ์ด์ง ์ฒ๋ฆฌ๋ฅผ ํ๋ ๋ฐฉ๋ฒ์ ํ์ตํฉ๋๋ค.
6. ์ฑ
์์ธํ์ด์ง ๋ฐ ๋ฆฌ๋ทฐ ์์ฑ ํ์ด์ง
- ๋ค์ด๋ฒ ์ฑ
API๋ฅผ ๋ฐํ์ผ๋ก ์์ธ ํ์ด์ง๋ฅผ ๋ง๋ค์ด๋ด
๋๋ค.
- ๋ฆฌ๋ทฐ ์ ๋ณด๊ฐ ์์ ๋์ ์์ ๋์ ํ๋ฉด์ ๊ตฌ์ฑํ ๋ค์, ๋ฆฌ๋ทฐ ์์ฑ ๊ธฐ๋ฅ๊น์ง ์ ์ฉํด๋ด
๋๋ค.
7. ๋ฆฌ๋ทฐ ์์ธํ์ด์ง
- ํ์ ๋ฆฌ๋ทฐ๋ฅผ ํ์ธํ ์ ์๋ ํ์ด์ง๋ฅผ ๋ง๋ค์ด๋ด
๋๋ค.
- ๋ค๋ฅธ ์ฌ๋์ ๊ณต๊ฐ์ ์ป์ ์ ์๋๋ก ์ข์์ ๊ธฐ๋ฅ์ ์ ์ฉํด๋ด
๋๋ค.
8. ํ์ ํ์ด์ง
- ํ์ ํ์ด์ง์์ ์ด๋ค ์ํ๋ค์ ๋ฆฌ๋ทฐํ๋์ง ํ์ธํ ์ ์๋๋ก ๋ง๋ค์ด๋ด
๋๋ค.
- ๋ฆฌ๋ทฐ ์ ๋ณด๊ฐ ๋ง์์ ๋๋ ํ์์ ์ ๋ณด๋ฅผ ์์ผ๋ก๋ ํ์ธํ ์ ์๋๋ก ์ฆ๊ฒจ์ฐพ๊ธฐ ๊ธฐ๋ฅ์ ํตํด ํ๋ก์ฐ/ํ๋ก์ ๊ธฐ๋ฅ์ ๊ตฌํํด๋ด
๋๋ค.
9. ํ ํ๋ฉด
- ์ต์ ๋ฆฌ๋ทฐ์ด ์ ๋ณด / ์ธ๊ธฐ์๋ ๋ฆฌ๋ทฐ์ด Top 10 ์ ๋ณด๋ก ํ ํ๋ฉด์ ๊ตฌ์ฑํ๊ณ ๋ง๋ค์ด๋ด
๋๋ค.
- PageView๋ฅผ ํตํด ๊ฐ๋ก๋ก ๋์ดํ๋ ์์ ฏ์ ๋ง๋ค์ด๋ด
๋๋ค.
๋ฒ์ธํธ - 1ํธ
- ๋ฒ์ธํธ์ผ๋ก ์ฆ๊ฒจ์ฐพ๋ ๋ฆฌ๋ทฐ์ด๋ค์ ์์๋ง์ ํ์ธํ ์ ์๋ ํ์ด์ง๋ฅผ ๋ง๋ค์ด๋ณผ ๊ฒ์
๋๋ค.
- ํํ๋ฉด์์ ์ต์ ๋ฆฌ๋ทฐ TOP10๋ง ๋ณผ ์ ์๋ ๋ถ๋ถ์ ๋๋ณด๊ธฐ ๋ฉ๋ด๋ฅผ ํตํด ๋ ๋ง์ ๋ฆฌ๋ทฐ๋ฅผ ์ต์ ์์๋ก ํ์ธํ ์ ์๋๋ก ๊ตฌ์ฑ์ ํฉ๋๋ค.
๋ฒ์ธํธ - 2ํธ
- ๋ฆฌ๋ทฐ์ด ํ์ด์ง์์ ๋ง์ดํ์ด์ง๋ก ์ ๊ทผํ ๋ ์ฆ๊ฒจ์ฐพ๊ธฐ ๋ฉ๋ด ๋์ ์ค์ ๋ฉ๋ด๋ฅผ ํตํด ๋๋ค์, ํ์ค ์๊ฐ, ํ๋กํ ์ด๋ฏธ์ง๋ฅผ ๋ณ๊ฒฝํ ์ ์๋๋ก ๊ฐ์ ํฉ๋๋ค.
- ๋ก๊ทธ์์ ๋ฒํผ์ ํตํด ๋ค๋ฅธ ๊ณ์ ์ผ๋ก๋ ์ ๊ทผํ ์ ์๋๋ก ๊ฐ์ ํฉ๋๋ค.
์์ ์ง๋ฌธ Q&A ๐ฌ
Q. ํ๋ฌํฐ ์ต์ ๋ฒ์ ์ด ํธํ๋๋์?
๊ฐ์ ์ค๋น ์์ ์์ ํ๋ฌํฐ ์ต์ ๋ฒ์ 3.10.0 ๋ฒ์ ์ผ๋ก ์์
๋์์ต๋๋ค. ๋ฉ์ด์ ๋ฒ์ ์ด ๋ฐ๋์ง ์๋ ํ ํธํ์ ๋ฌธ์ ๋ ์์ ๊ฒ์
๋๋ค.
Q. ํ๋ฌํฐ ์
๋ฌธ์๋ ์ดํดํ ์ ์์๊น์?
ํ๋ก์ ํธ ์์ฑ๋ถํฐ ํด๋ ๊ตฌ์ฑ, ํ๋ฉด ๊ตฌ์ฑํ๋ ๊ธฐ์ด์ ์ธ ๋ถ๋ถ๋ ๋ค๋ฃจ๊ธด ํ์ง๋ง ์ฑ ๋ง๋ค๊ธฐ์ ํต์ฌ์ด ๋๋ ์ํ๊ด๋ฆฌ ๋ฐ API ํ์ฉ ๋ฑ์ ๋ค๋ฃจ๊ธฐ ๋๋ฌธ์ ๋ค์ ์ด๋ ต๊ฒ ๋๊ปด์ง์ค ์๋ ์์ต๋๋ค. ํ์ง๋ง ์
๋ฌธ์๋ผ๋ [Bloc ๋ง์คํฐ ์ฝ์ค ๊ธฐ์ด๋ถํฐ ์์ฉ๊น์ง]์ ์์์ ํตํด ํ์ต์ ๋ง์น์
จ๋ค๋ฉด ์ถฉ๋ถํ ์ด ๊ฐ์๋ฅผ ํตํด ์ค๋ ฅ์ ์์น์ํฌ ์ ์์ ๊ฒ์
๋๋ค. ๋จ์ง ์
๋ฌธ์๋ผ๋ฉด ํ ๋ฒ ์์ ๋ณด๋ ๊ฒ๋ง์ผ๋ก๋ ๋ด์ฉ์ด ๋ง์คํฐ๋์ง๋ ์์ผ์ค ํ
๋ ๋ฐ๋ณตํด์ ํ์ตํ์๋ ๊ฒ์ ์ถ์ฒ๋๋ฆฝ๋๋ค.
Q. ์ํ ๊ด๋ฆฌ๋ฅผ Bloc์ผ๋ก ์ ํํ์ ์ด์ ๊ฐ ์์๊น์?
์ฑ ๊ฐ๋ฐ์ ์์ด์ ์ํ๊ด๋ฆฌ๋ ํ์์
๋๋ค. ์ํ๊ด๋ฆฌ๋ฅผ ๋์์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋ง์ด ์กด์ฌํฉ๋๋ค. ์ด๋ค ๊ฑธ ์ฌ์ฉํ๋๋ผ๋ ์ฑ์ ๊ฐ๋ฐํ ์ ์์ต๋๋ค. ํ์ง๋ง Bloc์ ํตํด ๊ฐ์๋ฅผ ๋ง๋ ์ด์ ๋ ๊ตญ๋ด/ํด์ธ ์ปค๋ฎค๋ํฐ์์ ๋๊ท๋ชจ ํ๋ก์ ํธ์ ๊ฒฝ์ฐ ๊ฐ์ฅ ์ ํฉํ ์ํ๊ด๋ฆฌ๋ก ๋จ์ฐ Bloc์ ์ ํํ๊ณ ์๊ธฐ ๋๋ฌธ์
๋๋ค. ์ ์ญ์ Bloc์ผ๋ก๋, Getx์ผ๋ก๋ ํ๋ก์ ํธ๋ฅผ ์งํํด ๋ณด์์ง๋ง ์ ์ง๋ณด์ ์ธก๋ฉด์์ Bloc์ ์ฅ์ ์ด ๋ง์์ต๋๋ค. ํ์ฌ ์ด๋ฒ ๊ฐ์์์๋ Bloc์ ์ ํํ์๊ณ ๋ฌด๋ฃ๊ฐ์ [Bloc ๋ง์คํฐ ์ฝ์ค ๊ธฐ์ด๋ถํฐ ์์ฉ๊น์ง]๋ Bloc ๊ธฐ๋ฐ์ผ๋ก ์ ์ํ์์ต๋๋ค. Bloc์ ์ค์ ์ผ๋ก ์์ฉํด๋ณด๋ฉด์ ์ง์ Bloc์ ํ์ฉํ๊ฒ ํ์ฌ ๋์ฑ ํ์ต์ ๋์์ด ๋๊ณ ์ ์ ํํ ์ด์ ๋ ์์ต๋๋ค.
Q. Bloc์ ์ ๋ชฐ๋ผ๋ ์ด๋ฒ ๊ฐ์๋ฅผ ํตํด ๋ฐฐ์ธ ์ ์๋์?
์ด๋ฒ ๊ฐ์๋ Bloc ์ฌ์ฉ์ ์ต์ํด์ง๊ธฐ ์ํ ๋ชฉ์ ์ ํ๋ก์ ํธ์
๋๋ค. ํ์ฌ Bloc์ ๋ํ ์ค๋ช
์ ์๋ตํฉ๋๋ค. ๋ฐ๋์ Bloc์ ํ์ตํ์๊ณ ์์ฒญํ๋ ๊ฒ์ ๊ถ์ฅ๋๋ฆฌ๋ฉฐ, ์ ๊ฐ ์คํํ ๋ฌด๋ฃ๊ฐ์ [Bloc ๋ง์คํฐ ์ฝ์ค ๊ธฐ์ด๋ถํฐ ์์ฉ๊น์ง]๋ฅผ ๋ฐํ์ผ๋ก ํ์ตํ์๋ ๊ฒ์ ์ถ์ฒ๋๋ฆฝ๋๋ค.
Q. ๋ฒ์ธํธ์ ๋ฌด์์ธ๊ฐ์?
๋ฒ์ธํธ์ ๊ธฐ์กด ๊ณํํ๋ ๊ธฐ๋ฅ์ด ์๋์์ง๋ง ๊ฐ์๋ฅผ ์ค๋นํ๋ฉด์ ๋ฒ์ธํธ์ ๊ธฐ๋ฅ๊น์ง ํฌํจํ์ฌ ๊ณต๋ถํ๋ฉด ์๊ฐํ์๋ ๋ถ๋ค์๊ฒ ๋์์ด ๋ ๊ฒ ๊ฐ์ ์ถ๊ฐํ ์์๋ค์
๋๋ค. ์ฆ, ๋ฒ์ธํธ์ ์ถํ ์
๋ฐ์ดํธ๋๋ ์์
์์์ด ๋๊ฒ ์ต๋๋ค. ์ด ๊ฐ์๋ฅผ ์๊ฐํ์๋ฉด ์ถ๊ฐ ๋น์ฉ ์์ด ์
๋ฐ์ดํธ๋๋ ์์
์ญ์ ํ์ตํ์ค ์ ์์ต๋๋ค.
Q. ์ฌ์ฉ๋ ์์ค๋ ์ ๊ณต๋๋์?
์ฑ์ ๋ง๋ค๊ธฐ ์ํด ๋์์ธ ๋ฆฌ์์ค ๋ฐ ์์ฑ๋ ํ์์ค ์ญ์ ์ ๊ณต๋ฉ๋๋ค. ํ์์ค๋ง์ผ๋ก ์์ค ๋ถ์ํ์
๋ ๋์์ด ๋๊ฒ ์ง๋ง, ์๋ฌด๋๋ ์ฒ์๋ถํฐ ํจ๊ป ๋ง๋ค์ด๊ฐ๋ฉด์ ํ์ตํ๋ฉด ์ข ๋ ์ดํด๊ฐ ๋ ๊ฒ์
๋๋ค.