๐ ์คํ์ผ์ํ๊ธฐ
๐ ํ๋ก์ ํธ ๊ฐ์
| ย |
ย |
| ํ๋ก์ ํธ ์ค๋ช
|
์ํ๊ธฐ, ํค์ค์คํฌ ์ ํ ํ๋งค ํ๋ก๊ทธ๋จ |
| ๊ธฐ์ ์คํ |
Vue2/3, Express |
| ์ฐธ์ฌ๋ |
ํ๋ก ํธ์๋ 100% |
| ๊ธฐ๊ฐ |
2021.08 ~ 2022.05 |
โญ ์ฃผ์ ๊ธฐ๋ฅ
๐๏ธ ์ํ ํ๋งค ์์คํ
- ํค์ค์คํฌ ๊ธฐ๋ฐ ์ํ ์ ํ
- ์ฅ๋ฐ๊ตฌ๋ ๊ธฐ๋ฅ
- ๊ฒฐ์ ์ฐ๋
๐ฆ ์ํ๊ธฐ ์ฐ๋
- ๋ฌผํ ๋ฐฐ์ถ ์์คํ
- ์ฌ๊ณ ๊ด๋ฆฌ
- ์ค์๊ฐ ์ํ ๋ชจ๋ํฐ๋ง
๐ ํฐ์น ์ฌ๋ผ์ด๋ UX
- WebAPI touch event ํ์ฉ
- ํค์ค์คํฌ ํ๊ฒฝ ์ต์ ํ
- ๋ถ๋๋ฌ์ด ์ค์์ดํ ์ ์ค์ฒ
๐ ๊ธฐ์ ์ ๊ตฌํ
webpack4 โ Vite ์ ํ
// ๊ธฐ์กด webpack.config.js
module.exports = {
entry: './src/main.js',
// ๋ณต์กํ ์ค์ ...
};
// vite.config.js
export default defineConfig({
plugins: [vue()],
// ๊ฐ๊ฒฐํ ์ค์
});
์ฑ๊ณผ: ๋น๋ ์๋ 50% ๊ฐ์
GitLab Runner ์๋๋ฐฐํฌ
# .gitlab-ci.yml
stages:
- build
- deploy
build:
stage: build
script:
- npm install
- npm run build
deploy:
stage: deploy
script:
- scp -r dist/* user@server:/var/www/
ํฐ์น ์ฌ๋ผ์ด๋ ๊ตฌํ
// WebAPI touch event ํ์ฉ
element.addEventListener('touchstart', handleTouchStart);
element.addEventListener('touchmove', handleTouchMove);
element.addEventListener('touchend', handleTouchEnd);
function handleTouchMove(e) {
const touch = e.touches[0];
const diff = touch.clientX - startX;
// ์ฌ๋ผ์ด๋ ๋ก์ง
}
๐ง ํธ๋ฌ๋ธ์ํ
๋น๋ ์๋ ๋ฌธ์
- ๋ฌธ์ : webpack4 ๊ธฐ๋ฐ ๋น๋ ์๊ฐ ๊ณผ๋ค ์์
- ๋ถ์:
- ๋ฒ๋ค ํฌ๊ธฐ ๋ถ์
- HMR ์๋ ์ธก์
- ํด๊ฒฐ:
- Vite๋ก ๋ง์ด๊ทธ๋ ์ด์
- ESM ๊ธฐ๋ฐ ๋น๋๋ก ์ ํ
- ๋น๋ ์๋ 50% ๊ฐ์
์๋ ๋ฐฐํฌ ๋ฐ๋ณต ์์
- ๋ฌธ์ : ๋งค๋ฒ ์๋์ผ๋ก ๋น๋ ํ ์๋ฒ ๋ฐฐํฌ
- ํด๊ฒฐ:
- GitLab Runner CI ๊ตฌ์ถ
- AWS EC2 CD ํ์ดํ๋ผ์ธ ์ฐ๋
- push ์ ์๋ ๋ฐฐํฌ
ํค์ค์คํฌ ํฐ์น UX
- ๋ฌธ์ : ์ฌ์ฉ์๋ค์ ํฐ์น ์ฌ๋ผ์ด๋ ๋ถํธ ํผ๋๋ฐฑ
- ํด๊ฒฐ:
- WebAPI touch event ํ์ฉ
- ์ ์ค์ฒ ์ธ์ ๋ก์ง ๊ฐ์
- ์ ๋๋ฉ์ด์
๋ถ๋๋ฝ๊ฒ ์กฐ์
๐ก ์ฑ๊ณผ
- ๋น๋ ์๋ 50% ๊ฐ์ : webpack โ Vite ์ ํ
- ์๋๋ฐฐํฌ ํ์ดํ๋ผ์ธ ๊ตฌ์ถ: GitLab Runner + AWS EC2
- UX ๊ฐ์ : ํฐ์น ์ฌ๋ผ์ด๋ ์ฌ์ฉ์ฑ ํฅ์
- ESLint ์ปจ๋ฒค์
๊ตฌ์ถ: ํ ์ฝ๋ ํ์ง ํ์คํ
โ ๋ฉ์ธ์ผ๋ก ๋์๊ฐ๊ธฐ