TCP/IP ๊ณ์ธต ์ค Application Layer์ ๋ํ์ฌ ์์๋ณด๊ณ , ํด๋น ๊ณ์ธต์ ์ฃผ์ ๊ธฐ์ ๊ณผ ํ๋กํ ์ฝ๋ค์ ๋ค๋ฃน๋๋ค.
์ปดํจํฐ ๋คํธ์ํฌ๋ฅผ ๊ฐ๊ดํ๊ณ , ์ฃผ์ ์ฉ์ด ๋ฐ ๊ฐ๋ ์ ์ดํด๋ด ๋๋ค.
๋ชจ๋๋์ ๊ฐ๋ ์ ๊ฐ๋ณ๊ฒ ๊ฒํฅ์๋ด ๋๋ค. ๊ทธ๋ฐ๋ฐ ์ ๋ชฉ์ ๊ฐ๋ณ์ง ์์
Webpack Plugin์ Tapable Hook์ ๊ทผ๊ฐ์ผ๋ก ํ์ฌ ๋์ํฉ๋๋ค. ๋ฌผ๋ก ๊ณต์ ๋ฌธ์์ Tapable์ ๋ํ ์ค๋ช ์ด ์๊ธด ํ๋ฐ ๋ง์ด์ฃ ...
React ์ฑ์์ ์ฌ์ฉ๋๋ ๋ค์ํ ์ ํ์ ์ํ๋ฅผ ์์๋ณด๊ณ , ์ด๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ ์ดํ๊ธฐ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ์ดํด๋ด ๋๋ค.
์ด์ ๋ ๊ฐ๊ฒฉ์ ์ด์ ๋ ๋ฌด์ ์ ํค๋ณด๋๋ฉด ๊ฐํ์๋ฐ?
VPN์ ๋ ๋ด๊ณ ์ฌ์ฉํ์ ๋ค๊ณ ์?
์๋ฐ์คํฌ๋ฆฝํธ์์ ๋์์ฑ์ด๋? ๊ทธ๋ฆฌ๊ณ React Concurrent ๋ชจ๋๋?
GraphQL๊ณผ Apollo๋ฅผ `react-router 4`์ ํจ๊ป ์ฌ์ฉํ์ฌ ํ์ด์ง ์ด๋์ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์๋๋ค. ๊ฐ ๋ผ์ฐํ ์ `Link`๋ก ํํ๋ฉ๋๋ค.
Apollo ํด๋ผ์ด์ธํธ๋ฅผ ์ฌ์ฉํ์ฌ GraphQL ๋ฎคํ ์ด์ ์ ๋ค๋ฃจ์ด๋ด ๋๋ค. Apollo์ `<Mutation />` ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฎคํ ์ด์ ์ ์ ์ํ๊ณ ์ ์กํฉ๋๋ค.
์๋ฒ๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ค๊ณ ๋ฐ์ดํฐ๋ฅผ React ์ปดํฌ๋ํธ์ ํ์ํ๋ ๋ฐฉ๋ฒ์ ์ตํ๋๋ค. Apollo ํด๋ผ์ด์ธํธ๋ฅผ ์ฌ์ฉํ์ฌ GraphQL ์ฟผ๋ฆฌ๋ฅผ ๋ค๋ฃน๋๋ค.
Hackernews ํด๋ก ํ๋ก์ ํธ๋ฅผ ์์ํฉ๋๋ค. `create-react-app`์ ์ฌ์ฉํ์ฌ ํ๋ก ํธ์๋๋ฅผ ์ ์ํ๊ณ , Prisma๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฑ์๋๋ฅผ ์ ์ํฉ๋๋ค.
Apollo Client๋ ํ๋ก ํธ์๋์์ GraphQL์ ์์ฃผ ๊ฐ๋จํ๊ฒ ์์ํ ์ ์๋๋ก ๋์์ฃผ๋ ์ ์ฐํ๋ฉด์๋ ๊ฐ๋ ฅํ๊ณ ์ง๊ด์ ์ธ API๋ฅผ ์ ๊ณตํฉ๋๋ค.
์ด์ ์ฌ๋ฌ๋ถ์ Node.js๋ฅผ ์ฌ์ฉํ์ฌ GraphQL ์๋ฒ๋ฅผ ๋ง๋๋ ๋ฒ, ํํฐ๋ง๊ณผ ์ธ์ฆ, ํ์ด์ง๋ค์ด์ ๊ณผ ๊ตฌ๋ ์ ๊ตฌํํ๋ ๋ฒ ์คํธ ํ๋ํฐ์ค๋ฅผ ๋ชจ๋ ๋ฐฐ์ ์ต๋๋ค.
Node.js, Express, Prisma๋ฅผ ์ฌ์ฉํ์ฌ GraphQL API์ ํํฐ๋ง ๋ฐ ํ์ด์ง๋ค์ด์ ๊ธฐ๋ฅ์ ์ถ๊ฐํด๋ด ๋๋ค.
Node.js, Express, ๊ทธ๋ฆฌ๊ณ Prisma๋ฅผ ์ฌ์ฉํ์ฌ ์ดํ๋ฆฌ์ผ์ด์ ์ ์ค์๊ฐ ๊ธฐ๋ฅ์ ๋ํ๋ ค๋ฉด GraphQL ๊ตฌ๋ ์ ์ด๋ป๊ฒ ๊ตฌํํด์ผ ํ๋์ง ๋ฐฐ์๋๋ค.
Node.js, Express, ๊ทธ๋ฆฌ๊ณ Prisma๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์ฆ๊ณผ ๊ถํ ๋ถ์ฌ๋ฅผ ๊ตฌํํ๋ ์ฐ์ ์ฌ๋ก๋ฅผ ๋ฐฐ์๋๋ค.
GraphQL ์๋ฒ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ถ๊ฐํ๋ ๋ฒ์ ๋ฐฐ์๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ Prisma๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฒ์ ์ฐ๊ฒฐ๋ฉ๋๋ค.
GraphQL ์๋ฒ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ถ๊ฐํ๋ ๋ฒ์ ๋ฐฐ์๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ Prisma๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฒ์ ์ฐ๊ฒฐ๋ฉ๋๋ค.