본문 바로가기

전체 글

(127)
Reflow가 발생하는 이유와 방지 방법은 무엇인가요? Reflow가 발생하는 이유 Reflow는 브라우저 렌더링을 위해 DOM 트리를 그리는 과정에서 발생합니다. 생성된 DOM 노드의 레이아웃 수치(너비, 높이, 위치 등) 변경 시 영향 받은 모든 노드의(자신, 자식, 부모, 조상(결국 모든 노드) ) 수치를 다시 계산하여(Recalculate), 렌더 트리를 재생성하는 과정입니다. Reflow가 일어나는 상황은 페이지 초기 렌더링(최초 layout 과정), 노드의 추가 혹은 제거, 요소의 위치나 크기 변경 (margin, padding, border, width, height 등), 폰트 변경과 이미지 크기 변경, 윈도우 리사이징이 있습니다. Reflow 최적화 방법 이러한 reflow 발생비용을 최적화하기 위한 방법은 여러가지가 있습니다. 스타일을 변경..
웹페이지 redirect의 다양한 구현법에 대해서 설명하세요. redirect는 영어단어 뜻 그대로 새 방향으로 돌린다는 뜻으로 웹페이지에서 redirect 구현 방법은 크게 세가지로 HTTP redirect, HTML redirect, JavaScript redirect가 있습니다. HTTP redirect는 3xx 상태 코드를 지닌 응답을 활용해 리다이렉트를 할 수 있습니다. 리다이렉트 응답을 수신한 브라우저는 제공된 새로운 URL을 사용해 즉시 로드합니다. HTTP redirect는 세가지 카테고리로 나누어지는데, 이는 영속적, 일시적, 특수 리다이렉션이 있습니다. 영속적인 리다이렉션: 영원히 지속됨을 의미합니다. 원래의 URL이 더이상 사용되지 않아야하며, 새로운 URL을 더 선호해야함을 시사합니다. 301 - moved permanently 308 - pe..
SPA의 장점이 무엇인가요? SPA란? SPA는 Single Page Application의 약자로서 하나의 페이지로 구성된 애플리케이션을 말합니다. 페이지 요청 시 완전히 새로운 페이지를 불러오는 것이 아닌, 동적으로 페이지를 다시 작성해 '사용자와 소통' 하는 웹 애플리케이션 or 웹 사이트를 뜻하며, 처음 로드 하고 난 뒤 새로고침이 없는 것이 특징입니다. SPA는 사용자가 요청한 각각의 페이지를 서버가 생성해서 전달해주는 것이 아니라, 클라이언트가 동적으로 페이지를 다시 작성하는 방식이며, 첫 페이지 요청 시 단 한번만 리소스를 로딩하고 그 이후로는 페이지 로딩 없이 필요한 부분만 서버로부터 받아서 화면을 갱신합니다. SPA의 장단점 SPA의 가장 큰 장점은, 자바스크립트를 사용해서 웹 어플리케이션 형태로 사용할 수 있다는 ..
웹페이지가 사용자에게 보여지는 과정에 대해서 설명하세요. 웹 브라우저의 동작 원리 웹페이지 로드 과정 브라우저에서 특정 페이지로 이동할 때 어떤 과정을 거치는지 알아봅시다. 현재 페이지에서 특정한 다음 페이지로 이동한다고 가정하면, 웹 페이지를 로드하는 과정은 W3C Spec을 따릅니다. Prompt for unload 현재 페이지에서 다른 페이지로 이동할 때 발생하는 이벤트로 뒤로가기 버튼이나 링크를 눌러 다른 도메인의 페이지로 이동할 경우 발생합니다. 웹 브라우저 내 현재 문서에서 다른 문서로 벗어나는(이동하는) 단계로 unload(window: beforeunload 이벤트)를 적용할 수 있습니다. beforeunload 이벤트를 사용하면 사용자가 페이지를 떠날 때 정말로 떠날 것인지 묻는 확인 대화 상자를 표시할 수 있습니다. 사용자가 확인을 누를 경우..
브라우저 렌더링 (작동) 원리 사이트에 접속하면 브라우저는 서버로부터 HTML 문서를 모두 전달 받아 읽어들입니다. 그로 인한 Loading이 진행되는데, 이는 HTTP 모듈 또는 파일 시스템으로 전달 받은 리소스 스트림을 읽는 과정입니다. 렌더링 엔진은 전달받은 HTML 문서를 파싱하면서 DOM 객체 모델을 만듭니다. 이는 무엇을 그릴지 결정하며, CSSSOM Tree 또한 빌드하여 HTML 문서로 만든 것을 어떻게 그릴지 결정합니다. 이렇게 생성한 DOM과 CSSOM을 결합하여 렌더링 트리를 형성하는데, 이는 화면에 어떻게 그려질 것인지를 결정합니다. 이 이후에 Layout을 과정을 진행하는데, 이는 렌더 트리의 각 노드에 대해서 화면 상에서 어디에 배치할 지 계산하여 box-model을 생성하는 과정으로 reflow라고도 칭합니..
lazy loading lazy loading이란 레이지 로딩은 on-demand loading 이라고도 불리는 온라인 콘텐츠 최적화 기법으로 웹 페이지 전체를 불러와서 한 번에 사용자에게 렌더링하는 방식 대신, 필요한 부분만 불러오고 나머지 부분은 사용자가 필요할 때까지 미루는 것으로 사용자의 데이터 낭비를 막아줍니다. 예를 들어, 사용자가 검색 엔진에서 한 이미지를 검색 했을 때, 요청한 내용으로 채워진 전체 웹 페이지가 로드됩니다. 사용자는 첫 번째 이미지가 해당 찾던 이미지라면 웹 페이지를 닫을 것이고, 이렇게 되면 로드된 나머지 이미지는 보이지 못하여 리소스가 낭비됩니다. lazy loading을 사용하면 페이지가 placeholder 콘텐츠로 작성되며, 사용자가 필요할 때만 실제 콘텐츠로 대체 됩니다. lazy lo..
Client Side Rendering 과 Server Side Rendering 의 차이 CSR (Client Side Rendering) 웹 페이지의 렌더링이 클라이언트 (브라우저)측에서 일어납니다. 서버에서 인덱스라는 HTML 파일을 클라이언트에 보내주는데 이 인덱스 파일은 대부분 비어있어 사용자에게 아무것도 보여지지 않습니다. 장점: 서버와 클라이언트 간의 데이터 트래픽이 감소하고 렌더링이 한번만 있기 때문에 페이지 이동이 빠릅니다. 단점: 사용자가 첫 화면을 보기까지 시간이 오래 걸릴 수 있다는 점과 SEO(Search Engine Optimization)가 좋지 않다는 점입니다. SSR (Server Side Rendering) 서버에서 필요한 데이터를 모두 가져와서 HTML 파일을 동적으로 제어할 수 있는 소스코드와 함께 클라이언트에게 보내고 클라이언트 상에서는 잘 만들어진 HTM..
script, script async 와 defer html에서 자바스크립트를 포함할 때 어떻게 포함하는게 효율적인지 알아봅시다. 태그를 태그가 끝나기 직전에 위치 시키는 이유 브라우저는 HTML을 다운로드 받으면, 한줄 한줄씩 파싱하면서 DOM을 만들고, CSS를 다운로드 받으면 CSSOM을 만들어 병합하게 됩니다. 브라우저는 태그를 만나면 HTML 파싱을 잠시 멈추고, 를 다운로드한 후 실행합니다. 태그 안에 태그를 위치시키게된다면, 만약 자바스크립트 파일의 크기가 크고 인터넷이 느리다면 사용자가 웹사이트를 보는데 많은 시간이 소요됩니다. 태그 끝부분에 태그를 넣는다면 html을 다운받아서 파싱한 뒤에 를 fetch하고 실행하게 되면 페이지가 사용자들에게 자바스크립트 파일을 다운 받기 전에도 이미 준비가 되어서 사용자가 기본적인 html 컨텐츠를 빨리..

반응형