[Typescript] 타입 확장/좁히기
·
Development/Typescript
이번 글에서는 Typescript의 타입 확장과 타입 좁히기에 대해 정리해보았습니다.  1. 타입 확장하기타입 확장은 기존 타입을 사용해 새로운 타입을 정의하는 것을 의미합니다. 타입 확장의 가장 큰 장점은 기존 타입을 바탕으로 타입을 확장함으로서 불필요한 코드 중복을 줄일 수 있다는 점입니다.   interface와 type 키워드로 정의된 타입은 extends, 교차 타입, 유니온 타입을 사용해 타입을 확장합니다. extends, 교차 타입, 유니온 타입 간의 차이를 파악하고 언제 사용하면 좋은지 정리해보았습니다.  1) extends extends를 활용하면 기존 타입을 확장해 새로운 타입을 정의할 수 있습니다. 아래 예시 코드를 살펴보겠습니다. 예시 코드// 기본 장바구니 아이템 타입interfa..
[웹 최적화] 브라우저 렌더링과 렌더링 최적화
·
Development/웹 최적화
이번 글에서는 브라우저 렌더링에 대해 자세히 알아보고, 렌더링 최적화 기법에 대해 정리해보았습니다.  0. 브라우저 렌더링브라우저 렌더링, 다양한 웹 리소스를 최적화 하는 방법을 이해하여 잘 읽힐 뿐 아니라 빠른 웹을 구현해야 합니다.마크업 작성 시, 불필요한 태그는 제거하고 필요한 태그만 사용해 간단 명료하게 구조화하는 것이 중요합니다.구조가 복잡하고 태그의 깊이가 깊어질수록 DOM 트리를 생성하는 비용이 많이 듭니다. 1. 브라우저의 구조구조 그림과 함께 각 구조에 대해 설명1) 사용자 인터페이스웹 페이지 표시 영역을 제외한 주소표시줄, 이전/다음 버튼, 새로고침 버튼 등 나머지 부분에 해당됩니다.2) 브라우저 엔진사용자 인터페이스와 렌더링 엔진을 연결하며, 사용자가 주소창에 웹 주소 입력 시 네트워..
[웹 최적화] 웹 리소스와 이미지, 동영상, 검색 최적화
·
Development/웹 최적화
이번 글에서는 웹 리소스(CSS,JS, 외부 라이브러리 등)와 이미지, 동영상, 오디오, 검색에 이르기 까지 전반적인 웹 최적화 방법에 대해 정리해보았습니다.  웹 리소스 최적화웹 개발 시 사용되는 CSS, JS를 비롯한 외부 오픈소스 라이브러리들의 로드 시점을 잘 분산하면 웹페이지 로드 시간을 최적화 할 수 있습니다.  1. preload preload는 현재 페이지에서 필요한 리소스를 미리 가져오게 할 수 있는 속성값 입니다.  반드시 as 속성으로 브라우저에 리소스 유형을 알려줘야 하며, href 속성에 정의되어 있는 리소스 유형 또한 맞게 설정되어야 합니다.  preload는 중복 선언 시, 선언된 수만큼 리소스를 가져오기 때문에 중복에 유의해야 합니다. preload를 통해 가져와진 리소스가 현..
[React] React 상태의 정의 및 분류, 상태 관리 잘하는 방법
·
Development/React
이번 글에서는 리액트에서 말하는 상태의 정의 및 분류와 상태 관리를 잘 하기 위해 알아둬야할 것들을 정리해보았습니다.  1️⃣ 리액트의 상태리액트 어플리케이션에서의 상태는 렌더링에 영향을 줄 수 있는 동적인 데이터 값을 의미합니다.리액트 공식 문서의 정의는 아래와 같습니다." 렌더링 결과에 영향을 주는 정보를 담은 순수 자바스크립트 객체"  2️⃣ 상태의 분류1) 지역 상태 (Local State)컴포넌트 내부에서 사용되는 상태입니다. 체크 박스의 체크 여부, 폼의 입력값 등에 해당되며, 주로 useState 훅을 많이 사용합니다. 경우에 따라서는 useReducer를 사용하기도 합니다.2) 전역 상태 (Global State)앱 전체에서 공유되는 상태를 의미합니다. 여러 개의 컴포넌트가 전역 상태를 사..