반응형
타입스크립트란? 자바스크립트의 Superset(확대 집합)입니다. 자바스크립트의 장점과 새로운 기능들이 추가되었습니다. 타입스크립트는 파일을 컴파일해서 자바스크립트 코드로 만듭니다. 컴파일하는 과정에 새로운 구문과 더 나은 방법을 활용할 수 있게 합니다. 타입스크립트의 경우에 C언어, Java와 같은 정적 타입 언어와 Javascript의 동적 타입 언어의 장점을 모두 가지고 있습니다. 모든 변수에 타입을 지정하지 않아도 되지 않고, 필요한 곳에서만 타입을 지정하면 되는 점진적 타입 언어 입니다. 타입스크립트 장점 브라우저 런타임이 아니라 컴파일 시점에서 오류 파악 가능합니다. 자바스크립트 코드에서는 아래와 같이 예측하지 못한 버그가 발생할 수 있습니다. function add(num1, num2) { ..
Vue3에서 가장 중요한 개념인 Composition API 가 새로 추가되었습니다. Vue2에서는Options API 방식을 이용해서 스크립트를 구성하였습니다. 하지만, Options API에 단점과 한계가 있어서 새로운 개념이 도입되었습니다. 기존과 완전히 다른 방법은 아니고, 템플릿과 스타일링은 기존과 동일하고 스크립트를 구성하는 방법이 조금 달라졌습니다. 물론, 기존 Options API 방법도 Vue3에서 사용이 가능합니다. Options API 방식 Options API의 단점 1. Options 속성에 따라서 로직이 분리가 됩니다. data, method, computed 등 다양한 Options 속성이 있습니다. 컴포넌트 내에는 다양한 기능들이 있지만, 기능들로 분리되지 않고 해당 옵션으로..
Vue에서 자식 컴포넌트에게 데이터를 전달할때, props 속성을 사용합니다. Vue 부모➡️자식 / 자식➡️부모 데이터 전달하기 Vue에서 부모에서 자식으로 데이터 전달, 반대로 자식에서 부모로 데이터 전달이 가능합니다. 부모에서 자식으로 데이터 전달은 props를 이용해서 전달하고, 자식에서 부모 데이터 전달은 $emit을 powerku.tistory.com 프로그램을 개발하다 보면 자식에게 전달한 데이터를 변경하고 싶을 때가 발생하는데요. 자식 컴포넌트에서 props를 직정 변경하게 되면 오류가 발생합니다. Uncaught TypeError: 'set' on proxy: trap returned falsish for property 'msg' props로 전달한 데이터를 변경하는 방법에 대하여 Vu..
Nuxt에서 데이터를 가져오는 방법이 두 가지 있습니다. asyncData fetch Nuxt에서 클라이언트 사이드 방식이 mounted()를 통해서 데이터를 호출할 수는 방식을 지원하긴 합니다. 하지만 서버 측에서 데이터를 렌더링 하는 앱을 만들기 위해서는 위 두 가지 훅을 사용해야 합니다. asyncData 페이지 내에서만 사용 가능 비동기적으로 생성되는 데이터일 때 사용 생성한 데이터는 data()로 생성한 데이터와 병합 data()와 차이 없음 단지 동기 / 비동기 차이 this 사용 불가능 async asyncData({ params }) { const response = await fetch(`https://api.example.com/data/${params.id}`); const data ..
대한민국 해양 방사능 안전 정보 save-sea-fe.pages.dev 최근 일본의 후쿠시마 원전 오염수 방류에 관련해서 뉴스가 많이 나오고 있습니다. 오염수 방류에 대해서도 찬반 의견이 많습니다. 그래서 저도 관심을 가지고 보고 있는 중에 해양수산부에서 제공하는 대한민국 해양 방사능 안전 정보가 데이터가 있어서 지도로 만들어서 표시하였습니다. 해양수산부에서 가까운 바다와 먼바다에 대해서 방사능 물질에 대한 검사를 주기적으로 진행하고 있습니다. 삼중수소와 세슘 137과 같은 방사성 물질과 측정 수치 수준을 나타내는 자료를 Open API를 통해서 제공하고 있습니다. 현재 2023년 4월 조사된 데이터까지 제공하고 있습니다. 해당 방사성 물질의 수치가 있으면 좋겠는데 수치는 제공하지 않고, 상태만 나타나는..
Vue에서 v-if와 v-show 디렉티브가 있습니다. 디렉티브란 라이브러리에서 DOM 엘리먼트가 무언가를 수행하도록 지시하는 특수한 속성입니다. v-if v-show 공통점 두 가지 모두 조건에 따라서 화면에 렌더링 할 수 있는 디렉티브입니다. 차이점 v-if 는 조건이 참이면 렌더링을 하고 거짓이면 아무 동작을 하지 않습니다. v-show는 조건에 따라서 display 속성을 이용하여 보이거나, 숨깁니다. 성능 차이 v-if는 실제로 화면을 렌더링을하고, 다시 지우고 해서 토글 비용이 높습니다. 반면에 v-show는 초기에 화면을 렌더링 할 때 비용이 높습니다. 무언가를 자주 토글을 해야하는 경우에는 v-show를 사용하고, 조건이 자주 변경될 가능성이 낮은 경우에는 v-if를 사용하는 것이 좋습니다..
Nuxt 에서 modules와 buildModules 속성이 있습니다. modules Nuxt에서 모든 기능을 제공하면 매우 복잡하고 어려워서, 사용자가 프로젝트별로 모듈을 추가 할 수 있습니다. modules에서 정의한 모듈은 Nuxt가 부팅될때 순차적으로 실행이 됩니다. nuxt.config.js 에서 modules 옵션을 설정할 수 있습니다. export default defineNuxtConfig({ modules: [ // Simple usage '@nuxtjs/eslint-module', // With options ['@nuxtjs/eslint-module', { /* module options */ }] ] }) buildModules nuxt v2.9 이후로 buildModules 속성이..
개발 용어 중 보일러 플레이트라는 말이 있습니다. 이 코드는 보일러 플레이트로 관리해서 만들면 좋겠다 보일러 플레이트 단어 뜻과 어원 어떻게 사용되는지 알아보도록 하겠습니다. 보일러플레이트란? 프로그래밍 분야에서 사용하는 보일러 플레이트는 반복적으로 사용되는 코드 조각들을 재사용하는 패턴을 의미합니다. 프로그래밍 코드 이외에도 개발 초기 필수적으로 설정이나 구조들도 보일러 플레이트가 될 수 있습니다. 보일러 플레이트 코드를 재사용을 하면 개발자들이 비즈니스 로직에 더욱 집중할 수 있어서 프로젝트 작업 속도 향상에 도움이 됩니다. 보일러플레이트 어원 보일러를 만들때 강철에 보일러 이름과 정보를 동일하게 입력하는 틀에서 시작되었습니다. 이 단어가 프로그래밍 분야로 넘어오게 되었습니다. 보일러 플레이트 코드 ..
Minxin 란? Mixins는 Vue 컴포넌트에서 코드를 재사용할 수 있는 방법입니다. 언제 사용하면 좋을까? Vue 컴포넌트에서 HTML과 Style은 재사용이 가능합니다. 컴포넌트가 비슷한 로직을 가지고 있으면 Mixins를 사용하는 것이 좋습니다. 예를 들면, 회원 정보 List를 조회하는 컴포넌트(UserList)와 프로젝트 List를 조회하는 컴포넌트(ProjectList)가 있으면 컴포넌트 초기화 이후 데이터를 조회하고, List 컴포넌트를 만드는 로직이 비슷하다면 Mixins을 통해서 코드를 재사용하고, 중복 소스를 제거할 수 있습니다. 사용법 mixins 폴더를 생성하고 listMixin.js 파일을 생성합니다. listMixin.js export default { data(): { re..
안녕하세요. 지난 포스팅에서 Vuex가 무엇인지 언제 사용하는지에 대해서 알아보았습니다. Vuex 상태 관리 라이브러리 설치 방법 사용법 Vuex란? Vuex는 전역 상태(global state)를 관리하는 라이브러리입니다. 지역상태 vs 전역상태 상태는 Local State와 Global State가 있습니다. 지역 상태(local state) 전역 상태(global state) 하나의 컴포넌트에서 powerku.tistory.com 이번에는 Vuex를 더 나은 방법으로 사용하기 위해서 state, getter, mutations, actions에 대해서 알아보도록 하겠습니다. State, Getter, Mutations, Actions를 사용해야 하는 이유 methods: { addOne() { th..