브라우저 렌더링 원리 브라우저가 화면에 나타나는 요소를 렌더링 할 때, 웹킷(Webkit)이나 게코(Gecko) 등과 같은 렌더링엔진을 사용합니다. 렌더링 엔진이 HTML, CSS, Javascript로 렌더링할 때 CRP라는 프로세스를 사용하며 다음 단계들로 이루어집니다. 1. HTML를 파싱 후, DOM 트리를 구축합니다. 2. CSS를 파싱 후, CSSOM 트리를 구축합니다. 3. Javascript를 실행합니다. - 주의 : HTML 중간에 스크립트가 있다면 HTML 파싱이 중단됩니다. 4. DOM과 CSSOM을 조합하여 렌더트리를 구축합니다. - 주의 : display: none 속성과 같이 화면에서 보이지도 않고 공간을 차지하지 않는 것은 렌더트리로 구축되지 않습니다. 5. 뷰포트 기반으로 렌..
전체 글
Next.js와 Node.js 기반의 풀스택 개발 기술을 깊이 있게 다룹니다. 실무에 바로 적용 가능한 Docker 환경 구축, 클린 코드 작성법, JavaScript 최신 트렌드까지, 현직 개발자의 실전 경험과 심화 분석을 만나보세요. 코드로 증명하는 개발 지식.문제 현상 개인 프로젝트 진행 중, main 브랜치에서 신규로 feature 브랜치를 생성하여 commit을 했는데 잔디가 심어지지 않는 현상이 있었다. 이유 main branch가 아닌 다른 곳에 commit을 하면 잔디가 심어지지 않는다. Github의 브랜치 내에서 확인해보면 commit된 것을 확인 할 수 있었지만, main branch에 PR을 받기 전까지는 초록색 글자가 나오지 않는다. 해결 방안 Main 브랜치에서 Pull Request를 받는다. 브랜치 내의 페이지에서 'setting > general'에 들어가 'default branch'를 변경해준다.
개발 목표 Code Pen이라는 온라인 코딩 툴 사이트가 있다. - https://codepen.io/ 해당 사이트와 같이 코드를 입력하고 번들링하여 실시간으로 보여주는 사이트를 React로 만들고자 한다. 단, 로그인과 같은 인증 기능은 제외한다. 코드 입력 창에서 발생할 수 있는 문제점 간단하게 만들 수 있을 것 같았지만 코드를 입력하는 창을 구현하기 위해서는 아래와 같은 이슈사항들이 있었다. 코드 입력창에 오류를 발생시키는 문법 등의 잘못된 코드가 작성될 수 있다. DOM을 조작하는 코드로 인해 예상하지 못한 현상이 발생할 수 있다. ex) document.body.innerHTML = ‘’; 사용자가 악의적인 코드를 넣을 수 있다. ex) for (var i = 0; i { axios.post('..
트러블 이슈 코드 번들링 사이트를 만들던 중 버그가 발견 되었다. 아래 이미지를 보면 왼쪽 검은색 영역이 코드를 작성하는 부분이고, 오른쪽 흰색은 그 코드의 결과가 나오는 화면이다. 그런데 새로고침을 할 때마다 흰색 영역이 한 번 검은색으로 깜빡 거리는 현상이 있었다. code-cell.tsx (코드 결과를 보여주는 React Component) import './code-cell.css'; import { useEffect } from 'react'; import CodeEditor from './code-editor'; import Preview from './preview'; import Resizable from './resizable'; import { Cell } from '../state';..
문제 상황 .tsx에서 아래의 코드 input의 “ref”에 빨간색이 나타나며 마우스를 오버하면 에러 문구가 나타났다. import { useRef } from "react"; export default const UserSearch: React.FC = () => { const inputRef = useRef(); return ( User Search // 아래 ref에 오류 표기 ); }; 에러 문구 Type ‘MutableRefObject' is not assignable to type 'LegacyRef | undefined'. Type 'MutableRefObject' is not assignable to type 'RefObject'. Types of property 'current' are ..