일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 성인학습지
- stack
- javascript
- 자료구조
- 카카오
- 정렬
- 삼성소프트웨어아카데미
- java
- 코테
- 가벼운학습지
- array
- mybatis
- 일본어학습지
- 마이라이트
- 가벼운학습지후기
- 인프런
- 코딩
- 자바
- 프로그래머스
- SWEA
- 코테준비
- js
- 일본어공부
- 일본어독학
- 삼성
- 자바스크립트
- 스텍
- 백준
- 코딩테스트
- 알고리즘
- Today
- Total
목록프론트엔드 (14)
개발에 AtoZ까지

이슈 Error: Text content does not match server-rendered HTML 프로젝트 환경 MonoRepo Next.js 12.3.1 React 18.2.0 M1 Macbook Pro 🔍원인 Next.js의 getServerSideProps를 활용하여 특정 페이지에서 SSR(server-side rendering) 사용했는데 React 트리 간에 차이가 존재하여, React 트리가 DOM과 동기화되지 않아 발생한 이슈였습니다.😭 조금 더 자세히 확인해보면 Next.js는 Pre-rendering이 Default입니다. Pre-rendering이란? 클라이언트측 JS에서 모든 작업을 수행하는 대신 미리 각 페이지에 대한 HTML 파일을 생성합니다. 이렇게 미리 HTML 파일을 ..

문제상황 error - Module not found: Error: Can't resolve 'next-swc-loader' in '파일 디렉토리’ 프로젝트 환경 MonoRepo Next.js 12.3.1 React 18.2.0 M1 Macbook Pro원인 Next.JS는 rust 기반 컴파일러 SWC를 사용하여 컴파일을 하는데 이 컴파일러 SWCsms Babel 보다 최대 17배 빠르고 fast refresh는 최대 5배 빠른 컴파일러 입니다. SWC는 rust(c언어 기반) 기반으로 하고 있기 때문에 시스템과 호환되는 바이너리를 다운로드 받아야 합니다. 다운로드가 실패했거나 아키텍처와의 비호환성으로 인해 로드에 실패할 수 있습니다. 만약 실패시 위와 같은 에러가 발생할 ..

안녕하세요 😀 한동안 웹 최적화에 대해서 관심이 있었는데 그 분야와 연관성이 있는 defer와 async에 대해서 알아보겠습니다. 글은 크게 아래와 같은 소주제로 진행하겠습니다. JS는 언제 다운로드 받을까? defer / async 의 정의와 어떤 차이가 있을까? 각 속성을 적절하게 사용하는 방법은 뭘까? 마무리 JS는 언제 다운로드 받을까? 일전에 브라우저 렌더링 하는 과정에 대해서 공유해 드린 적이 있는데 그 부분에서 HTML이나 CSS에 대해서는 언급이 있었지만, JS에 대한 언급은 없었습니다. 그래서 JS는 언제 다운로드 받고 어떻게 적용되는지 궁금하실 수도 있을거 같아요. 보통 HTML을 다운로드 받고 HTML에서 import 한 JS를 다운로드 받습니다. 그런데 JS는 항상 같은 순서로 다운..

근래에 웹 최적화에 관해 관심을 가지면서 Reflow와 Repaint에 대해서 다시 한번 짚고 넘어가 보려고 합니다. 혹시나 브라우저 렌더링에 대해 상기하고 싶으신 분이 있다면 이전 글을 보고 오시는 것을 추천합니다. 이 글은 아래와 같은 목차로 진행하겠습니다. 1. Reflow가 뭘까? 2. Repaint는 뭘까? 3. 둘의 차이점은 뭘까? 4. 최적화 관점에서 어떻게 해야 할까? 5. 마무리 Reflow가 뭘까? Reflow란 HTML 파일을 불러와 Parsing을 통해 Render Tree를 형성하게 되는데, 어떠한 액션이나 이벤트로 인해 Dom의 크기나 위치 등의 값이 변경되어 Layout 과정을 다시 수행하게 됩니다. 이렇게 다시 수행되는 과정을 통틀어서 Reflow라고 합니다. 말로 하면 감이..

우리가 흔히 알고 있는 chrome, safari, opera 같은 브라우저는 어떻게 렌더링이 되는 걸까?라는 의문에서 시작해서 이 글을 쓰게 됐다. 이 글은 크게 아래와 같은 순서로 진행됩니다. 브라우저란 뭘까? 브라우저의 구조는 어떻게 될까? 브라우저마다 렌더링 엔진은 다를까? 브라우저가 어떻게 렌더링 되는 걸까? 마무리 브라우저란 뭘까? 가끔 이런 경험을 해본 적이 있을 것이다. pdf를 받아서 chrome으로 열기를 누르면 해당 파일이 열린 적이 있을 것이다. 단순히 웹서핑할 때만 브라우저를 이용했던 분은 의아했을 것이다. 하지만 정확히 브라우저의 주요 기능을 알게 되면 왜 브라우저를 통해 pdf 파일을 열수 있는지 이해될 것이다. 브라우저는 사용자가 선택한 자원을 서버에 요청하고 브라우저에 표시..

목차 - 함수 호출 - Tagged Templtes식 호출 함수 호출 일반적인 함수호출 const multiple = (a,b) => { return a*b; } console.log(multiple()); Tagged Templates식 호출 태그를 사용하여 템플릿 리터럴(Template Literal)을 함수로 파싱할 수 있습니다. ✏️ 템플릿 리터럴(Template Literal)이란? 더보기 내장된 표현식을 허용하는 문자열 리터럴로 표현식 / 문자열 삽입, 여러 줄 문자열, 문자열 형식화, 문자열 태깅등 다양한 기능을 제공합니다. 이렇게 템플릿 리터럴을 사용해서 표현하면 런타임 시점에서 일반 JS 문자열로 처리 및 변화되어 동작합니다. const num1 = 2; const num2 = 3; co..

◆목표 DOM 객체 생성 DOM 객체 읽기 DOM 객체 수정 DOM 객체 삭제 1. DOM 객체 생성 메서드명 설명 document.createElement(태그명) HTML 요소 생성하기 document.appendChild(요소명) HTML 요소 추가하기 2. DOM 객체 읽기(찾기) 메서드 설명 document.getElementById(아이디명) id로 찾기 document.getElementsByTagName(태그명) 태그로 찾기(배열로 리턴, 복수) document.getElementsByClassName(클래스명) class 이름으로 찾기(배열로 리턴, 복수) document.querySelector(css명) css Selector로 찾기(첫번째 요소만 선택됨) document.queryS..

◆목표 DOM의 정의 웹브라우저 동작과정 BOM의 정의 1. DOM(Document Object Model)의 정의 -구조화된 문서(Document)를 객체로 표현하는 방식 2. 웹브라우저 동작 과정 1) HTML 파일을 웹서버로 부터 가져옴 2) 가져온 HTML 파일을 파싱(Parsing) 하여 Dom Tree 생성, Css 정보를 파싱(Parsing)하여 Cssom Tree 생성 3) 파싱한 Dom Tree와 Cssom Tree를 기반으로 Render Tree를 생성 4) 생성한 Render Tree로 Rendering을 하고 그것으로 사용자에게 페이지를 보여줌 Tip) 자바스크립트 선언 위치 - HTML 코드를 기반으로 DOM 트리를 구성하기 때문에 DOM 트리를 구성하기 전에 자바 스크립트로 HT..