- ํฌ๋ฆฌ์ค๋ง์ค์ ์ฌ๋๋ค๋ผ๋ฆฌ ์๋ง์์ ์ฃผ๊ณ ๋ฐ์ผ๋ฉด ์ด๋จ๊นโ
- ๋กค๋งํ์ดํผ์ฒ๋ผ ์ฌ๋ฌ์ฌ๋์ด ํ ๊ณณ์ ๋ฉ์์ง๋ฅผ ์์ฑ ํ๋ ์์ด๋์ด๐
- ๋ฐ์ํ 3D๋ก ์ ์ฒด๊ฐ์๋ ์ค๋ ธ์ฐ๋ณผ ์ ์๐ฎ
์ฅ์์ ํด๋ฆญํ๋ฉด ๋ฉ์ธ์ง๋ฅผ ํ์ธ ํ ์ ์์ด์ ๐
์ค๋ ธ์ฐ๋ณผ์ ํด๋ฆญํ๋ฉด ๋ด๋ถ๋ก ๋ค์ด๊ฐ์ ์ฅ์ ํด๋ฆญ์ด ๊ฐ๋ฅํด์ง๋๋ค.
์ฅ์์ ํด๋ฆญํ๋ฉด ๋ฉ์ธ์ง๊ฐ ๋ณด์ฌ์.
์ฝ์ง ์์ ๋ฉ์ธ์ง๋ โ ํ์๊ฐ ๋ ์์ด์.
์ฅ์๊ณผ ์๊น์ ์ ํํด ๊ฐ์ฑ์๋ ์ค๋ ธ์ฐ ๋ณผ์ ๋ง๋ค๊ณ ๊ณต์ ํด ๋ณด์ธ์ ๐ฎ
์ํ๋ ์ฅ์๊ณผ ์๊น์ ์ ํ ํ ์ ์์ด์.
์ค๋ ธ์ฐ๋ณผ์ ์ด๋ฆ์ ์ง์ ์ ํด์ค ์ ์์ด์.
๋งํฌ๋ฅผ ๋ง์์ ์ ๋ฌ ๋ฐ๊ณ ์ถ์ ์ฌ๋๋ค์๊ฒ ๊ณต์ ํด์.
์ด์ ์ฅ์์ ๋ง๋ค์ด ๋ฐ๋ปํ ๋ง์ ๋ด์ ๋ฉ์ธ์ง๋ฅผ ๋จ๊ฒจ๋ณด์ธ์ ! ๐
๊ณต์ ๋ฐ์ ๋งํฌ๋ฅผ ํตํด ์ค๋ ธ์ฐ๋ณผ ์ฃผ์ธ์ ์ฅ์์ ๊ตฌ๊ฒฝํด์.
์ค๋ ธ์ฐ๋ณผ์ ๋ค์ด๊ฐ ์ฅ์์ ์ง์ ์ ํํด์.
์ ํ๊ณ ์ถ์ ๋ง์์ ๋ฉ์ธ์ง์ ๋ด์ ์ฅ์๊ณผ ํจ๊ป ์ ๋ฌํด์.
J034 | J064 | J082 | J074 | J160 |
---|---|---|---|---|
๊น์ฐฌ์ฐ | ์๋ฏผ์ | ์ค์น์ฝ | ์กํ์ฐ | ์ต์ง์ |
Front-End | Front-End | Front-End | Back-End | Back-End |
์ ๋ถํ๋๋ ค์ ์ฐ๋ง -๋ญ๋ง์ฌ๋ฅ๊พผ- |
๋๋ 3D์ฌ์ดํธ,, ํ ์ ์๋ค,,๐ฅ |
์๋
ํ์ธ์ ์ ๋ ์ค์น์ฝ์ ๋๋ค ๋๊ตฐ๊ฐ๋ ํด์ผํ์์๐คฏ |
Back-End | ๋ฐฑ๋ฆฐ์ด ์ต์ง์์ ๋๋ค |
๋ถ๋ฅ | ๊ธฐ์ ์คํ |
---|---|
๊ณตํต |
|
ํ๋ก ํธ์๋ |
|
๋ฐฑ์๋ |
|
ํจํค์ง ๋งค๋์ |
|
๋ฐฐํฌ |
|
ํ์ |
์ด๋ฒ ํ๋ก์ ํธ๋ฅผ ํตํด ๊ฐ์ฅ ์ค์ ์ ์ผ๋ก ์๊ฐํ ๋ถ๋ถ์ ์ค์ ์ฌ์ฉ์๋ค์ด ์ฌ์ฉํ ์๋น์ค๋ฅผ ๋ง๋ค์
์์ต๋๋ค.
ํ๋ก ํธ ์๋ ํ์ ๋ชจ๋ React
์ ์ต์ํ์ง ๋ชปํ๊ณ , ์ด๋ ค์ด ๊ธฐ์ ์ ์ธ ๋ถ๋ถ๋ณด๋ค๋ ๊ธฐ์ด์ ์ธ ๋ถ๋ถ์ ์ถฉ์คํ๊ฒ ํ์ตํ์ฌ ๊ตฌํ์ ํด๋๊ฐ๋๊ฒ์ ๋ชฉํ๋ก ์ผ์์ต๋๋ค.
๊ฐ๋ฐํ๊ฒฝ์ PC ํ๊ฒฝ์์ ํฌ๋กฌ์ผ๋ก ์งํํ๋ฉฐ ๋ฐ์ํ์ผ๋ก ํ๋ก์ ํธ๋ฅผ ์งํํ์์ต๋๋ค.
๊ฐ๋จํ ํ๋กํ ํ์ ์ ์์ฑ ํ, ๋น ๋ฅธ ๋ฐฐํฌ๋ฅผ ํตํด ์ฌ๋ฌ ๊ธฐ๊ธฐ์์์ UI๋ฅผ ํ์ธํด๋ณด๊ณ ์ฑ๋ฅ์ ํ ์คํธ ํด๋ณด์์ต๋๋ค.
๊ทธ ์์ค, 3D ๋ชจ๋ธ ๋ ๋๋ง ๊ณผ์ ์์์ ์ต์ ํ ๋ฌธ์ ๋ฅผ ๋ฐ๊ฒฌํ์๊ณ , Three.js
์ ๋ชจ๋ธ๋ง์ Mesh
๋ฅผ ์กฐ์ ํ๊ณ rAF ๊ธฐ๋ฐ์ธ useFrame
์ ์ฌ๋ฌ๊ฐ๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ํ๋์ ์ปดํฌ๋ํธ๋ก ๋ฌถ์ด ์ต์ ํ๋ฅผ ์งํํ์ฌ ๊ฐค๋ญ์ S10 ๊ธฐ์ค GPU ๋ฅผ 98% ์์ 70% ๊ฐ๋์ผ๋ก ๋ ๋๋ง ์ฑ๋ฅ์ ๋ฎ์ถ์์ต๋๋ค.
๋ค์์ผ๋ก, ์์ดํฐ IOS
17 ๋ฒ์ ์ดํ๋ก ์ฌํ๋ฆฌ ์ดํ๋ฆฌ์ผ์ด์
์์ ๋ฌธ์ ๊ฐ ๋ํ๋๊ฒ ๋์๊ณ , ๊ธฐ์กด ํ๋ฉด์ ํฌ๊ธฐ๋ฅผ ์๋์ผ๋ก ๊ณ์ฐํด์ฃผ๋ 100vh
์์ ์ง์ ๋ ๋๋ง ๋๋ ํ๋ฉด์ ๊ณ์ฐํด ์นด์นด์คํก, ์ธ์คํ๊ทธ๋จ๊ณผ ๊ฐ์ ์๋ฒ ๋ ์น๊น์ง ์ ์ ํ๊ฒ ๋ ๋๋ง ๋ ์ ์๋๋ก ์์ ํ์์ต๋๋ค.
๋ค์์ผ๋ก ๋งค๋ฒ ๋ฐฐํฌํด์ ๋ชจ๋ฐ์ผ ํ๊ฒฝ์ ์ค์๊ฐ์ผ๋ก CSS ๋ฅผ ๋๋ฒ๊น ํ๊ธฐ์ ์ด๋ ค์์ด ์์ด ์ฌ๋ฌ ๋ฐฉ๋ฒ์ ๋์ ํ์์ต๋๋ค.
- ๊ตฌ๊ธ ํฌ๋กฌ ์ค๋งํธํฐ ๋ชจ๋ฐ์ผ ๊ฐ๋ฐ์ ๋๊ตฌ (์๋๋ก์ด๋)
- ์ ๋ฃ ํ๋ก๊ทธ๋จ
- vite ๋ก์ปฌ ํธ์คํธ ์ฐ๊ฒฐ
์ด๋ ๊ฒ ์ธ๊ฐ์ง ๋ฐฉ๋ฒ์ ์ฐพ์๋ณด์๊ณ ๊ทธ์ค์ ๊ฐ์ฅ ์ ๊ทผ์ฑ์ด ์ข์ vite ๋ก์ปฌ ํธ์คํธ ์ฐ๊ฒฐ์ ์ ํํ์์ต๋๋ค.
vite.config.ts
์ host๋ฅผ ์ค์ ํด ๊ฐ์ ๋คํธ์ํฌ๋ฅผ ๊ณต์ ํ์ฌ ์ค์๊ฐ์ผ๋ก ๋ชจ๋ฐ์ผ ํ๊ฒฝ์ ๋ณผ ์ ์์์ต๋๋ค.
SSOCK ํ ํ๋ก ํธ์๋์์ ์ค๊ณํ ์ปดํฌ๋ํธ ๊ตฌ์กฐ์ ๊ฐ๋ตํ ์๊ฐํ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
ํฌ๊ฒ Three.js
๋ก ๋ ๋๋งํ Canvas ์ปดํฌ๋ํธ์ UI ๋ฅผ ๊ตฌ๋ถ์ง์ด ์ค๊ณํ์์ต๋๋ค.
3D ๋ชจ๋ธ์ ๋ ๋๋ง ํ๋๊ฒ์ ์ฑ๋ฅ์ ํฐ ์ํฅ์ด ์์๊ณ , ํ๋ก์ ํธ ๊ธฐ์ค ์ ๋๋ฉ์ด์ ํจ๊ณผ๊ฐ ๋ง์ด ๋ค์ด๊ฐ ๋ฆฌ๋ ๋๋ง์ ํ๊ฒ ๋๋ค๋ฉด ์ ๋๋ฉ์ด์ ํจ๊ณผ๋ค์ด ์ฒ์๋ถํฐ ์์๋์ด (์ ์๊ฐ GIF ์์๋ก ์ฅ์์ด ๋ค์ ๋จ์ด์ง๋ ๋ฌธ์ ) ์ฌ์ฉ์ ๊ฒฝํ์ ๋ถ์ ์ ์ํฅ์ ์ค ์ ์์์ต๋๋ค.
๋ฐ๋ผ์ ๋ฆฌ๋ ๋๋ง์ ์ฌ์ฉ๋๋ useState
ํ
์ UI ๋ด๋ถ์์ ์ฌ์ฉํ๋ ค ์๋ํ์๊ณ , ๊ทธ๋ก์ธํด Canvas ์ปดํฌ๋ํธ์์ depth
์ฐจ์ด์ ๋ํด ๊น๊ฒ ๊ณ ๋ฏผํ๊ณ ์ฌ์ฉํ๊ฒ ๋์์ต๋๋ค.
๋ํ ๊ธฐ์กด React ์ ๊ธฐ๋ณธ๊ธฐ์ ์ถฉ์คํ๊ธฐ ์ํด ๋ค๋ฅธ ์ํ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ง ์๊ณ useContext
ํ
์ ์ฌ์ฉํด ์ํ๊ด๋ฆฌ๋ฅผ ํ์์ต๋๋ค.
๊ฐ ๋ผ์ฐํ
๋ ํ์ด์ง๋ค์ ๊ณตํต์ ์ผ๋ก ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ๋ค์ ์ ์ํด์ฃผ๊ณ Provider
๋ก ํ์ ์ปดํฌ๋ํธ๋ค์ ๊ฐ์ธ Canvas ์ UI ๋ชจ๋ ๋์ผํ ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํ์์ต๋๋ค.
๊ทธ๋ก์ธํด Canvas๋ก ๋ ๋๋ง๋ ์ฅ์ ๋ชจ๋ธ์ ๋ํ ์ด๋ฒคํธ์ฒ๋ฆฌ๋ฅผ UI ์์ ์ฒ๋ฆฌํ ์ ์์ด Canvas ๋ฅผ ๋ฆฌ๋ ๋๋ง ํ์ง ์๊ณ ์ ์์ ์ผ๋ก ๋ฉ์ธ์ง๋ฅผ ๋์ธ์ ์์์ต๋๋ค.
ํ์ง๋ง ๋ฐ๋์ ๊ฒฝ์ฐ๋ ๊ณ ๋ ค๋ฅผ ํด์ผํ ํ์๊ฐ ์๊ธฐ๊ฒ ๋์ด ๋ฌธ์ ๊ฐ ๋์์ต๋๋ค.
์ฝ์ง์์ ๋ฉ์ธ์ง์ ๊ฒฝ์ฐ Canvas ์์ 3D ๋ชจ๋ธ โ ๋ก ๋ ๋๋ง ํ์๋๋ฐ, ์ฅ์์ ํด๋ฆญํ์์๋ UI ์ Canvas ๋ชจ๋ ๋ฆฌ๋ ๋๋ง์ ๋์์ ํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์๊ธฐ๊ฒ ๋์๊ณ , ๋ฉ์ธ์ง๋ฅผ ์ฝ์ ๋๋ง๋ค 3D ๋ชจ๋ธ์ด ๋ฆฌ๋ ๋๋ง ๋์ด ๋ค์ ๋จ์ด์ง๊ฒ ๋์์ต๋๋ค.
์ด๋ ์ปดํฌ๋ํธ์ props
๋ฅผ ๋น๊ตํด ์ด์ ๊ฐ๊ณผ ๊ฐ์ผ๋ฉด ๋ฆฌ๋ ๋๋ง์ ํ์ง ์๋ React.memo
๊ณ ์ฐจ ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ์ฌ ํด๊ฒฐํ์์ต๋๋ค.
React.memo ์ ์ฉ ์ | React.memo ์ ์ฉ ํ |
---|---|
๐ React.memo ๋ฅผ ํตํ ์ต์ ํ
๋ค์ด๋ฒ ๋ถ์คํธ์บ ํ ์ฑ๋ฆฐ์ง๋ ์ฝ์๋ ํจ๊ป ์๋ผ๊ธฐ
์ฑ
์ ์ฝ๊ณ ์ ์์ผ ๋ฐฉ๋ฒ๋ก ์ ๋ํด ์๊ฒ ๋์๊ณ , ํ์๋ค๊ณผ ํจ๊ป ์ด๋ฒ ํ๋ก์ ํธ์ ์ ์ฉํด๋ณด๊ธฐ๋ก ๊ฒฐ์ ํ์์ต๋๋ค.
3์ฃผ์ฐจ ๋ถํฐ ํ๋กํ ํ์ ์ด ๋์ค๊ฒ ๋๋ฉด์ ๊ฐ๋ฐ์๋ค์ ์ ์ฅ๊ณผ ์ฌ์ฉ์๋ค์ ์ ์ฅ ์ฐจ์ด๊ฐ ์๋นํ ๋ค๋ฅด๋ค๋ ๊ฒ์ ๊ฒฝํํ๊ฒ ๋์์ต๋๋ค.
ํผ๋๋ฐฑ ์์ฉํ ์ฌ์ฉ์ ํธ์์ฑ ๊ฐ์
ํผ๋๋ฐฑ ์์ฉ ์ | ํผ๋๋ฐฑ ์์ฉ ํ |
---|---|
๋งค์ฃผ ์ฌ๋ฌ ์ฌ์ฉ์๋ค์๊ฒ ํผ๋๋ฐฑ์ ๋ฐ์ผ๋ฉฐ ํ๋ก์ ํธ๋ฅผ ๋ณด์ํ๊ณ ์์ ํ์์ต๋๋ค.
์ ํฌ ๋ฐฑ์๋ ํ์์ด ์ด๋ฒ ํ๋ก์ ํธ๋ฅผ ํตํด ๊ฐ์ฅ ์ค์ ์ ์ผ๋ก ์๊ฐํ ๋ถ๋ถ์ย ๋ง์ ์ด์ฉ์๋ค์ ๊ณ ๋ คํ ์๋ฒ ๊ตฌ์ฑ ๋ฐ ํจ์จ์ ์ธ ์ค๊ณ์ ๋๋ค
๋ฐฑ์๋ ํ์ ๋ชจ๋ย ์ค์ ๋ฐฐํฌ ๋ฐ Nest.js๊ฐ ์ฒ์์ด์๊ณ , ์๋ก์ด ๊ธฐ์ ๋ค์ ๋์ ํ๊ธฐ ๋ณด๋ค๋ ๊ธฐ์กด์ ๋ง์ด ์ฌ์ฉํ๋ ๊ธฐ์ ์คํ์ ๋ ๊น์ด์๊ฒ ๊ณต๋ถํ๋ฉฐ ์ฌ์ฉํ๋ ๊ฒ์ ๋ชฉํ๋ก ์ก์์ต๋๋ค
NCP๋ฅผ ์ด์ฉํ์ฌ ์ค์ ์ฌ์ฉ๋๋ ์ธํ๋ผ ๊ตฌ์กฐ์ ๋น์ทํ๊ฒ ๋ฐฑ์๋ ์ธํ๋ผ๋ฅผ ๊ตฌ์ถํ๋๊ฒ์ด ์ ํฌ์ ๋ชฉํ์์ต๋๋ค.
VPC์์ Nginx๋ฅผ ์คํํ๋ ์น์๋ฒ๋ฅผ ๊ณต๊ฐ ์๋ธ๋ท์ ๋นผ์ฃผ๊ณ WAS์๋ฒ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ๋ฅผ ๋น๊ณต๊ฐ ์๋ธ๋ท์ ๋ฃ์ด์ฃผ์์ต๋๋ค.
๋น๊ณต๊ฐ ์๋ธ๋ท์ ์ฌ์ฉํด์ ๋ฐฑ์๋ ์๋ฒ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ธ๋ถ์ ๊ทผ์ ๋ง์์ค์ผ๋ก 1์ฐจ ๋ณดํธ๋ฅผ ํด์ฃผ์์ต๋๋ค.
CI/CD๋ฅผ ๊ตฌ์ฑํ๋ ๊ณผ์ ์์ ๋ฐฑ์๋์๋ฒ๊ฐ ๋น๊ณต๊ฐ ์๋ธ๋ท์ ํฌํจ๋์ด์์ด ๋ฐฑ์๋ ์๋ฒ์ ๋ฐฐํฌ๊ฐ ๋์ง ์๋ ์๋ฌ๊ฐ ๋ฐ์ํ์ต๋๋ค. ์ฒ์์๋ VPC๋ฅผ ์์ ํ ์ดํดํ์ง ๋ชปํ ์ํฉ์ด๋ผ ํด๋น ์๋ฌ๊ฐ ๋จ๋ ์ด์ ๋ฅผ ์ฐพ์ง ๋ชปํ์ต๋๋ค. ๋ฉด๋ฐํ ๊ฒ์ฌ ํ ๋ฌธ์ ๋ฅผ ์ฐพ์๊ณ ๋ฐฑ์๋ ์๋ฒ์ ๋ฐฐํฌ๋ฅผ ์ํด์ NAT ๊ฒ์ดํธ์จ์ด๋ฅผ ์ถ๊ฐํด์ค์ ์ธ๋ถ์์์ incoming ํต์ ์ ์ฐจ๋จํ์ง๋ง ๋ฐฑ์๋์๋ฒ์์์ outgoing ํต์ ์ ์ด์ด์ฃผ์ด์ ๋ฐฐํฌ๋ฅผ ํ ์ ์์์ต๋๋ค.
์ ์ฌํ ๋ค๋ฅธ ํ๋ก์ ํธ๋ฅผ ์ฐธ๊ณ ํ๋, DDOS ๊ณต๊ฒฉ์ผ๋ก ์๋ฒ์ ๊ณผ๋ถํ๊ฐ ๊ฑธ๋ฆฌ๊ฑฐ๋ ์์์น ๋ชปํ ๋น์ฉ์ด ๋์ค๋ ๋ฑ์ ๋ฌธ์ ๊ฐ ์์์ต๋๋ค. ์ ํฌ๋ ์ด๋ฅผ ์๋ฐฉํ๊ธฐ ์ํด ip๋ณ๋ก rate-limiting์ ์ ์ฉํ์ฌ ์์ฒญ์ด ๋น์ ์์ ์ผ๋ก ๋ชฐ๋ฆฌ๋ ip๋ฅผ ์ฐจ๋จํ์ต๋๋ค
TypeORM์ ์ฌ์ฉํ๋ค๋ณด๋ ํธ๋ฆฌํ ๋ด์ฅ ํจ์์ ์์กดํ๊ฒ ๋์ด ์ค์ ๋ก ์ฟผ๋ฆฌ๊ฐ ์ด๋ป๊ฒ ์ ์ก๋๊ณ ์ค๊ณ๋๋ ์ง ๋ช ํํ์ง๊ฐ ์์์ต๋๋ค. ๊ทธ๋์ ์ ํฌ๋ ์ฟผ๋ฆฌ ๋ก๊ทธ๋ฅผ ๊ธฐ๋กํ๋ฉฐ ํ์ํ๋ค๋ฉด rawQuery๋ฅผ ์ค๊ณํ์ฌ ์๋น์ค ๋ก์ง์ ๊ตฌ์ฑํ์ต๋๋ค.
- ๐ชง๊ธฐํ์
- ๐จ๋์์ธ
- ๐งโ๐ปํธ๋ฌ๋ธ์ํ ๋ฐ ๊ธฐ์ ๋ก๊ทธ
- ๐๊ทธ๋ผ์ด๋ ๋ฃฐ
- ๐ ๊นํ๋ธ ์ปจ๋ฒค์
- โ๏ธ์ฝ๋ฉ ๋ฐ ๋ธ๋์น ์ปจ๋ฒค์
- ๐๋ฐฑ๋ก๊ทธ
- ๐ํ์๋ก
๋ ์์ธํ ๊ธฐ๋ก์ ๋ ธ์ ๊ณผ ์ํค๋ฅผ ํ์ธํด์ฃผ์ธ์.