728x90
반응형
SMALL

프론트엔드 17

[React] useRef는 언제 왜 사용할까? 무한루프 해결방법

useRef useRef는 함수형 컴포넌트 내에서 사용하며 React Hooks 중에 하나이다. 사용법 useRef를 사용하기 위해선 먼저 다음과 같이 import를 해주어야 useRef 사용이 가능하다. import { useRef } from 'react'; 이렇게 import 된 useRef는 코드에서 다음과 같이 사용된다. const ref = useRef(value); 이때 ref 에는 객체가 반환되게 되는데 그때 반환된 객체는 다음과 같이 생겼다. { current: value } 다음과 같이 useRef의 인자로 넣어준 초기값은 ref 객체 내의 current에 저장되게 된다. 또한 ref 객체는 언제든지 수정이 가능하여 원하는 값으로 바꿔줄 수 있다. const ref = useRef("v..

[JavaScript] Redux 사용법

Redux란? Redux는 JavaScript 상태 관리 라이브러리라 JavaScript든 React든 잘 어울린다. 초기 설정 JavaScript에서 Redux를 사용하려면 따로 설정할 게 없다. React에서 Redux를 사용하려면 index.js에 App.js를 Provider 컴포넌트로 감싸 앱의 다른 컴포넌트에서 store를 사용할 수 있도록 해야한다. import { Provider } from "react-redux"; import store from "./store"; // state가 저장되어 있는 store 파일 위치 ReactDOM.render( , document.getElementById("root") ); 메소드 useSelector() : state 데이터 읽기 useSelec..

[TypeScript] type와 interface의 차이, class

Class 추상(abstract) 클래스 오직 다른 클래스가 상속받을 수 있는 클래스이지만 직접 새로운 인스턴스를 만들 수는 없다. 추상(abstract) 메소드 추상 클래스 내에서는 메소드를 적지 않고 call signature만 작성해야한다. 추상 클래스를 상속받는 클래스들이 반드시 구현(implement)해야하는 메소드이다. 접근 가능한 위치 private : 해당 클래스 내에서만 접근 가능, 자식 클래스에서도 접근 불가 protected : 해당 클래스와 자식 클래스에서 접근 가능 public : 기본값, 모든 클래스에서 접근 가능 상속 방법 : extends abstract class User{ constructor( private firstname : string, private lastnam..

[TypeScript] call signatures, 오버로딩, 다형성, 제네릭

호출 시그니처(Call Signatures) 프로퍼티로 호출 가능한 것을 설명하려면 객체 타입에 Call Signature을 작성할 수 있다. Call Signatures는 다음과 같이 함수의 매개 변수(parameter)와 반환 타입을 지정하여 이 함수가 어떻게 호출되는지 설명해주는 부분을 말한다. const add = (a : number, b : number) => a + b; // 위의 코드에서 a와 b의 타입 지정을 하고 싶지 않다면 call signature 타입을 만들어 사용 // call signature 타입 사용 후 type Add = (a : number, b : number) => number; // call signature const add : Add = (a, b) => a +..

[TypeScript] 타입스크립트의 타입 별칭(type alias)

type 특정 값이나 객체의 값에 대한 타입을 지정해줄 수 있다. 특징 Type alias(타입에 대한 별명)를 만들어줄 수 있다. 타입을 특정한 값을 가지도록 제한할 수 있다. 타입 별칭(Type Alias) object의 타입을 명시적으로 정해주는 방법이며 type 키워드를 사용해서 타입에 이름을 설정해서 사용한다. // Alias 사용 전 const player : { name: string, age?: number } = { name: "name" } // Alias 사용 후 type Age = number; type Player = { name: string, age?: Age } const player : Player = { name: "name", } 아래는 함수에서 return 타입을 지정..

[TypeScript] 타입스크립트는 왜 좋은 프로그래밍 언어일까?

Typescript 를 쓰는 이유 Javascript는 개발자가 실수를 피할 수 있도록 만들어져 있지 않다. “[] + true”와 같은 말도 안되는 코드를 작성해도 Javascript에선 실행 가능 함수를 실행할 때 필요한 argument의 개수가 달라도 Javascript에선 실행 가능 객체 안에 존재하지 않는 함수를 호출 가능 ⇒ 코드가 실행되고 나서야 에러 메시지 확인 가능해서 사용자에게 에러 메시지를 보여줄 수 있기 때문에 코드 실행 전에 이런 에러를 잡기 위해 Typescript를 사용한다. 어떻게 Typescript가 에러를 발생시킬까? Typescript는 프로그래밍 언어로서 브라우저는 Typescript가 아닌 Javascript를 이해하기 때문에 Typescript로 작성한 코드가 Ja..

[프론트엔드] 호이스팅(Hoisting) 이란?

호이스팅이란? 호이스팅은 코드를 실행하기 전 변수선언/함수선언을 해당 스코프의 최상단으로 끌어올리는 것이 아닌 끌어올려진 것 같은 현상을 말한다. 잘 이해가 안된다면 다음의 예제를 보자. console.log(a); // undefined var a = "A"; // var 변수 위와 같은 코드를 호이스팅을 한 코드로 보면 아래와 같다. var a; // 초기화 console.log(a); // 호출 a = "A"; // 선언 변수 호이스팅을 알아보기 전, 변수 생성 단계를 알아보자. 변수 생성 단계 변수는 3단계에 걸쳐 생성된다. 1단계: 선언 단계(Declaration phase) 변수를 실행 컨텍스트의 변수 객체에 등록한다. 이 변수 객체는 스코프가 참조하는 대상이 된다. 2단계: 초기화 단계(In..

728x90
반응형
LIST