IT/development212 [Vue.js] Props(๋ถ๋ชจ -> ์์) Vue.js์์ ์์(๋ถ๋ชจ)์ปดํฌ๋ํธ์์ ํ์(์์) ์ปดํฌ๋ํธ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ ๋ ์ฌ์ฉํ๋ ์์ฑ const appHeader = { template: 'Header', props: ['propsdata'] } new Vue({ el: '#app', components: { 'app-header': appHeader, }, //์ ๋ฌํ๋ ค๋ ๋ฐ์ดํฐ data: { message: '๋ถ๋ชจ ์ปดํฌ๋ํธ์ ๋ฉ์์ง', name: '์์ด์ธ๋งจ', } }) ๊ฒฐ๊ณผ data ํค๊ฐ ๋ณ๊ฒฝ ์ ๋ณ๊ฒฝ๋ ๋ฐ์ดํฐ๊ฐ ์์ ์ปดํฌ๋ํธ์๋ ํ์๋จ Root ์ปดํฌ๋ํธ์ ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ ์ props๋ก ๋ด๋ ค๋ฐ์ ์์ ์ปดํฌ๋ํธ์ ๋ฐ์ดํฐ์๋ ์ ์ฉ๋จ(reactivity) ํ์ ์ปดํฌ๋ํธ ์ถ๊ฐ ํ ์๋ก์ด props ์ ๋ฌ //appContent๋ผ๋ ํ์ ์ปดํฌ๋ํธ ๋ด.. IT/development 2023. 7. 26. [Vue.js] ์ปดํฌ๋ํธ(์ฌ์ฌ์ฉ ์ ์ฉ) ๋ชฉ์ฐจ ์ปดํฌ๋ํธ ๋ฑ๋ก ์ ์ญ ์ปดํฌ๋ํธ ๋ฑ๋ก(ํ๋ฌ๊ทธ์ธ์ด๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํํ๋ก ์ฌ์ฉ ์) Vue.component('app-header', { template: ' {{ message }} ๊ฒฐ๊ณผ Root ์ปดํฌ๋ํธ๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ณ์ธต๊ตฌ์กฐ๋ฅผ ์ด๋ฃธ image source: https://v2.ko.vuejs.org/v2/guide/components.html ์ปดํฌ๋ํธ — Vue.js Vue.js - ํ๋ก๊ทธ๋ ์๋ธ ์๋ฐ์คํฌ๋ฆฝํธ ํ๋ ์์ํฌ v2.ko.vuejs.org ๋ถ๋ชจ ์ปดํฌ๋ํธ์์ ์์ ์ปดํฌ๋ํธ๋ก๋ props ์์ฑ์ผ๋ก ๋ฐ์ดํฐ ์ ๋ฌ ์์ ์ปดํฌ๋ํธ์์ ๋ถ๋ชจ ์ปดํฌ๋ํธ๋ก๋ event๋ก ๋ฐ์ดํฐ ์ ๋ฌ ํต์ ๊ท์น์ด ์์ผ๋ฉด ๋ฐ์ดํฐ ํ๋ฆ ์ถ์ ์ด ์ฉ์ดํจ reference: https://www.inflearn.com/course/age-of.. IT/development 2023. 7. 26. [Vue.js] ์ธ์คํด์ค์ ์์ฑ์ ์ธ์คํด์ค ๋ทฐ ์ธ์คํด์ค๋ ๋ทฐ ๊ฐ๋ฐ ์ ํ์๋ก ์์ฑํด์ผ ํ๋ ์ฝ๋ {{ message }} console.log(vm)์ ์ฐํ vue ์ธ์คํด์ค์ ์์ฑ๊ณผ API๋ค new Vue({…})๋ก ์ธ์คํด์ค๋ฅผ ๋ง๋ค๊ณ ์ธ์คํด์ค์ ๋ฏธ๋ฆฌ ์ ์๋ ์์ฑ๊ณผ ๊ธฐ๋ฅ๋ค์ ์ฌ์ฉ ํฌ๋กฌ ํ์ฅํ๋ก๊ทธ๋จ(Vue.js devtools) ์ค์น ์ ๋ธ๋ผ์ฐ์ ์์ Vue ๊ฐ๋ฐ์ ๋ ํจ์จ์ ์ผ๋ก ํ ์ ์์ ์ธ์คํด์ค๋ฅผ div์ ๋ถ์ด๋ฉด ์ธ์คํด์ค๋ฅผ ์ ์ฉํ ์๋ฆฌ๋จผํธ๋ Root ์ปดํฌ๋ํธ๊ฐ ๋จ ์์ฑ์ ํจ์ ์ผ๋ฐํจ์์ ๊ตฌ๋ถํ๊ธฐ ์ํด ํจ์๋ช ์์ด ๋๋ฌธ์๋ก ๋์ด ์๊ณ new ์ฐ์ฐ์๋ฅผ ํตํด ์ธ์คํด์ค๋ฅผ ์์ฑ ์์ฑ์ ํจ์์ ์์ฑ, ๊ธฐ๋ฅ๋ค์ ๋ฏธ๋ฆฌ ์ ์ํด ๋๊ณ ์ธ์คํด์ค๋ฅผ ๋ง๋ค์ด์ ๋ฏธ๋ฆฌ ์ ์๋ ์์ฑ๊ณผ ๊ธฐ๋ฅ ์ฌ์ฉ reference: https://www.inflearn.com/cour.. IT/development 2023. 7. 26. [Vue.js] ์ปดํฌ๋ํธ๋ผ๋ฆฌ์ ๋ฐ์ดํฐ ์ ๋ฌ(feat. props, event emit) Vue.js์์ ์ปดํฌ๋ํธ ๋ฑ๋ก ์ ๋ถ๋ชจ-์์๊ด๊ณ๊ฐ ํ์ฑ๋๋๋ฐ ๊ฐ ์ปดํฌ๋ํธ๋ ๋ฐ์ดํฐ๋ฅผ ๋ ๋ฆฝ์ ์ผ๋ก ๊ฐ์ง๊ณ ์์ ๋ถ๋ชจ ์์๋ผ๋ฆฌ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌ ๋ฐฉ๋ฒ: ๋ถ๋ชจ๋ ์์์๊ฒ ๋ด๋ ค๋ง ์ฃผ๊ณ , ์์์ ๋ถ๋ชจ์๊ฒ ์ฌ๋ ค๋ง ์ค๋ค. ์ด ๋ ๋ถ๋ชจ๊ฐ ์ฌ์ฉํ๋ ์์ฑ์ด props์ด๊ณ ์์์ด ์ฌ์ฉํ๋ ์์ฑ์ด event emit์ด๋ค. ์ด๋ฅผ ํ์ฉํ ๊ฐ๋จํ ์์ ๋์์ ๋ด์ฉ ์ ๋ฆฌ ๋ถ๋ชจ์์ props๋ฅผ ํ์ฉํด ๋ถ๋ชจ์ data ์ค message๋ฅผ ์์์๊ฒ ๋ด๋ ค์ฃผ๊ณ ์์์์ ์ด๋ฒคํธ ๋ฐ์ ์ ๋ถ๋ชจ์ ๋ฉ์๋๋ฅผ ์คํํด์ ๋ถ๋ชจ ์ปดํฌ๋ํธ์ ๋ฐ์ดํฐ ์ค num์ 1์ฆ๊ฐ ์ํจ๋ค. image source: https://v2.ko.vuejs.org/v2/guide/components.html ์ปดํฌ๋ํธ — Vue.js Vue.js - ํ๋ก๊ทธ๋ ์๋ธ ์๋ฐ์คํฌ๋ฆฝํธ ํ๋ ์์ํฌ.. IT/development 2023. 7. 26. [JavaScript] ๋๋ฑ์ฐ์ฐ์(==, !=)์ ์ผ์น์ฐ์ฐ์(===, !==) ๋๋ฑ์ฐ์ฐ์์ ์ผ์น์ฐ์ฐ์์ ์ฐจ์ด ๊ฐ๋จํ ํ ์คํธ ๐ JavaScript์์ ๋๋ฑ์ฐ์ฐ์(==, !=)๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ ์๋์ผ๋ก ํ๋ณํ์ ํด์ ๋น๊ตํ๊ธฐ ๋๋ฌธ์ ๊ฐ๋ง ๋ง์ผ๋ฉด ๋ง๋ค๊ณ ํ๊ณ ์ผ์น์ฐ์ฐ์(===, !==)๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ ๊ฐ๊ณผ ํ์ ๊น์ง ๋น๊ต๋ฅผ ํ๋ค. ๋์์์ ๋ณด๋ฉด ๋ณ์ one์๋ ์ ์ 1์ด ๋ค์ด ์๊ณ ๋ณ์ two์๋ ๋ฌธ์์ด '1'์ด ๋ค์ด ์๋๋ฐ ==๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ true๊ฐ ๋์ค๊ณ ===์ธ ๊ฒฝ์ฐ๋ false๊ฐ return๋๋๊ฒ ํ์ธ ๋์๋ค. ์ ํํ ๋น๊ต๋ฅผ ์ํด์ ์ผ์น์ฐ์ฐ์๋ฅผ ์ฐ๋๋ก ํ์.(๋น๊ต ์ฐ์ฐ์ ๋๋ฌธ์ ์ฝ์งํ ๋ฏธ๋์ ๋์๊ฒ ํ๋ ๋ง) IT/development 2023. 7. 24. [Vue.js] ajax๋ก ๋ฐ์ดํฐ ์กฐํ ์์ (feat. axios) Vue.js์์ ajax๋ก ์๋ฒ์์ ๋ฐ์ดํฐ ๋ฐ์์์ ํ ์ด๋ธ์ ๋ฟ๋ฆฌ๋ ๊ฐ๋จํ ์์ cli ํ๊ฒฝ ๊ธฐ๋ฐ์ด๋ผ npm install๋ก vue.js cli๋ฅผ ์ค์นํด์ผ ํจ(๋ฏธ๋ฆฌ ์ค์นํ ์ํ๋ผ ๋์์์๋ ์ค์น๊ณผ์ ๋๋ฝ๋จ) npm install -g @vue/cli cli ์ค์น ํ vue create ํ๋ก์ ํธ๋ช ์ผ๋ก cli ๊ธฐ๋ฐ vue ํ๋ก์ ํธ ์์ฑ vue create vue-test1(์์ฑํ ํ๋ก์ ํธ๋ช ) ์๋ ๋ช ๋ น์ด๋ก node.js ๋ฐํ์์ ์คํํด์ ํ์ด์ง๋ฅผ ๋์ npm run serve ํ์ด์ง๋ฅผ ๋์ด ์๊ฐ๋ถํฐ vue.js๋ ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋๋ ์๊ฐ ์ค์๊ฐ์ผ๋ก ๋ฐ์ํ๋ค. mounted(DOM ๊ทธ๋ฆฐ ๋ค์ ์คํ๋๋ ํจ์) ๋ถ๋ถ์ console.log() ์ฐ์ด๋ณด๋ฉด ๋ ๋๋ง์ ๋ค์ ํ๋๊ฒ ๋ณด์ธ๋ค. (์ด๋๋ React์ฒ๋ผ ๊ฐ์ DO.. IT/development 2023. 7. 23. [ChatGPT] ChatGPT ๊ณ ๋ง๋ค. IT/development 2023. 7. 22. [React.js] state ์ฌ์ฉ๋ฒ state ๐ constructor(props)๋ฅผ ํตํด์ ์ด๊ธฐํ, ๋ณ๊ฒฝ ๊ฐ๋ฅ constructor() {} ์์์ ๋ฐ๋์ super(props)๋ฅผ ํตํด ๋ถ๋ชจ ์ปดํฌ๋ํธ์ ์์ฑ์๋ฅผ ํธ์ถํด์ผํ๋ค. ์ํ๋ฉด ์๋ฌ ๋ฐ์ ๋ ๋๋ง ์ดํ ๊ฐ ์์ ํ๋ ค๋ฉด this.state = "๋ณ๊ฒฝํ ๊ฐ" ์ด๋ ๊ฒ ์ฌ์ฉํ๋ฉด ์ ๋ ์๋๊ณ setState() ํจ์๋ฅผ ์ด์ฉํด ์์ ์์์ ๋ง๋ Counter Component์ constructor()๋ฅผ ์ด์ฉํด์ ๋ฐ์ดํฐ ์ด๊ธฐํ, super(props)๋ฅผ ํตํด์ ๋ถ๋ชจ ์ปดํฌ๋ํธ์ ์์ฑ์๋ฅผ ํธ์ถํ ๋ค์ this.state = {...}์ ์ด๊ธฐํํ ๊ฐ์ฒด๋ฅผ ์ ์ธ ๊ทธ๋ฆฌ๊ณ ํธ๋ค๋ฌ์์ this๊ฐ ๋ฌด์์ ๋ํ๋ด๋์ง ์ ์ ์๋๋ก ์์ฑ์์์ ์๋์ฒ๋ผ change ๋ฉ์๋๋ฅผ ํ์ฌ ์ปดํฌ๋ํธ๋ฅผ ๋ฐ์ธ๋ฉํ ํจ์๋ก ์์ ํด์ผ ํจ.. IT/development 2023. 7. 13. [html] button์ type์ ๋ช ์ํ์(feat. default submit) ๋ชฉ์ฐจ ajax๋ก ํ์ด์ง์ ๊ตฌํ ํ๋๋ฐ ํ์ด์ง ์ด๋์ด ๋์๋ค๊ฐ ๋ค์ ๊ฐ์ ํ์ด์ง๊ฐ ํธ์ถ์ด ๋์๋ค. ์ฝ์ ๋ณด๋ฉด 2ํ์ด์ง ๋ฐ์ดํฐ๋ฅผ ์ ์์ ์ผ๋ก ๊ฐ์ ธ์๋ค๊ฐ ๋ค์ 1ํ์ด์ง๊ฐ ํธ์ถ์ด ๋๊ณ ์๋ค. ๊ฐ๋จํ ์์ธ ์ด์๋๋ฐ ๊ฝค ๋ง์ ์๊ฐ ์ฝ์ง ๋์ ๋์ค์ ๋ค์ ๋ด์ผ์ง ํ๊ณ ๋์ด ๊ฐ์๋ค๊ฐ ๋ค์ ๋ด์ ํด๊ฒฐ ํ๋ค. before source ๐ /** * ํ์ด์ง๋ค์ด์ ์ ๊ทธ๋ฆฐ๋ค. * @param paging */ function drawPagination(paging) { let pageHtml = ""; pageHtml += ""; //first const first = parseInt(paging.firstPage); pageHtml += ""; if (paging.currentPage === paging.firstPage) {.. IT/development 2023. 7. 9. [dbeaver] dbeaver DDL, DML ์์ฑ dbeaver๋ฅผ ์ด์ฉํด์ DDL, DML ์ถ์ถ ๋ฐฉ๋ฒ IT/development 2023. 7. 8. ์ด์ 1 ยทยทยท 6 7 8 9 10 11 12 ยทยทยท 22 ๋ค์