์ ์ฒด ๊ธ179 ๋ธ๋ก๊ทธ ์ด๋ํฉ๋๋ค. Home | Rocky's Blog 2026. 7. 30. ์์ด๋ก ๋ด ์ฝ๋๋ฅผ ์ค๋ช ํ ์ ์๋๊ฐ? https://www.youtube.com/live/fBlf_vml5w4?feature=shared ์ต๊ทผ ๋ฐฐ๋ฏผ ์ ํ๋ธ ์ฑ๋์ ์ค๋ฌด ์์ด์ ๊ด๋ จํ ๋ผ์ด๋ธ๊ฐ ์์๋ค. ์ค๊ฐ ๋ถ๋ถ๋ถํฐ๋ ๋๋ฌด ๋ํ ์ผํ ๋ด์ฉ๋ค์ด๋ผ ์คํตํ์๊ณ ๊ฐ์ฐ์๊ฐ ์์ด๋ฅผ ๊ณต๋ถํ๊ฒ๋ ๋๊ธฐ์ ๊ณต๋ถ๋ฒ์ ๋ํ ์ค๋ช ์ ์์ฃผ๋ก ๋ณด์๋ค. ๊ฐ์ฐ์๋ ๊ตฐ๋์์๋ถํฐ ์์ด๋ฅผ ์์ฒญ ์ด์ฌํ ๊ณต๋ถํ์๋ค๊ณ ํ๋ค. IT์ ์ฃผ๋ฅ๋ ๋๊ฐ ๋ญ๋๋ ์ค๋ฆฌ์ฝ ๋ฐธ๋ฆฌ์ด๋ฉฐ ์ค๋ฆฌ์ฝ ๋ฐธ๋ฆฌ๋ฅผ ๋์ด์ค ์ง์ญ์ ๋น๋ถ๊ฐ ์์ ๊ฒ๊ฐ๋ค. ๋ฐ๋ผ์ ๋ชจ๋ ๊ฒ์ด ์์ด๊ฐ ๊ธฐ๋ฐ์ด๋ฉฐ ์์ด๋ก ๋ ํ์ค ๋ฌธ์, git, stackoverflow ์ ์ปค๋ฎค๋ํฐ๋ค์ด ๊ธฐ๋ณธ์ด ๋์๋ค. ๊ฐ๋ฐ ๋ถ์ผ์์ ํ๊ธ์ ์ฐ๋ ์ฌ๋์ด ์ผ๋ง๋ ๋ ๊น? ๊ฐ์ฐ ๊ธฐ์ค์ผ๋ก๋ 3%, 4%๋์ด๋ค. ๊ตฌ๊ธ๋ง์์๋ ์์ด๋ก ๊ฒ์ํ์ ๋์ ํ๊ธ๋ก ๊ฒ์ํ์ ๋์ ๊ฒฐ๊ณผ ๊ฐฏ์,.. 2024. 2. 26. firestore rules ์ ๋ฐ์ดํธ๊ฐ ๊ณ์ ์๋ณต๋๋ ๋ฌธ์ (+ํด๊ฒฐ) test ๋ชจ๋๋ก ์์ฑ์ ํ๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ ์ง๊ฐ ํ๋ฌ ๋ค๋ก ์ค์ ๋์ด์์๋ค. rules_version = '2'; service cloud.firestore { match /databases/{database}/documents { match /{document=**} { allow read, write: if request.time < timestamp.date(2023, 11, 26); } } } ๊ทธ๋์ read๋ ๋ชจ๋๊ฐ ๊ฐ๋ฅํ๊ณ , write๋ ์ธ์ฆ๋ ์ฌ์ฉ์๋ง ๊ฐ๋ฅํ๋๋ก ๋ฐ๊พธ์๋ค. rules_version = '2'; service cloud.firestore { match /databases/{database}/documents { match /{document=**} { allow read:.. 2023. 11. 30. vue Toast Viewer์ data๊ฐ ์ ๋์ด๊ฐ๋ค.(+ํด๊ฒฐ) ๋ผ์ฐํฐ params๋ก ๋์ด์ค๋ id๋ฅผ ์ด์ฉํด firestore์์ ๋ํ๋จผํธ๋ฅผ ์ฝ์ด์จ ํ, template ํ๊ทธ ์์ ๋ณ์๋ค์ ๊ฐ์ ๋ฃ๊ณ ToastViewer ์ปดํฌ๋ํธ์๋ ๋ฐ์ดํฐ๋ฅผ ๋๊ธฐ๋ ค ํ์ผ๋ ๊ณ์ํด์ ToastViewer props์์๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ค์ง ๋ชปํ๋ค. {{ title }} {{ dt }} import TuiViewer from "./Editor/ToastViewer.vue"; import {getDocument} from "../firestore.js" export default { components: { TuiViewer, }, data(){ return{ title: '', dt: '', content: '', } }, async mounted() { const id = this.$r.. 2023. 11. 12. vue2, vue3 ์ฐจ์ด์ Options API VS. Composition API ์๋๋ vue2์ vue3์ ์ํ์ฝ๋๋ค. vue2 ์ํ ์ฝ๋ (Options API) {{ message }} Change Message vue3 ์ํ์ฝ๋ (Composition API) {{ message }} Change Message Options API์ Composition API ๊ฐ ๋๋์ฒด ๋ญ๊น? ์ ์๋ฅผ ์ฝ์ด๋ดค์๋ ๋ฑํ ์๋ฟ๋ ์ค๋ช ๋ค์ด ํฌ๊ฒ ์์๋ค. ๊ทธ๋์ ์ฐจ์ด์ ์ ํ๋ฒ ์ ๋ฆฌํด๋ณด์. Options API Composition API ๊ตฌ์ฑ ๊ฐ์ฒด ์ค์ฌ์ ์ ๊ทผ๋ฐฉ๋ฒ data, methods, computed ๋ฑ์ ์ต์ ๋ฑ์ ํตํ์ฌ ์ปดํฌ๋ํธ๋ฅผ ๊ตฌ์ฑํ๋ค. ํจ์ ์ค์ฌ์ ์ ๊ทผ. data ์ต์ ๋์ ๋ฐ๋ก ๋ณ์๋ฅผ return{}ํ๋ค. methods๋์ ๋ฐ๋ก ํจ์๋ฅผ ์ ์ธํ๊ณ mounted ์ต์ ๋์ onMounte.. 2023. 11. 9. vue.js ๋ผ์ฐํฐ ๋งํฌ์ ๋ฐ๋ผ ๋ณํ๋ ์ปดํฌ๋ํธ ์ ํ์ ๋ณด ํ์ด์ง๋ฅผ ๋ง๋๋ ์ค์ด๋ค. ์ปดํฌ๋ํธ ์์ router-link :to="/guide/notice" router-link :to="/guide/qna" ๋ฑ์ ๋งํฌ๋ฅผ ๊ฑธ์ด๋์ผ๋ฉด Guide๋ผ๋ ์ปดํฌ๋ํธ๋ฅผ ๋ถ๋ฌ์ค๊ฒ ๋๋๋ฐ Guide ๋ผ๋ ์ปดํฌ๋ํธ ์์ ์ฌ๋ฌ ์ปดํฌ๋ํธ๋ค์ import ํด๋๊ณ $router.params์ ๊ฐ์ ์ฝ์ด ํ๋จ ์์ญ์ ์ถ๋ ฅํ๊ฒ ๋๋ค. ์ฒ์์ div ํ๊ทธ์ v-if๋ฅผ ๊ฑธ์ด์ $router.params.board === "notice" ์์ผ๋ก ์กฐ๊ฑด๋ฌธ์ ๊ฑธ์ด์ผ ํ๋. ์กฐ๊ฑด๋ฌธ์ ํจ์๋ก ๋ง๋ค์ด์ผ ํ๋ ํ๋ค๊ฐ ์์ฒญ ์ฌํํ ๋ฐฉ๋ฒ์ ์ฐพ๊ฒ๋๋ค. 1. data()์ ๋ณ์ ์ ์ธ - selectedComponent๋ $router.params.board ๊ฐ์ด ์์ผ๋ฉด ๊ทธ ๊ฐ์ด set ๋๊ณ , ์๋๋ผ๋ฉด ๋ณด์ฌ์ค.. 2023. 10. 27. vue.js ๋ผ์ฐํฐ ํ๋ผ๋ฏธํฐ ๊ฐ ์ฝ๊ธฐ null ์๋ฌ router-link to="/xxxx/detail"๋ก ์์ฑํ, ๋ฐ๋ ์ปดํฌ๋ํธ์์ this.$router.params.detail๋ก ์ฝ์ผ๋ ๊ณ์ ์ฝํ์ง๊ฐ ์์๋ค. Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'detail') router.js๋ ์ ๋๋ก ์ ํ ์ ํ๋๋ฐ ์ ์๋๋ ํ๋ค๊ฐ ๋ธ๋ก๊ทธ๊ธ์ ์ฝ๊ณ ๋์ this.$route.params.detail๋ก ์ฝ์ผ๋ ์ ์ฝํ๋๋ผ. ๊ทธ๋์ chat gpt์๊ฒ ์ฐจ์ด๊ฐ ๋ญ์ง ๋ฌผ์ด๋ดค๋ค. Q: what is different this.$router.params.~~ and this.$route.params? A: this.$route.params: This is the corr.. 2023. 10. 25. [ETF ์ฑ 20๊ฐ ์ฝ๊ธฐ] ์ด๋ ๊ฒ ์ฌ์ด๋ฐ ์ ETF ํฌ์๋ฅผ ํ์ง ์์๊น? ์ฐ๋ฆฌ ๊ฐ์ ์ ์ฌํ ํฌ ์๋จ์ ํ์ฌ ์ฃผ์๊ณผ ETF๋ค. 2021๋ ๊ณ ์ ์ผ ๋ ์ฌ์ ์ฌ์ ํ ๋ง์ด๋์ค๋ฅผ ๋ฒ์ด๋์ง ๋ชปํ๊ณ ์๋ค. ์ต๊ทผ์ ์ญํ์๋ ์ฑ ์ ์ฝ์ผ๋ฉด์ ๋ด๊ฐ ํ ๋ถ์ผ์ ๋ํด์ ์ ๋๋ก ์๊ณ ์ฑ๊ณตํ๊ณ ์ ํ๋ค๋ฉด ์ฐ์ ๊ทธ ๋ถ์ผ์ ๊ด๋ จ๋ ์ฑ 20๊ถ์ ์ฝ์ด๋ ๋ง์ด ์๋๋ผ. ๊ทธ๋์ ์ด์์ด๋ฉด ํ์ฌ ์ฐ๋ฆฌ ๊ฐ์กฑ์ ์์ฐ์ ์ข๋จน๊ณ ์๋ ํฌ์์ ๋ํด ๊ณต๋ถํด๋ณด๊ธฐ๋ก ํ๋ค. ์ฒซ๋ฒ์งธ๋ก ETF๋ค. ETF๋ฅผ ๊ณ ๋ฅด๋ ๊ธฐ์ค 1. ์์๋ฃ ๊ฐ ์์ฐ์ด์ฉ์ฌ๋ค๋ง๋ค KOSPI 200์ ๋ํ ETF ์ํ๋ค์ด ์ฌ๋ฟ์๋ค. ๊ทธ๋ฐ๋ฐ ๊ทธ ์ด์ฉ์ฌ๋ค๋ง๋ค ์์๋ฃ๊ฐ ๋ค๋ค ๋ค๋ฅด๋ค. ์ผ์ฑ์์ฐ์ด์ฉ๊ณผ ๋ฏธ๋์์ ์์ฐ์ด์ฉ๋ง ํด๋ 3๋ฐฐ๊ฐ ์ฐจ์ด๊ฐ ๋๋๋ฐ, kbstar์๋ 8๋ฐฐ๊น์ง ์ฐจ์ด๊ฐ ๋๋ค. ๊ตด๋ฆฌ๋ ๊ธ์ก์ด ์ ์ผ๋ฉด ์์๋ฃ๊ฐ ๋ณ ์ ๊ฒฝ์ฐ์ด์ง ์๊ฒ ์ง๋ง ๊ธ์ก์ด ์ปค์ง์๋ก ์์๋ฃ์ ๋ํ ๊ณ ๋ฏผ์ ํด์ผ.. 2023. 10. 17. ๊ณต์ ํ ๊ฒ์์ด ๊ทธ๋์ ๋๋์ฒด ๋ญ๋ฐ https://yonglimlee.tistory.com/entry/๊ฒฐํผ-์ํ์-ํ์ดํ๋ ์ด๋ ๊ฒฐํผ ์ํ์ ํ์ดํ๋ ์ด๋ ์์ฆ๋ฐ๋ผ ๋จํธ์๊ฒ ํ๋ฅผ ๋ด๊ณ ์ถ๊ณ ์ง์ฆ์ ๋ด๊ณ ์ถ๊ณ , ์ต์ธํ ๋ง์์ด ์ธ์ปฅ์ธ์ปฅ ๋ค์๋ค. ๊ทธ๋ฐ ๋ง์์ด ๋๋๊ฒ์ ์ต๋๋ฌ ์ฐธ์์ค๋ค ๋ช๋ฒ ์ด์ผ๊ธฐํ๊ณ ๋๋ ๊ธฐ๋ถ์ด ๋ ๋์์ง์ง๋ ์์๊ณ ๊ด์๋ฆฌ ๋ด๊ฐ yonglimlee.tistory.com ์ง๋ ๊ธ์ ์ด์ด ์ ๋ฆฌ๋ฅผ ๋ง์ ํ๋ค. PART2. ํ์ด ํ๋ ์ด ํ๋ก์ ํธ์ 4๊ฐ์ง ๊ท์น ๋จํธ์ ์๊ฐ vs ์๋ด์ ์๊ฐ 500๋ช ๊ฐ๋์ ์ฌ๋๋ค์ ์ธํฐ๋ทฐํ๋ฉด์ ๋จ์์ ์๊ฐ์ ์ ํํ๊ณ ์ฌ์์ ์๊ฐ์ ๋ฌดํํ๋ค๊ณ ์ฐฉ๊ฐ์ ๋น ์ง ์ฌ๋๋ค์ด ์์ธ๋ก ๋ง์๋ค. ๋จ์๋ค์ ์๊ฐ์ ๋ค์ด์๋ชฌ๋์ฒ๋ผ ํ์ ๋ ์์์ผ๋ก ๋ณดํธ๋ฐ๊ณ , ์ฌ์๋ค์ ์๊ฐ์ ๋ชจ๋์์ฒ๋ผ ๋จ์ ๋๋จ๋ ์์ ๋ชจ์๋ ์๊ฐ์ ์์ด๊ฐ ์๊ธด ๋ค์ .. 2023. 10. 16. ์ด์ 1 2 3 4 ยทยทยท 20 ๋ค์