전체 글 98

12장 모든 웹 개발자가 관심을 가져야 할 핵심 웹 지표

12.1 웹사이트와 성능시작하며사용자는 속도가 빠르고, 보안이 좋으며, 사용성이 좋은 웹사이트를 기대합니다. 그러나 많은 개발자들은 이러한 성능에 크게 신경 쓰지 않는 경우가 많습니다.개발자의 기기는 대부분 일반적인 사용자의 평균적인 기기보다 성능이 뛰어나기 때문에 이러한 문제를 느끼지 못할 수 있습니다.성능을 개선하는 작업은 어렵고 재미있지 않으며, 눈에 띄는 성능 향상을 기대하기 어렵습니다.이번 포스팅에서는 웹 개발자가 관심을 가지며 개발해야할 핵심 웹 지표에 대해 설명합니다.12.2 핵심 웹 지표란?이전까지 성능 측정을 위한 뚜렷한 표준이나 측정 방법이 정해져 있지 않았으나, 구글에서 만든 Core Web Vitals가 등장했습니다. 주요 지표는 다음과 같습니다:최대 콘텐츠풀 페인트 (LCP)최초 ..

10장 리액트 17과 18의 변경 사항 살펴보기

10.1 리액트 17 버전 살펴보기10.1.1 리액트의 점진적인 업그레이드리액트 17은 애플리케이션이 너무 커서 한 번에 업그레이드하기 어려운 상황에서도 유용합니다. 버전이 서로 다른 리액트가 공존할 수 있도록 지원해 점진적인 업그레이드를 가능하게 합니다. 이는 애플리케이션의 부분적인 업그레이드를 통해 점진적으로 최신 버전의 기능을 활용할 수 있게 해줍니다.10.1.2 이벤트 위임 방식의 변경리액트 16에서는 이벤트 핸들러가 document 레벨에서 실행되었습니다. 그러나 리액트 17부터는 루트 요소로 변경되었습니다. 이는 각 이벤트가 리액트 컴포넌트 트리 수준에서 격리되므로, 이벤트 버블링으로 인한 혼선을 방지할 수 있습니다.10.1.3 import React from 'react'가 더 이상 필요 없..

3장 리액트 훅 깊게 살펴보기

3.1 리액트의 모든 훅 파헤치기3.1.1 useState함수형 컴포넌트는 매번 함수를 실행해 렌더링이 일어나기 때문에 함수 내부의 let으로 정의된 변수도 함수가 실행될 때마다 다시 초기화됩니다.useState는 클로저로 구현되어 외부에 해당 값을 노출시키지 않으면서 함수가 실행되더라도 이전의 값을 정확하게 꺼내 쓸 수 있습니다. 게으른 초기화useState 인수로 원시값을 넣지 않고 함수를 넣어줍니다. 초기값이 복잡하거나 무거운 연산을 포함하고 있을 때 사용하며, 리렌더링시에는 함수를 실행하지 않습니다. 이는 localStorage, sessionStorage 접근, 배열 순회 등이 필요할 때 사용하는 것이 좋습니다. import React, { useState } from 'react';const ..

8장 좋은 리액트 코드 작성을 위한 환경 구축하기

8.1 ESLint를 활용한 정적 코드 분석8.1.1 ESLint 살펴보기ESLint는 어떻게 코드를 분석할까?자바스크립트 코드를 문자열로 읽는다.자바스크립트 코드를 분석할 수 있는 파서로 코드를 구조화한다.2번에서 구조화한 트리 AST를 기준으로 각종 규칙과 대조한다.규칙과 대조했을 때 이를 위반한 코드를 알리거나 수정한다.ESLint는 파서 espree를 사용하여 자바스크립트 코드를 분석한다. AST 트리 예시를 확인하고 싶다면 아래 사이트를 참조해보자.https://astexplorer.net/ no-debugger 규칙Eslint에는 debugger; 선언을 금지한 규칙이 존재한다. 해당 규칙은 다음과 같이 작성되어있다.module.exports = { meta: { type: 'probl..

FE개발자가 프로모션 페이지 개발을 할 때 고려할 점

그동안 회사에서 3개 정도의 굵직 굵직한 프로모션 페이지 개발을 맡게 되었다.프로모션 페이지는 잠시동안만 사용자에게 오픈되는 페이지지만, 다양한 디자인과 애니메이션 기법들을 사용하여 사용자들의 이목을 끌어야하고, 여러 제휴사나 관련 부서와 협업해야 하므로 준비 기간 동안 많은 사람들과 커뮤니케이션 등이 필요하게 된다.프로모션 페이지 개발을 하면서 알게 된 레슨 런드에 대해 정리해보고자 한다. (ᵔ๑ᵕ̳ ᴥ ᵕ̳๑)っ‧⁺.* ೃೀ 프로모션 페이지 개발의 특징1. 로직은 매우 단순하다.다양한 예외 처리나, 오류 케이스 처리가 있는 서비스 개발 프로젝트와는 다르게, 프로모션의 경우 로직이 매우 단순한 편이다. 이벤트 내용을 보여주는 것이 주된 로직이고, 이외의 로직 처리는 이벤트 응모 버튼이나, 응모 내역 조..

코스모스

빅뱅, 캐플러의 법칙 등 고등학교 때 배웠던 내용들이 새록새록 기억나면서 너무 재미있게 읽었다. 과학이란 당연하다고 생각했던 것을 이론으로 정립하고 원리를 설명하게 해줌으로써 세상을 잘 이해하게 해준다는 점에서 매력적인 것 같다. 이 광활한 우주에서 이렇게 극히 드문 확률로 지구라는 곳에 살고 있는 우리들. 국가를 이루고, 법을 만들고, 책도 만들고, 영화도 만들고, 집도 짓고 이렇게 옹기 종기 살고 있다는 게 어떻게 보면 너무 귀엽고 하찮은 것 같다. ㅋㅋㅋ 나는 로또 확률이 매우 낮다는 걸 알기 때문에 절대 로또를 안 사는 사람인데, 사실 지구에 인간으로 태어나서 이렇게 살고 있다는 걸 생각해보면 로또 당첨 확률은 엄청 높은걸지도 모르겠다는 생각을 했다. 어쨌든 나는 인간으로 태어난 것에 만족하고 있..

일상/독서 2024.04.19

모던 리액트 Deep Dive 2.1 - 2.2 :: JSX와 리액트 파이버

2.1 JSX란? JSX는 리액트가 등장하면서 페이스북에서 소개한 새로운 구문이지만, 반드시 리액트에서만 사용하라는 법은 없다. JSX는 XML과 같은 내장형 구문이며, 리액트에 종속적이지 않은 독자적인 문법이다. JSX는 반드시 트랜스파일러를 거쳐야 비로소 자바스크립트 런타임이 이해할 수 있는 의미있는 자바스크립트 코드로 변환된다. JSX의 설계목적 다양한 트랜스파일러에서 다양한 속성을 가진 트리 구조를 토큰화해 ECMAScript로 변환한다. 2.1.1 JSX의 정의 JSX를 구성하는 가장 기본 요소 JSXOpeningElement: JSXClosingElement: JSXSelfClosingElement: JSXFragment: JSXChildren(optional) JSX 식별자로 가능한 것 $,..

크리에이티브 프로그래머 7장) 창의적 마인드셋

7장 창의적 마인드셋 1. 올바른 창의적 분위기 만들기 아-하 모멘트는 사색과 휴식 중 의식적인 사고에 이어 무의식이 작동하는 순간이다. 즉, 매너리즘에 빠졌을 때 영감을 주는 휴식을 취하는 순간 창의적 마인드셋을 가지게 되면서 창의성을 발휘하게 된다. 우리의 잠재의식 속의 자아는 분별력 있고, 재치와 섬세함을 지니며, 선택하는 방법과 영감을 얻는 방법을 알고 있다. 일이 너무 고될 때에는 약간의 장난을 치는 것으로 다시 기력을 되찾고 아이디어의 흐름을 이어갈 수 있다. 2. 딥 워크의 흐름 시간이 순식간에 흘러가는 듯한 현상 플로(flow)는 깊은 즐거움, 창의성, 삶에 대한 전적인 참여를 유발한다. 명확한 목표를 염두에 둔다. 모든 활동에는 즉시 피드백이 뒤따른다. 도전과 기술 사이에 균형이 있다. ..

자바스크립트의 동등 비교 (==, ===, Object.is)

==와 ===의 차이 JavaScript에서 ==와 ===는 두 값의 동등성을 비교하는 데 사용되는 연산자입니다. 하지만 이 둘은 다른 방식으로 동작합니다. == (동등 연산자): ==는 값의 동등성을 비교합니다. 하지만 엄격한(strict) 동등성이 아니라 변환된 동등성을 비교합니다. 이것은 필요에 따라 다른 데이터 타입을 변환하여 비교를 수행합니다. 예를 들어, 0 == false는 true를 반환합니다. 이는 JavaScript가 숫자 0을 불리언 false로 변환하여 비교하기 때문입니다. === (일치 연산자): ===는 값의 엄격한(strict) 동등성을 비교합니다. 이것은 값뿐만 아니라 데이터 타입까지 고려하여 비교를 수행합니다. 예를 들어, 0 === false는 false를 반환합니다. 이..

크리에이티브 프로그래머 6장) 호기심

6장 호기심 1. 호기심은 창의력의 원동력 미하이 칙센트미하이가 창의적인 천재들을 인터뷰한 결과, 창의적인 성공을 위한 가장 중요한 두 가지 성격 특성은 호기심과 인내심이다. 호기심은 무언가를 만들려는 동기를 만든다. 그리고 인내심으로 작업을 마무리한다. 2. 커져 가는 호기심과 방랑벽 우리의 잠재력을 최대한 발휘하는 힘은 모두 마음에 달려 있다. 고정된 사고방식 vs 성장 사고방식 - 고정된 사고방식: 자신의 재능과 능력이 이미 정해져 있다는 믿음. 이러한 사고방식을 가진 사람들은 자신에게 부족한 자질을 가진 다른 사람을 부러워하거나, 반대의 경우에는 자질이 부족한 사람들에게 거만해지고 경멸한다. - 성장 사고방식: 자신의 재능과 능력이 시간이 지남에 따라서 배양하고 성장할 수 있다는 믿음. 코딩을 절..