본문 바로가기

FRONT24

Proxy 💡 내 공부를 위한 Proxy 정리 글이다. 프록시란 무엇인가? 나는 Vue.js를 주로 작업하는 프론트 개발자이다. Vue.js에서 객체를 콘솔로 찍을 때 순수하게 객체가 아닌 Proxy로 만들어진 값들을 마주할 때가 있다. Proxy는 왜 쓰고? 어떻게 쓰는가? 이것에 대한 글이다. Why use it? 대체 왜 프록시를 쓰는가? 프록시에 공부해보니 데이터가 변환되거나 읽어지거나 여러 경우에 프록시 트랩을 통해 제공하는 기능에서 유효성 처리나 변화를 감지할 때 사용 가능하다. 내가 실무에서 프록시를 써야하는 경우라면 어떻게 쓰겠는가? 객체를 set 해야 하는 경우 유효성 처리라던지 get 해야 하는데 객체 내에 값이 없을 경우 default 값을 처리해줘야 한다던지 주요 데이터를 처리할 때 프록시를 .. 2024. 3. 8.
Curry pattern 커리 패턴의 가장 중요한 쓰임새는 partially(부분적인) 쓰임이 가능한 패턴이다. **lodash 라이브러리(_.curry)**를 사용하면 편하게 쓰긴 하지만 구현한다고 해서 힘들지 않다. 기본 구현 방법 function curry(f) { return function(a) { return function(b) { return function(c) { return f(a, b, c) } } } } function sum(a,b) { return a + b } const curried = curry(sum) curried(1)(2) // 3 function sum(a,b) { return a + b } const curried = _.curry(sum) curried(1,2) // 3 일반적인 호출 .. 2024. 3. 6.
리액트 라이프 사이클 💡 React@17 부터 `componentWillMount`, `componentWillUpdate`, `componentWillReceiveProps`는 deprecated 되었다. Mount 컴포넌트가 DOM에 붙는 과정. context, defaultProps, state 저장 componentWillMount 메소드 호출 [react@17 deprecated] render메소드로 컴포넌트 DOM에 부착 (여기까지도 마운트 중에 속함) 마운트 완료 지점에서 componentDidMount 메소드 호출 componentDidMount에서 DOM 접근 가능 이 시점에 비동기요청 또는 setTimeout, setInterval 실행 Props Update props가 변경될 때의 과정. 업데이트 발생 .. 2022. 10. 14.
자바스크립트 (기초편) 자바스크립트 쌩기초를 벗어난 당신 대단해. 👏👏👏👏👏 자바스크립트를 알기 전에 알아야 할 몇가지가 있다. 기초 지식 👇👇👇 프로세스 (Process) 사용자가 작성한 프로그램이 메모리 공간을 할당 받아 실행 중인 프로그램 단위를 뜻한다. 프로세스는 프로그램에서 사용되는 데이터, 메모리 등의 자원 + 스레드로 구성 된다. 스레드 (Thread) 스레드란 실제로 작업을 수행하는 주체를 뜻한다. 모든 프로세스에는 한 개 이상의 스레드가 존재하며 수행한다. 한개의 스레드는 싱글 스레드, 두개 이상의 스레드를 가지는 프로세스를 멀티 스레드 프로세스라고 칭한다. 동기, 비동기 동기란 ‘동시에 일어나는’ / 비동기란 ‘동시에 일어나지 않는' 을 뜻한다. 동기적이란 뜻은 쉽게 표한하자면 이렇다. 나는 A사이트에 들어간.. 2022. 4. 29.
자바스크립트 (쌩기초편🤷🏻‍♀️) 바닐라 자바스크립트 성능 (속도) 비교 자바스크립트란 무엇일까? 이 페이지는 이것에 대한 간단한 소개이다. 초심자 중에도 초초초초초초심자 문서이기 때문에 가볍게 넘어갈 수 있다. 대체 자바스크립트란 무엇인가? 그리고 바닐라JS란 무엇인가? 제이쿼리는 무엇이지? 정말 아무것도 모르는 사람들은 이렇게 궁금해 할 것 이다. 자바스크립트 그것이 궁금해! 자바스크립트는 웹 브라우저에서 주로 사용되는 객체 기반의 스크립트 언어이다. (오잉 함수기반 아닌가?) JAVASCRIPT ? JAVA ? 그거 같은거 아냐? 간단히 말하자면 같은거 아니다. 자바스크립트 왜 만들었나? 자바스크립트의 등장 계기는 다음과 같다. 옛날 옛적에.. 네스케이프사에서 만든 ‘네비게이터’라는 웹 브라우저가 시장을 지배했던 때가 있다. 이때 .. 2022. 4. 29.
기본 타입 정리 오랜만에 다시 정리 포스팅 시작! 이란 말은 공부를 다시 시작했다는 뜻입니다. 요즘 프론트엔드 기술에 기본으로 많이 보이는 타입스크립트를 느즈막히 시작해봅니다. 나란 인간은 기본 정의부터 보고 시작하는 타입이라 기본 타입부터 정리해봅니다. Boolean (true/false) let name: boolean = true; String let name1: string = 'I am Jeon'; let name2: string = `Jeon`; let name3: string = `I am ${ name2 }`; Number let name: Number = 333; Array 방법1. 배열 요소 타입 뒤에 []를 쓰는 것 let array1: number[] = [1, 2, 3]; 방법2. 제네릭 배열 타.. 2022. 2. 14.
데이터 전달 방식 Vue.js에서 기본으로 제공하는 데이터 전달 방식으로 두개를 꼽아 생각할 수 있다. 하나는 부모에서 자식으로 전달하는 방식인 Props와 자식에서 부모로 전달하는 Emit이다. 이 문서는 이를 정리하는 문서이다. Props (부모에서 자식) props 속성을 통해 부모 컴포넌트가 가진 데이터를 자식 컴포넌트로 전달해준다. 코드 /* 부모 컴포넌트 */ var parentComponent = { template: '#parentComponent', data: function() { return { age: '30', name: 'Jeon' } } } /* 자식 컴포넌트 */ 내 이름은 {{ name }} 이다. 내 나이는 {{ age }}이다. var childComponent = { template: .. 2021. 9. 8.
SPA(single page application)의 GA 적용기 (google analytics) Vue.js 를 통해서 SPA의 형태로 만든 사이트에 GTM(google tag manager)을 설치해달라는 요청이 들어왔다. 스크립트 코드가 메일로 전달 됐기 때문에 아무 생각없이 /public/index.html 에 추가하면 될거라 생각했던건 경기도 오산시였다. 처음엔 위에 방법으로 추가한 후에 배포를 했다. 그러나 GA가 활성화가 안된다는 연락이 온 것이다. 그래서 찾아보니 Vue.js에서는 vue-gtag 를 쓰는것을 확인했다. [공식] Get started vue-gtag documentation page matteo-gabriele.gitbook.io 설치 방법 npm install --save vue-gtag // 공식click // main.js import VueGtag from 'vu.. 2021. 7. 29.
Vue에서 상태관리란? Vuex로 정리하기 공식 : https://vuex.vuejs.org/kr/ 이번엔 Vue에서 상태관리를 어떻게 할 것인가에 대해 정리해본다. 공부의 순서는 이러했다. 내가 봤을때 vue를 처음부터 끝까지 작은 프로젝트를 해보면서.. 삽질도 해보면서.. 정리가 잡힌거같다. 만약 뷰를 처음 공부하는 사람이 있다면 나는 이 순서대로 공부해보라고 말해주고 싶다. 꼬리물기처럼 하다보면 필요한 기능들이 보이고 그게 결국 도달하는 점을 말해주는 것 같다. vue-cli를 통해 프로젝트 생성 후, 처음 한 페이지의 기본적인 레이아웃을 짰다. 그러다보니 Vue에서 페이지 이동시 각 페이지에 맞게 불러오는 기능이 필요해졌다. 그게 vue-router 이다. 뷰-라우터 설치 후, 아무래도 SPA로 만들어진 사이트에서 SEO가 필요할 것으로 .. 2021. 7. 27.