harry
๐ฒ ์นด๋๊ฒ์ ์ปค๋ฎค๋ํฐ ๊ฐ๋ฐ๊ธฐ ๋ณธ๋ฌธ
๐ ๊ฐ์
๋น์์ ์ทจ๋ฏธ๋ก ํ๋ ๊ฒ์์ ๊ด๋ จ ์ ๋ณด๋ค์ ์์๋ณด๊ธฐ์ํด ์ปค๋ฎค๋ํฐ ์ฌ์ดํธ๋ค์ ์ข ๋๋ฌ๋ณด๋ค ํ๊ตญ ์ปค๋ฎค๋ํฐ ์ฌ์ดํธ๊ฐ ์๋๊ฑธ ์๊ฒ๋๋ค.
๋ฌผ๋ก ์ด๋ฏธ ๋ง๋ค์ด์ง ํด์ธ ์ฌ์ดํธ๋ฅผ ์ ์ฉํ๊ฒ ์ฌ์ฉํ ์ ์์์ง๋ง ๊ด๊ณ ๊ฐ ๋๋ฌด ๋ง๊ณ , ์ฌ์ดํธ ์๋๊ฐ ๋๋ฌด ๋๋ ค์ ์ด์ฉํ๊ธฐ๊ฐ ๋ถํธํ๋ค.
์ด๋ฐ์ ๋ค๊ณผ ๊ณผ๊ฑฐ์ ํ๋ ๊ฒ์๊ด๋ จ ์นํ๋ก์ ํธ๊ฐ ์ฌ๋ฌ ์ปค๋ฎค๋ํฐ์์ ์์์ ์ผ๋ก ํ๋ณด๋์ด ํผ๋๋ฐฑ์ด๋, ์๊ฒฌ๋ค์ ๋ค์ ์ ์๋๊ฒ์ด ์๊ฐ๋ ๋ด๊ฐ ํ๋ฒ ๊ฐ๋ฐํด๋ณผ๊น ๋ผ๋ ๋ง์์ผ๋ก ์งํํด๋ณด๊ธฐ๋ก ํ๋ค.
โ ๋ญ ๊ฐ๋ฐํ๋
๋จผ์ ์ฌ์ดํธ๋ด์์ ๋ค๋ฃจ๋ ๊ฐ์ฅ ํฐ ์ฃผ์ ์ธ ๋ง๋ธ์ค๋ ์ด๋ผ๋ ์นด๋๊ฒ์์์๋ 16์ฅ์ ๊ฐ๊ธฐ ๋ค๋ฅธ ์นด๋๋ฅผ ํ๋์ ๋ฑ(์นด๋๋ญ์น)์ผ๋ก ๊ตฌ์ฑํด ๊ฒฝ์ํ์ฌ ์น๋ถํ๋ ๊ฒ์์ด๋ค.
์ฝ๊ฒ ๋น์ ํ์๋ฉด 16๋ง๋ฆฌ์ ํฌ์ผ๋ชฌ๋ค์ ์นด๋์ ํํ๋ก ์ด์ฉํด ์ธ์ฐ๋ ๊ฒ์์ด๋ผ๊ณ ์ดํดํ๋ฉด ๋ ๊ฒ๊ฐ๋ค.
์ด๋ฌํ ์นด๋ ๊ฒ์์ ํน์ง์ผ๋ก๋ ์ด๋ค 16์ฅ์ ์นด๋๋ฅผ ์กฐํฉ ํ๋๋์ ๋ฐ๋ผ ์ ๋ต์ ๋ค์์ฑ์ ๋๋ฆฌ๋๋ฐ
๊ฒฝ์์ด ์ด๋ฃจ์ด์ง๋ ๋งํผ ์ด๋ค ๋ฑ(์กฐํฉ)์ด ๊ฐ์ฅ ํจ๊ณผ์ ์ธ์ง, ๊ฐ์ฅ ํจ๊ณผ์ ์ธ๋ฑ์ ์ด๋ป๊ฒ ๋ํญํ๋์ง๊ฐ ๋์น์ธ์์ฒ๋ผ ์ด๋ฃจ์ด์ง๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์งง๊ฒ๋ ๋ฉฐ์น ๋ด์ ๊ฐ์ฅ ๊ฐํ๋ฑ์ด ๋ฐ๋๊ณ ์ด๋ฐ ๋ํฅ๋ค์ ์ง์์ ์ผ๋ก ์ฒดํฌํด์ผ ์กฐ๊ธ์ด๋ผ๋ ๋ ์ ๋ฆฌํ์ ์ด ์นด๋๊ฒ์์ ํน์ง์ด๋ค.
์ด๋ฌํ ๋ฑ
์ ์ค์์ฑ ๋๋ฌธ์ ์์ ์ ๋ฑ์ ์ฝ๊ฒ ๊ณต์ ํ ์ ์๋๋ก ๋ฑ์ฝ๋
๋ผ๋ ์ผ์ ํ ๋ฌธ์์ด์ ์
๋ ฅํ๋ฉด ๋ค๋ฅธ์ฌ๋์ ๋ฑ์ ๋ณต์ฌํด์ฌ ์ ์๋ ๊ธฐ๋ฅ๋ ๊ฒ์๋ด์ ๋ง๋ จ๋์ด์๋ค.
ํ์ง๋ง ๊ณต์ ํ๋ ค๋ ์ฌ๋์ด ๋ฑ์ ๊ณต์ ํ ๋ ๋ฑ์ฝ๋๋ฅผ ๊ณต์ ํ๋๊ฒ์ด ์๋๋ผ ์คํฌ๋ฆฐ์ท์ ์ฐ์ด ์ฌ๋ฆฌ๋๊ฒ์ด ๋ ํธํ๊ธฐ ๋๋ฌธ์ ๋๋ถ๋ถ์ ์ ์ ๋ค์ ์ด๋ฐ ๋ฐฉ๋ฒ์ ์์ฃผ ์ฌ์ฉํ๊ณ
์ด์ฉํ๋ ์ ์ฅ์์ ๋ฑ์ฝ๋๋ฅผ ์ ๋ ฅํ๋๊ฒ์ด ์๋ ์คํฌ๋ฆฐ์ท์ ๋ณด๊ณ 16์ฅ์ ์ผ์ผํ ์ถ๊ฐํด ๋ง๋ค์ด์ผํ๋ค๋ ๋ถํธํจ์ด ์์๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ฌ์ดํธ์ ์ปจํ
์ธ ์์ ์๋์ผ๋ก ๋ฑ์ฝ๋
๋ฅผ generateํ๊ณ ๋ฒํผ์ ํด๋ฆญํ๋ฉด ๋ฐ๋ก ๋ณต์ฌํด ์ฌ ์ ์๋ ๊ธฐ๋ฅ์ ๋ง๋ค์ด ๋ฑ์ ์ข ๋ ํธ๋ฆฌํ๊ฒ ๊ณต์ ํ ์์๋๋ก ํ๋ ๊ธฐ๋ฅ์ ๋ง๋ค์๋ค.
๋๋ฒ์งธ๋ก๋ ๋ฑ
์ ๊ตฌ์ฑ์ ๋ํ ๋ถ๋ถ์ธ๋ฐ ์๋ฌด๋ฆฌ ์ข์ ์นด๋์ ๊ตฌ์ฑ์ด๋ผํด๋ ๋ด๊ฐ ๊ฐ์ง๋ชปํ ์นด๋๊ฐ ํฌํจ๋์ด์๋ค๋ฉด ์ธ๋ชจ์๋ ์ ๋ณด์ ๊ฐ๊น์ ๋ค.
๊ฒ์๋ด์์ ์นด๋๋ฅผ ๊ฐ๋ ๊ณผ์ ์ ํน์ ๋ ๋ฒจ์ ๋๋ฌํ๊ฑฐ๋, ๋๋ค์ผ๋ก ์ป์ด์ง๋ ๋ฐฉ์์ธ๋ฐ ์ด ๋ถ๋ถ์ ๊ฒ์๋ด์์ ํ์ธํ๊ธฐ๊ฐ ๊ต์ฅํ ์ด๋ ค์ ๋ค.
์ด๋ฌํ์ ์ ํด๊ฒฐํ๊ธฐ์ํด ์ฌ์ฉ์์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ ๋ด ์นด๋ ๋ณด์ ํํฉ์ ํ๋์ ํ์ธํ๋ ๊ธฐ๋ฅ์ ๊ฐ๋ฐ์ ์๋ฃํ๊ณ , ๊ทธ๋ก ๋ง๋ค์ ์๋ ๋ฑ๋ค์ ํํฐ๋งํ๋ ๊ธฐ๋ฅ์ ๋ง๋ค๊ณ ์๋ ์ค์ด๋ค.
์ด ๊ณผ์ ์์ ์ฌ์ฉ์์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๊ธฐ ์ํ ๋ฐฉ๋ฒ๋ค์ค ์ฌ๋ฌ๊ฐ์ง ๋ฐฉ๋ฒ๋ค์ ์๊ฐํด๋ดค๋๋ฐ electron ๊ธฐ๋ฐ์ ๊ฐ๋จํ ๋ฐ์คํฌํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค์ด
๋ก๊ทธํ์ผ์ ์ฝ์ด ๊ณ์ ๊ณผ ์ฐ๋ํ๋ ๊ธฐ๋ฅ๋ ๊ฐ์ด ๋ง๋ค์ด ์ ๊ณตํ๋ค.
electron์ ์ฌ์ค ์ ํ ํด๋ณด์ง ์์ ์๊ฐ๋ณด๋ค ์๊ฐ์ด ๋ง์ด ์์๋์๋๋ฐ, ๊ทธ๋๋ ์์ผ๋ฉด ๋๋ฌด ์ข์ ๊ธฐ๋ฅ์ผ๊ฒ๊ฐ์ github์ ์ฌ๋ผ์์๋ ์คํ์์ค๋ค์ ์ฐธ๊ณ ํด๊ฐ๋ฉฐ ๋ง๋ค์์๋ค.
๐งญํ๋ก์ ํธ ์ค๊ณ
๋ฐฑ์๋๋ ๊ธฐ์กด์ ์ฌ์ฉํ๋ express๋ก ์งํํ๋ ค ํ์ง๋ง ๊ฐ๋ฐ ๊ด๋ จ ์ ํ๋ธ๋ฅผ ๋ณด๋ค ์๋ ์์์ ๋ฐ๊ฒฌํ๋ค.
Pocket Base
์ ๊ดํด ์ค๋ช
ํ๋ ์์์ธ๋ฐ, ๊ฐ๋จํ ๋งํด Go๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ง๋ Sqlite๋ฅผ ์ด์ฉํ ๋ฐฑ์๋ ํ๋ซํผ์ด๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ด๋๋ฏผ์ผ๋ก ๊ด๋ฆฌํ ์๋ ์๊ณ ํ ์ด๋ธ์ ํํ์ ๋ฐ๋ผ API๋ ์๋์์ฑํด ์ฃผ๊ธฐ ๋๋ฌธ์ ๊ฝค ํธ๋ฆฌํด๋ณด์ฌ ์ด์ฉํด๋ดค๋ค.
ํ๋ก ํธ์๋๋ Next.js
๋ฅผ ์ด์ฉํ๋๋ฐ pocketbase
์์ ์์ฑ๋ API๋ ์ฝ๋๋ฅผ Next
์ Serverless function
์์ callํ๋ ๋ฐฉ์์ผ๋ก ์ค๊ณํ๋ค.
๊ทธ ์ด์ ๋ ์๋ฌด๋๋ pocketbase๋ฅผ ์ด์ฉํ๋ ์ฝ๋๊ฐ ์๋ ๊ธฐ์กด์ fetch, axios์๋ ์ด์ง์ ์ธ ๊ตฌ์กฐ์๊ณ pocketbase๋ฅผ ์ด์ฉํ๋ ๋ถ๋ถ์ ์ปดํฌ๋ํธ ๊ตฌ์กฐ์์
๋ถ๋ฆฌํ์ฌ ์ ์ง๋ณด์๊ฐ ์ฉ์ดํ๋๋ก ์ํจ์ด์๋ค.
์์ฝํด๋ณด์๋ฉด Serverless function์์ pocketbase๋ฅผ ์ด์ฉํ๊ฒ๋๊ณ SSR
๊ณผ CSR
์์ ์ด์ฉ๋๋ ๋ฐ์ดํฐ fetching ์์
์
serverless function์ ํด๋นํ๋ ๊ฐ๊ฐ์ ์๋ํฌ์ธํธ๋ฅผ ํธ์ถํ๋๋ก ํ๋ค.
์ปดํฌ๋ํธ ํด๋ ๊ตฌ์กฐ๋ ํ์ฌ์์ ๋ค๋ค๋ ํ๋ก์ ํธ๋ ๊ธฐ์กด์ ์งํํ๋ ํ๋ก์ ํธ๋ฅผ atomic ํจํด์ผ๋ก ๋๋ด์๋๋ฐ
Molecules๊ณผ Organism์ ๊ตฌ๋ถ์ด ์ปดํฌ๋ํธ ์์ฑ๋ง๋ค ๊ณ ๋ฏผ๋๋ ์๊ฐ๋ค์ด ๊ต์ฅํ ๋ง์์๋ค.
๋ํ Atom๊ณผ Molecules๋ ์ด๊ฑธ "๊ฐ์ฅ์์ ๋จ์๋ก ๋ด์ผํ๋?" ๋ผ๋ ์๊ฐ๊ณผ "๋๊ฐ ์ด์์ atom๋ค์ด ํฉ์ณ์ ธ ๋ง๋ ์ปดํฌ๋ํธ" ์ธ๋ฐ ์ดํ์ ๋ณ๊ฒฝ๋์ด Organism์ผ๋ก
์ฎ๊ฒจ์ง๋๋ฑ์ ์์ ์ฌํญ์ด ์๊ธด๋ค๋ฉด ์ ์ฒด์ ์ธ ๊ตฌ์กฐ๊ฐ ํํธ๋ฌ์ง๋ ๊ฒฝ์ฐ๊ฐ ์์๊ธฐ ๋๋ฌธ์ ๋ด ๋๋ฆ๋๋ก ๊ธฐ์ค์ ๋ค์ ์ก์ ์งํํด๋ดค๋ค.
๋ฌผ๋ก ํ์ฌ์์ ๋ค๋ฃจ๋ ์ฝ๋์ ๋นํด์ ์์ ๊ท๋ชจ์ ํ๋ก์ ํธ์๋ค๋ ์ ๋ ํด๋ ๊ตฌ์กฐ ์ค๊ณ์ ํฐ ์ํฅ์ ๋ผ์ณค๋ค
๋ด๊ฐ ์ก์ ๊ธฐ์ค์ ์งง๊ฒ ์ค๋ช ํด๋ณด์๋ฉด ๋ค์๊ณผ ๊ฐ์๋ค.
- @atoms : ๊ธฐ์ด์ ์ธ UI ๊ตฌ์ฑ์ ๋จ์
- atoms ๋ ๊ธฐ์กด์ atomic ํจํด์์์ atoms์ ๊ฐ์ ์ญํ
- @molecules : atomic๋ค์ ์งํฉ์ด๋ผ๋ฉด ๋ฌด์กฐ๊ฑด ์ฌ๊ธฐ์ ํด๋น
- ์ฌ์ค์ ๊ธฐ์กด์ Molecules๊ณผ Organism์ ํด๋น ํ๋ ์ปดํฌ๋ํธ๋ค์ ๋ชจ๋ ํฉ์ณ ๊ด๋ฆฌํ๊ธฐ๋ก ํ๋ค.
- @template : Page ๋จ๊ณ ์ด์ ์ ๊ฐ์ฅ ์๋จ์ ์์นํ๋ ๊ตฌ์กฐ๋ก, Page์์ ์ด์ฉ๋๋ ๋ ์ด์์์ ์ ์ธํ๊ณ ๋ ๊ฐ์ฅ ํฌ๊ฒ ๊ตฌ๋ณ๋๋ ๋จ์
- @page : ํ๋์ ํ์ด์ง, next์ pages ๋๋ ํ ๋ฆฌ์ ์์นํ๋ค
์ํ๊ด๋ฆฌ๋ ๊ธฐ์กด์ redux
๋ฅผ ์ด์ฉํ์๋๋ฐ ์ด๋ฒ์๋ recoil
๊ณผ react-query
๋ฅผ ์ด์ฉํ์ฌ Server State์ Client State ๋๋ ๊ด๋ฆฌํ๋ ๋ฐฉ์์ ์ด์ฉํ๋ค.
๊ธฐ์กด ํ๋ก์ ํธ์์ ์ํ๊ด๋ฆฌ๋ฅผ ํ ๋ Client State์ ๋น๋๊ธฐ ์ฒ๋ฆฌ ๋ก์ง์ ๊ดํ ์ฝ๋์ ๊ด๋ฆฌ๋ฅผ ๊ณ ๋ฏผ์ ํ์์ ๋น์ ์ ํ๋ ์ธ๋ฏธ๋๊ฐ ์๊ฐ๋์ ์๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก ์ด ๋ถ๋ถ๋ ๊ต์ฅํ ๋ง์กฑํ๋๋ฐ ์ฐ์ react-query๋ฅผ ์ด์ฉํ๋ hook๋ค์ ๋ฐ๋ก useCardList(), usePostList() ์ฒ๋ผ @query ํด๋์ ๋๋์ด ๋น๋๊ธฐ ์ฒ๋ฆฌ ๋ก์ง์r ๊ด๋ฆฌ ํ ์ ์์์ผ๋ฉฐ, ์ฒ๋ฆฌ ๋ก์ง์ ๊ดํ ์ฝ๋๋ ๊ฐ๊ฒฐํ๊ฒ ์์ฑ ํ ์ ์์๋ค. (์บ์ฑ๋ ๋์๋ฐ๋ผ ํจ๊ณผ์ ์ผ๋ก ์ด์ฉํ ์ ์์๋ค.)
recoil์ Server State์ ๋ถ๋ฆฌ๋ Client๋ด์์ ์ด์ฉํ๋ State๋ค๋ง์ ๊ด๋ฆฌํ ์ ์์๋ค๋์ ์ด ๊ฐ์ด ์ด์ฉํ๋ฉด์ ๋๊ผ๋ ์ฅ์ ์ด๋ผ๊ณ ์๊ฐ๋๋ค.
๐ ์ด๋ค ๊ณผ์ ์ ๊ฑฐ์ณค๋
๋ฐฑ์๋์ ํ์ํ ๋ฐ์ดํฐ๋ค์ ์ด๋ฏธ ์กด์ฌํ๋ ์ปค๋ฎค๋ํฐ๋ ๊ณต์ ์ฌ์ดํธ์์ puppteer
์ด์ฉํด ๊ธฐ์ด ๋ฐ์ดํฐ๋ฅผ ์์งํ๊ณ ์๋ pocketbase์์ ์ง์ํด์ฃผ๋๊ฒ๋ค์ด ๋ง์
๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ จํด์๋ ์๊ณ ๋ฅผ ์ข ๋ ์ ์์์ง๋ง... ์์ฌ์ ๋ ์ ๋ ์์๋ค. (์๋ ์์ฌ์ ๋์ ์ ํ์ )
์ด๋ฏธ์ง์ ๊ฒฝ์ฐ, ๋น๋์๊ฐ์ ์ต๋ํ ๋จ์ถ์ํค๊ณ ์ถ์๊ณ ํผํฌ๋จผ์ค ์ต์ ํ๋ฅผ ์ํด ์ ์ฅํด ๋์ ์ด๋ฏธ์ง์ ์ฌ์ด์ฆ๋ฅผ ๋ณด์ฌ์ง๋ UI์ ๋ฐ๋ผ ๋์ ์ผ๋ก ๊ด๋ฆฌํ๊ณ ์ถ์๋ค.
์ด๋ฅผ ์ํด ์น ํผํฌ๋จผ์ค ์ต์ ํ
์์ ๋ฐฐ์ด imgix
๋ก ์ด๋ฏธ์ง ๋ฆฌ์์ค๋ค์ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํด๋ดค๋๋ฐ ํ์คํ light house์์ ๊ฐ์ ๋นํ๋ ์์ธ๋ค์ ํจ๊ณผ์ ์ผ๋ก ์ค์ผ ์ ์์๋ค.
ํ๋ก ํธ์๋๋ ์ต๊ทผ์ ์์ดํจ๋๋ฅผ ์๊ธฐ ๋๋ฌธ์(?) ๋ฐ์ํ๋ ์ง์์ ํ๋ ๋ฐฉํฅ์ผ๋ก ๊ฐ๋ฐํ๋ค.
์ด ๊ณผ์ ์์ ํ์ด์ง๋ง๋ค ์ด์ฉ๋๋ ๋ ์ด์์์ ๋ช๊ฐ์ ๋ ํผ๊ทธ๋ง๋ ์์ดํจ๋์ ๊ทธ๋ ค๋ณด๋ฉด์ ์ต๋ํ css์ ๋ฏธ๋์ด ์ฟผ๋ฆฌ๋ง์ผ๋ก ๋ฐ๋ ์ ์๋๋ก ์ค๊ณ, ๊ตฌํํ๋ค.
next๋ฅผ ์ด์ฉํ๋ ์ด์ ๊ฐ ๊ฒ์์์ง์ ๋ ์ ๋ ธ์ถ๋๋๋ก ํ๊ณ ์ถ์๊ฒ์ด ๊ฐ์ฅ ํฐ ์ด์ ์๊ธฐ ๋๋ฌธ์ ์ ์ ํ ๋ฉํํ๊ทธ์ seo๋ฅผ ๋ฐฐ์นํ๋ค.
๊ทธ๋ฆฌ๊ณ ์๋น์ค ํน์ฑ์ ํน์ ๊ธฐ๊ฐ๋์์๋ ์นด๋์ ํจ๊ณผ๋ ์คํ์ด ๋ณํ์ง ์๊ธฐ ๋๋ฌธ์ ํด๋น ํ์ด์ง์ cache-control์ ์๋ง๊ฒ ์์ ํ๊ณ
hydration ๊ด๋ จ ํผํฌ๋จผ์ค ์ด์๋ฅผ ์ต๋ํ ์ด์ฌํ ๋๋ฒ๊น ํด๊ฐ๋ฉฐ ์ด๊ธฐ ๋ก๋ฉ์๋๋ฅผ ์ต๋ํ ๋น ๋ฅด๊ฒํ ์ ์๋๋ก ํ๋ค.
์์ ๋งํ๋ ๋ฑ
๋ค์ ๋ณด์ฌ์ฃผ๋ ํ์ด์ง์์๋ ์ํจ์ฑ์ด ์๋ ๋ฐ์ดํฐ๋ค์ด๊ธฐ ๋๋ฌธ์ ๋ฌดํ์คํฌ๋กค๋ก ๊ตฌํํด ์ฒซํ์ด์ง ์ง์
์ ๊ฐ์ฅ ์ต์ ์ ๋ฐ์ดํฐ๋ฅผ ํ์ธ ํ ์ ์๋๋กํ๋ค.
์ฌ๊ธฐ์ ๋ฑ์ ๊ดํ ์์ธํ ์ ๋ณด๋ฅผ ๋ณด์ฌ์ฃผ๊ธฐ์ํด ๋ํ ์ผ ํ์ด์ง๋ก ์ง์ ํ๋ ๊ฒฝ์ฐ ๋ค๋ก๊ฐ๊ธฐ๋ฅผ ํ์๋ ๋ง์ง๋ง์ผ๋ก ๋ณธ ์ง์ ์ผ๋ก ๋์๊ฐ์ผํ๋ ์ ๊ณผ ์์์๊ฐ์ ์ค์ด๋๋ฐ ์๊ฐ์ ๊ต์ฅํ ๋ง์ด ์์๋ค.
์ด์ ์ ์ธ๋ป๋ด์๋ ์ฌ์ํด ๋ณด์ผ ์๋ ์๊ฒ ์ง๋ง ์ด์ฉ์์ UX๊ฐ ๊ต์ฅํ ์ ํด๋๊ณ , ์ฌ์ดํธ๋ฅผ ์ดํํ๋ ์์ธ์ด ๋ ์ ์๊ธฐ ๋๋ฌธ์ ๋ฐ๋์ ํด๊ฒฐํด์ผํ๋ ๋ฌธ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
์ฒ์ ์๊ฐํ๋ ๋ฐฉ์์ ๋ํ ์ผ ํ์ด์ง๋ก ์ด๋๋๊ธฐ์ ์ sessionStorage์ ์คํฌ๋กค ์ง์ ์ ์ ์ฅํ๊ณ , ๋ค๋ก๊ฐ๊ธฐ๋ก ๋ฆฌ์คํธ ํ์ด์ง์ ์ง์ ํ์๋ ์ ์ฅ๋ ์ง์ ์ผ๋ก ์ด๋ํ๋ ๊ฒ์ด์๋๋ฐ
์ด ๋ฐฉ๋ฒ์ ๋ํ ์ผ ํ์ด์ง๋ก ์ด๋ํ๊ณ , ๋ค๋ก๊ฐ๊ธฐ๊ฐ ์๋ ๋ค๋ฅธ ํ์ด์ง(home)์ผ๋ก ์ด๋ํ๋ค๊ฐ ๋ฆฌ์คํธ๋ก ์ง์ ํ๋ค๋ฉด ์คํฌ๋กค์ด ๋ณต์๋๋ค๋ ๋ฌธ์ ์ ์ด ์์๋ค.
๊ทธ๋ ๊ธฐ์ ์ฌ๋ฌ๊ฐ์ง ๋ฐฉ๋ฒ๋ค์ ์๋ํด๋ณด๋ฉฐ ์ฐพ์๊ฒ์ด ์ธ์คํ๊ทธ๋จ์ด๋ ํธ์ํฐ์์ ์ฃผ๋ก ์ด์ฉํ๋ Route as Modal์ด์๋ค.
์ด๋ฅผ ํตํด ์คํฌ๋กค ๊ด๋ จ ์ด์๋ฅผ ๊น๋ํ๊ฒ ํด๊ฒฐ ํ ์ ์์๊ณ , shallow routing์ ๋์๋ฐ๋ผ ์ด์ฉํ๋ฉฐ SEO๊ฐ ๋ณด์ฅ๋ ํ์ด์ง๋ฅผ ์ ๊ณต ํ ์ ์์๋ค.
๐ง ์์ฌ์ ๋์
pocketbase์์๋ relation ์ค๊ณ๊ฐ mysql๊ณผ๋ ๋ค๋ฅธ์ ์ด๋ n-gram search์ ๋ชป์ฐ๊ธฐ ๋๋ฌธ์ ๊ฒ์ํ๋๋ฐ๋ ์ข ์์ฌ์ ๊ณ ์ฟผ๋ฆฌํ๋์ ํ ๋ ค๋ฉด Go๋ฅผ ์์์ผํ๋๋ฐ...
๋ด๊ฐ ๋ณด์ ํ ์นด๋์ ํํฉ์ ๋ฐ๋ผ ๋ฑ ๋ฆฌ์คํธ๋ฅผ ๋ณด์ฌ์ฃผ๊ธฐ ์ํด์๋ ์ฟผ๋ฆฌํ๋์ ํด์ผํ ๊ฒ ๊ฐ์ ์ข ์์๋ด์ผํ ๊ฒ ๊ฐ๋ค.
์ด๋ฒ ํ๋ก์ ํธ์์๋ ๋ฒ๋ค์ฌ์ด์ฆ๋ฅผ ์ต๋ํ ๋ฎ์ถ๊ธฐ ์ํด ๋์์ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํ์ง ์๊ณ ์งํํด๋ดค๋๋ฐ
์๊ฐ๋ณด๋ค ์ต๊ด์ ์ผ๋ก ์ฌ์ฉํ๋ css์ฝ๋๋ค์ ์ค๋ณต์ด ๋๋ฌด ๋ง์ ์ด ๋ถ๋ถ์ ์ข ์์ฌ์ ๋ ์ ์ด๊ธฐ์ ๋ค์๋ฒ์๋ ์์ฃผ ์ค๋ณต๋๋ ๋ถ๋ถ๋ค์ ํ ๋๋ก ๋ฏธ๋ฆฌ ์์ฑํด๋์ผ๊ฒ ๋ค๋ ์๊ฐ๋ ๋ค์๋ค.
๊ทธ๋ฆฌ๊ณ ์๋ฌด๋๋ ํ์ฌ ์ฌ์ดํธ๋ด์ ์ปจํ ์ธ ๋ฅผ ์ฑ์ฐ๋ ๊ณผ์ ์ด ๋ด๊ฐ ๋ฐ๋ก ์๊ฐ์ ๋ด์ ๋ฑ๊ด๋ จ ์ ๋ณด๋ค์ ์์งํ๊ณ admin์ ํตํด ๋ฑ๋ก์ ์ผ์ผํ ํด์ผํ๊ธฐ ๋๋ฌธ์ ์ข ๋ฒ๊ฑฐ๋ก์ด๋ฐ
OpenCV๋ฅผ ํตํด ์คํฌ๋ฆฐ์ท์ ์บก์ฒํ๊ณ ์ด๋ค ์นด๋๋ฅผ ์๋ฏธํ๋์ง ์์๋ผ์์๋ค๋ฉด ์ฃผ๊ธฐ์ ์ผ๋ก ์ปจํ ์ธ ๋ฅผ ์ฑ์๋ฃ์ ์ ์์๊ฑฐ๊ฐ์๋ฐ ์ด ๋ถ๋ถ์ด ์๋ํ๊ฐ ์๋์ด์๋ ์ํ๋ผ
์ด๋ป๊ฒ ํ ์ง ์ข ์๊ฐํด๋ด์ผํ ๊ฒ๊ฐ๋ค.
๊ทธ๋์์ ์๋ฐ์คํฌ๋ฆฝํธ๋ก๋ง ํ๋ก์ ํธ๋ฅผ ์งํํ์๋๋ฐ ์ด๋ฒ ํ๋ก์ ํธ๋ถํฐ ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํด๋ณด๋ ํ์คํ ์ด์ด์๋ ์ค์๋ค์ด ๋ง์ด ์ค์ด๋ค์๋ค.
ํ์ง๋ง ํ์ ๊ฐ๋๋ ์ ํธ๋ฆฌํฐ ํ์ ์ ์ข ๋ฅ์ํ๊ฒ ์ฌ์ฉํ์ง ๋ชปํ๊ณ ์๋๊ฑฐ ๊ฐ์ ๋ฆฌํฉํ ๋ง์ ๋ช๋ฒ ๊ฑฐ์ณ์ผ๋ ๊ฒ๊ฐ๋ค.
ํ๊ธฐ
์ด๋ฒ ํ๋ก์ ํธ์์๋ ์ง์ฅ์ ๋์ ๊ณต๋ถํ๋๋์ ์ต๋ํ ํผํฌ๋จผ์ค ์ต์ ํ ๋ถ๋ถ์ด ์ข ์ ํจํ๊ฒ ์ ์ฉ๋๊ฒ ๊ฐ์๋ค.
ํผํฌ๋จผ์ค ํจ๋์ ๋ณด๋ฉฐ ํ๋ ์ต์ ๊ณ ํ ์์ ์ ๊ฐ์์ ์ธ ์งํ๋ฅผ ํ์ธํด๊ฐ๋ฉฐ ์ ์ฐจ ๋์์ง๋ ๋ชจ์ต์ด ๋ด๊ฐ ํ๋ฉด์๋ ์ ๋ง ์ ๊ธฐํ๊ณ ์ฌ๋ฐ์๋ค.
๐งท Link
https://snapsco.net/
https://github.com/jihunhong/marvelsnap-client