๐๏ธ์ํํธ์จ์ด
[css3] text-overflow - ๋์น๋ ํ ์คํธ ๋ธ๋ฌ ์ฒ๋ฆฌํ๊ธฐ
text-overflow ํ ์คํธ ์ค๋ฒํ๋ก์ฐ๋ white-space๋ฅผ ์ด์ฉํ์ฌ ์ค ๋ฐ๊ฟ์ ํ์ง ์๊ณ ๋ ํ์ค๋ก ํ ์คํธ๋ฅผ ์ฒ๋ฆฌํ๊ฒ ํ๋ ์์ฑ์ธ๋ฐ, over-flow๊ฐ ๋ฐ์ํ๋๋ก ๊ฐ์ ํ์ง ์์์ ๊ธด ์ค์ ํ ์คํธ๊ฐ ๋์ด๊ฐ๋ ๊ฒ์ ๋ฐฉ์งํ ๋ ์ฌ์ฉํ๊ธฐ ์ข์ ์์ฑ์ด๋ค. ๊ตณ์ด ํด๋น ์ปจํ ์ธ ์ ๋ชจ๋ ๋ด์ฉ์ ๋ค ๋ณด์ฌ์ค ํ์๊ฐ ์๊ณ , ๋ค๋ฅธ ์ปจํ ์ธ ๋ค๋ ๊ฐ์ด ๋ณํ์ ์ผ๋ก ๋ณด์ฌ์ค์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์๊ธธ๋, ์ฌ์ฉํ๊ธฐ ์ข์ ์ต์ ์ด๋ค. ํผ์๋ง ์ฌ์ฉํ ์๋ ์๊ณ , overflow ์์ฑ์ด hidden, scroll, auto ๋ก ๋๊ณ ์ whitespace ๊ฐ nowrap์ธ ๊ฒฝ์ฐ์ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค. ์ฆ, 3๊ฐ์ง ์์ฑ์ ํ๋ฒ์ ๊ฐ์ด ์ด๋ค๊ณ ์๊ฐํ๋ฉด ํธํ๋ค. ์ด๋ ๊ฒ. white-space: nowrap; overflow: hidden; text-over..
๋น๋๊ธฐ API ์ฒ๋ฆฌ
๋น๋๊ธฐ ์ฒ๋ฆฌ๋ฅผ ์ํด์ axios ๋ฅผ ์ฌ์ฉํ๋ค. ๊ทธ๋ ๋ค๋ฉด ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ ๋ฌด์์ธ๊ฐ? - ํน์ ์ฝ๋์ ์ฐ์ฐ์ด ๋๋ ๋๊น์ง ์ฝ๋์ ์คํ์ ๋ฉ์ถ์ง ์๊ณ , ๋ค์ ์ฝ๋๋ฅผ ๋จผ์ ์คํํ๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ ๋ํ์ ์ธ ์๋ก, ๋ฌผ๊ฑด์ ์ฌ๋ฌ๊ฑด ๋ฐฐ์ก๋ณด๋ด๋ ๊ฒ์ ์๊ฐํ๋ฉด ์ฝ๋ค. ์์์ ์๊ด์์ด ์ฌ๋ฌ ๋ชฉ์ ์ง์ ๋ณด๋ด๋ ์์์ ๋ฐฐ์ก ํ๋ก์ธ์ค ๋ฐ๋ผ์ ๋ฌผํ ๋ฐฐ์ก์ด ๋ฉ์ถ์ง ์๊ณ ์งํ๋๋ค. axios๋ ๋ฌด์์ธ๊ฐ? - axios ๋ผ์ด๋ธ๋ฌ๋ฅด์์ ์ฌ์ฉํ๋ Promose ๊ฐ์ฒด์ ๋ํด์ ๋จผ์ ์ดํด๋ณด๋๋ก ํ์. - ๋น๋๊ธฐ ์์ ์ด ํ๊ฒ ๋๋ฉด ๊ฒฐ๊ณผ๊ฐ ์ด์จ๋ ์ฑ๊ณต์ด๊ฑฐ๋ ์คํจ ์๋๋ฉด ๋๋ ์๋ ์งํ์ค์ธ ์ํ๊ฐ ์์ ๊ฒ์ด๋ค. - ๊ทธ๋์ ๋ค์ 3๊ฐ์ง ๊ฒฐ๊ณผ์ ๋ํด์, ์ฑ๊ณต ํ์๋๋ ์ด๋ค ํ๋์ ํ๊ณ , - ์คํจ๋ฅผ ํ์๋์๋ ์ด๋ค ํ๋์ ํด์ผํ๋์ง๋ฅผ ์ ํด๋์๊ฒ ..
[webpack-dev-server] ์ฝ๋ ๋ณ๊ฒฝ์ฌํญ ๋ฐ๋ก ๋ฐ์(js)
๋๋์ด webpack.config.js ํ์ผ์ ์ฝ๋๋ฅผ ์ถ๊ฐํด์, ๋งค๋ฒ ๋น๋ํ์ง ์๊ณ ๋ ๋น ๋ฅด๊ฒ ๊ฐ๋ฐํ๋ ๋ฐฉ๋ฒ์ ํฐ๋ํ๋ค. ์๋ก๊ณ ์นจํด๋ ๋ณ๊ฒฝ์ด ์๋์๋๋ฐ, ํ๋ฃจ ๊ณ ๋ฏผํ๊ณ ๋ฐฉ๋ฒ ํฐ๋ํ๋ค!! [webpack-dev-server] Hot Module Replacement enabled. log.js:1 [webpack-dev-server] Live Reloading enabled. log.js:1 [webpack-dev-server] App hot update... ์ฐธ๊ณ ๋ก ์ด๋ ๊ฒ ๋จ๋ฉด ์ฑ๊ณตํ๊ฑด๋ฐ, ๋งจ์ฒ์์ ์ฝ์์ฐฝ์, ์ด๋ ๊ฒ๋ง ๋จ๊ณ ํซ๋ฆฌ๋ก๋ฉ์ด ์๋๋ ๊ฒฝ์ฐ๊ฐ ์กด์ฌํ๋๋ฐ, ์ค์ ๊ฐ์ ๋ณ๊ฒฝํด์ฃผ๋ฉด ๋๋ค. [webpack-dev-server] Hot Module Replacement enabled. log.js:1 [web..
[Node.js] express ์ cors ์ฌ์ฉํด์ API ๋ง๋ค๊ธฐ
npm ์ cors ์ express ๋ฅผ ์ค์นํด์, ๊ฐ๋จํ API๋ฅผ ๋ง๋ค์ด๋ดค์ต๋๋ค. cors ๋ ํ๋ก ํธ์์ ์๋ฒ์์ ์ ๊ณตํ API๋ก ์์ฒญ์ ๋ณด๋ผ ๋, ๋ฐ์ํ๋ ์๋ฌ์ ๋ํด์ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ด๋ค. Cross Origin Resource Sharing ์ด์ ๊ด๋ จ๋ ์์ธํ ์ค๋ช ์, ์๋ ๋งํฌ์ ์ฒจ๋ถ๋์ด ์์ผ๋ ํด๋น ๋ธ๋ก๊ทธ์ ์ ์ํด์ ์ฝ์ด๋ณด๋ฉด ํฐ ๋์์ด ๋ ๊ฒ์ด๋ค. https://bohyeon-n.github.io/deploy/web/cors.html CORS๋? CORS๋ฅผ ํด๊ฒฐํด๋ณด์ | ๊ตฌ๋ณดํ ๋ธ๋ก๊ทธ CORS๋? CORS๋ฅผ ํด๊ฒฐํด๋ณด์ 20200522 ํ๋ก์ ํธ๋ฅผ ํ๋ฉด์ ํ๋ก ํธ์์ ์๋ฒ์์ ์ ๊ณตํ API๋ก ์์ฒญํ์, CORS ์๋ฌ๊ฐ ๋ฐ์ํ๋ค. ์ง๊ธ๊น์ง CORS์๋ฌ๋ฅผ ํด๊ฒฐํ๊ธฐ๋ง ํ๊ณ ์ ํํ CORS๊ฐ ๋ฌด์์ด๊ณ ์ด๋ป๊ฒ..
[Vue.js] ์กฐ๊ฑด๋ถ ๋ ๋๋ง๊ณผ ๋ฒํผ ํ์ฑํํ๊ธฐ
v-show ์กฐ๊ฑด๋ถ ๋๋ ํฐ๋ธ๋ฅผ ์ด์ฉํ์ฌ, vue ์์ ํ์ด์ง๊ฐ ๋ฒํธ๊ฐ 1์ ๋ฒ์ด๋๋ฉด, ํด๋น ์ค์ ๋ฒํผ ๊ฐ์ ์ ์ดํ์ง ๋ชปํ๋๋ก ํ๋ ค๊ณ ํ๋ค. v-show๋ ์กฐ๊ฑด๋ถ ๋๋ ํฐ๋ธ๋ก์, ๋ฐํ ๊ฐ์ด true์ false ๊ฐ์ ๊ฐ์ง๋ค. ๋ค๋ฅธ ๊ฐ์ ๋ค์ด๊ฐ ์ ์๋ค. true : ํ๋ฉด์ด ๋ณด์ฌ์ง false: ํ๋ฉด์ด ์๋ณด์ *ํ์ง๋ง, ๊ฐ๋ฐ์ ๋ชจ๋๋ก ๋ณด๋ฉด, ๋ฒํผ์ด ์ญ์ ๋์ง ์๋ ๊ฒ์ ํ์ธํ ์ ์๋ค. ๋์ , ๊ฐ์ด false๊ฐ ๋๋ฉด, span ํ๊ทธ ์์ ์๋ ::before ์ด ์ฌ๋ผ์ง๋ค. ์ฌ์ฉ์ ์ฌ์ฉํ ์ฒ์์, this ๋ฅผ ์ ๋ชป ์ฌ์ฉํด์ ๊ณ์ ๋ฒํผ์ด ํ์ฑํ๊ฐ ์๋์๋๋ฐ, ์ด์ ๋ฅผ ์์๋ค. ์ฌ์ค, Vue.js ์์๋ ์กฐ๊ฑด๋ฌธ์ ์ด์ฉํ์ฌ ์กฐ๊ฑด๋ถ ๋ ๋๋ง์ ํ ์ ์๋ค. v-if, v-else, v-else-if ๊ตฌ๋ฌธ์ด ์๋ค. ํ์ง๋ง, ..
[Vue.js] props ์ด์ฉํ๊ธฐ
vue์ ๋ฌธ๋ฒ์ ์ตํ๋ ค๋ฉด ์ฌ๋ฌ๊ฐ์ง ์ ์ค์ผ์ด์ค๋ฅผ ์ง์ ๋ค๋ค๋ด์ผ ํ๋ค. props๋ฅผ ์ด์ฉํ์ฌ, ์์ ์ปดํฌ๋ํธ์ ๊ตฌ์กฐ๋ฅผ ์ฌํ์ฉ์ด ๊ฐ๋ฅํ ๊ตฌ์กฐ๋ฅผ ๋ณด์ด๊ณ , ์์ฑ์ ์ด๋ค์์ผ๋ก ๋ณด๋ด๋์ง ์ดํด๋ณด๋๊ฒ ์ด๋ฒ ๊ธ์์์ ํต์ฌ์ด๋ค. ๋ํ ๋ถ๋ชจ ์ปดํฌ๋ํธ์์๋ ์๊ธฐ ๋ฐ์ดํฐ๋ฅผ ์ด๋ค์์ผ๋ก ๋ฐ์ธ๋ฉํ๋์ง :(์ฝ๋ก ) ์ ์ด๋ป๊ฒ ์ฌ์ฉํ๋์ง ํ์ธํด๋ณด์. App.vue 1. ์ปดํฌ๋ํธ ํ์ผ์ ๋ถ๋ฌ์ฌ๋๋ import / from ์ ํ์ฉํ๋๋ก ํ๋ค. 2. ๋ด๋ถ์ ์ผ๋ก ์ฌ์ฉํ๋ ค๋ ๋ฐ์ดํฐ๋ data ์์ ๋ฃ์ด๋๊ณ , :color ์ด๋ฐ์์ผ๋ก ๋ฐ์ธ๋ฉํด์ ์ฌ์ฉํ๋๋ก ํ๋ค. import MyBtn1 from './components/MyBtn1.vue' export default { components: { MyBtn1 }, data () { return { c..
npx, npm์ ์ฐจ์ด์ vscode ์คํ ๋ฐฉ๋ฒ
1. npx ์ npm npx๋ก ํ๋ก์ ํธ ๋ค์ด๋ฐ๊ธฐ ๐ ๋ฒ์ ๊ด๋ฆฌ๊ฐ ์๋ ์๋ก์ด ํ๋ก์ ํธ๋ฅผ ๋ค์ด๋ก๋ ๋ฐ๋ ๊ฒ๊ณผ ๊ฐ์ npx degit ๊ณ์ ์ด๋ฆ/์ ์ฅ์์ด๋ฆ ๋ค์ด๋ฐ์๊ฒฝ๋ก $ npx degit ParkYoungWoong/webpack-template-basic vue3-webpack-template - npx : degit์ ์ค์นํ์ง ์๊ณ ๋ ์ฌ์ฉํ ์ ์๋ nodejs๋ช ๋ น์ด npx - degit : ์๊ฒฉ์ ์ฅ์ github์ ์๋ ํน์ ์ ์ฅ์๋ฅผ ํ์ฌ ๋ก์ปฌ ๊ฒฝ๋ก์ ๋ค์ด๋ก๋ ์ฐธ๊ณ ๋ก npx๋ npx๋ ์๋ก์ด ํจํค์ง ๊ด๋ฆฌ ๋ชจ๋์ด ์๋!! ์๋ฐ์คํฌ๋ฆฝํธ ํจํค์ง ๊ด๋ฆฌ ๋ชจ๋์ธ npm(Node Package Module)์ 5.2.0 ๋ฒ์ ๋ถํฐ ์๋ก ์ถ๊ฐ๋ ๋๊ตฌ npm๊ณผ ๋น๊ต๋์์ด ์๋ npm์ ์ข ๋ ํธํ๊ฒ ์ฌ์ฉํ๊ธฐ ์ํด์ np..
[Vue.js]ํน์ ๋ฐ์ดํฐ๋ค์ ๊ฐ๋ค์ ํ์ด๋ผ์ดํ ํ ์๋ ์์๊น?
ํ์ ์์ ์งํ์ค์ธ ํ๋ก์ ํธ์์ Vue๋ฅผ ํ์ฉํ์ฌ Front ๋จ์ ๊ตฌ์ถํ๋๋ฐ, ๋ค์๊ณผ ๊ฐ์ ํ๋ฉด์์ ๊ณต๊ธ์๋ช , ์ ์์ธ๊ธ๊ณ์ฐ์์น์ธ๋ฒํธ, ์ฌ์ ์๋ฒํธ, ๊ณต๊ธ๊ฐ์ก, ์ธ์ก ๋ฑ์ API๋ฅผ ํ์ฉํด์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ค๊ณ ์๋ ์ํฉ์ด๋ค. ๊ทธ๋ฆฌ๊ณ ์ฆ๋น์ผ, ์ ๊ธฐ์ผ, ์ง๊ธ์์ ์ผ ๋ฑ์ ๋ฐ์ดํฐ ๊ฐ์ ์ฌ์ฉ์ ๊ธฐ์ค ๋ ์ง๋ฅผ ๊ณ์ฐํ์ฌ, ์๋์ผ๋ก ๊ธฐ์ ๋๋ฉฐ, ๋ค์๊ณผ ๊ฐ์ด Edit ํ ์ ์๊ฒ ๊ตฌ์ฑ๋์ด์ ธ ์๋ค. ๊ทธ๋ฆฌ๊ณ ์ ์, ์๊ฒฌ, PO๋ฒํธ, ๊ณ์ข๋ฒํธ ๋ฑ์ ์ฌ์ฉ์๊ฐ ๊ฐ์ ์ธํ ํ ์ ์๊ฒ, ์์ ๋๋ฅผ ๋์ฌ ๋์๋ค. ํ์ง๋ง, ์ฌ๊ธฐ์ Vue๊ฐ ์ต์ํ์ง ์์์, ๋จธ๋ฆฌ์์ ์๊ฐ๋๋ ๊ธฐ๋ฅ์ ์์ง๋ง ์์ง ๊ตฌํ์ ํ์ง ๋ชปํ๊ฒ ์กด์ฌํ๋ค. ๋ฐ๋ก ์ฆ๋น์ผ, ์ ๊ธฐ์ผ, ์ง๊ธ์์ ์ผ ๊ฐ์ ๋ ์ง๋ ์๋์ผ๋ก ์ ๋ ฅ๋๋ ๊ฐ์ธ๋ฐ, ์ฌ์ฉ์๊ฐ ๋ณ๊ฒฝํ ์ ์๋ ๊ฐ์ธ๋ฐ๋ ๋ถ๊ตฌํ๊ณ , ์ผ๋ฐ ๊ฐ..
์๋ฐ์คํฌ๋ฆฝํธ์์ ํ์ดํ๋ฅผ ์ฌ์ฉํ๋ ์ด์
๋ฐ์ดํฐ์ ์๊ฐ ๊ธธ์ด์ง๋ ๊ฒฝ์ฐ, find ๋ฅผ ํตํด์ ํน์ key ๊ฐ์์์ value ๋ฅผ ์ฐพ์๋ด์ผํ ๋๊ฐ ์กด์ฌํ๋ค. ๊ทธ๋, function ์ ์ฌ์ฉํ ๊ฒฝ์ฐ์ ํ์ดํ ํจ์๋ง ์ฌ์ฉํ ๊ฒฝ์ฐ๊ฐ ์๋ค. ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์ ๋ณด๋ฉด, ์ ํ์ดํ ํจ์๊ฐ ํธํ์ง ์ ๊ฒ์ด๋ค. const settingState = [ { "engname": "template_name", "korname": "ํฌํ๋ฆฟ ์ด๋ฆ", "value": "ํ ์คํธ ํ ํ๋ฆฟ 1" }, { "engname": "toffice_id", "korname": "Toffice ์์ด๋", "value": "22019" }, { "engname": "toffice_password", "korname": "Toffice ๋น๋ฐ๋ฒํธ", "value": "22019" }, { "en..
[์๋ฐ์คํฌ๋ฆฝํธ] Math ํจ์ ์ด์ฉํ์ฌ ๋ก๋ ๋ฒํธ ์์ฑํ๊ธฐ
๋๋ค ์ซ์๋ฅผ ์ด์ฉํ์ฌ, ๊ฐ๋ณ๊ฒ ๋ก๋ ๋ฒํธ๋ฅผ ๋ง๋๋ ค๊ณ ํ๋ค. ์กฐ๊ฑด์ 1. Math.random() ์ด์ฉํ๊ธฐ 2. ๋ฐ์ฌ๋ฆผ, ์ฌ๋ฆผ, ๋ด๋ฆผ์ ์ต์ 1๋ฒ ์ด์ ์ฌ์ฉํ๊ธฐ 3. switch ๋ฌธ 1๋ฒ ์ด์ ์ฌ์ฉํ๊ธฐ 4. ์ต๋, ์ต์๊ฐ์ ์ ๋ ฅ๊ฐ์ผ๋ก ๋ฐ๋ ํจ์ ์ฌ์ฉํ๊ธฐ 5. ํจ์๊ฐ์ ๊ฐ์ฒด ํ์ ์ผ๋ก ๋ฐํํ๊ธฐ 6. ๊ฒฐ๊ณผ๊ฐ์ ๋ฐฐ์ด๋ก ๋ณด์ด๊ธฐ 7. ์๋ฐ์คํฌ๋ฆฝํธ console ๋ก ๋ณด์ด๊ณ , html ์์ h1 ํ๊ทธ๋ก ํด๋น ๊ฐ๋ค์ ๋ณด์ด๊ธฐ ๋ฑ์ด๋ค. ์์์ผํ ๊ฐ๋ ์ผ๋ก๋ 1. ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด๋ฅผ ๋ฐฐ์ด๋ก ์ ํํ๋ ๋ฐฉ๋ฒ 2. html ์ js ๋ฐ์ดํฐ ๊ฐ ๋ณด์ด๋ ๋ฐฉ๋ฒ ๋ก๋ ๋ฒํธ์ ๊ฒฝ์ฐ 1๋ถํฐ 45๊น์ง ์์ผ๋ฉฐ, ์ค๋ณต์ ํ๋ฝํ์ง ์๋ ์กฐ๊ฑด์ด ์๋ค๋ ์ ์ ํ์ ์ฝ๋๋ฅผ ์์ฑํ๋๋ก ํ๋ค. ์ฝ๋๊ฐ ๊ธด๋ฐ, ์๊ฐ๋๋๋ฐ๋ก ํ๋ค๋ณด๋, ๋ฆฌํฉํ ๋ง์ด ํ์ํ ๋ถ๋ถ์ด ๋ณด์ด๊ธด..