전체보기(64)
-
자바스크립트를 활용한 인터랙션 성능 최적화
(이 글은 아래의 영상 시리즈 속 내용을 바탕으로 제작되었습니다.) www.youtube.com/watch?v=yJo9lZAEqb0&list=PLAwxTw4SYaPl09X4Rljhy7dZinRCzbHz6 자바스크립트는 아주 근본적인 문제를 가지고 있습니다. 그것은 바로 우리가 쓰는 자바스크립트와, 실제 브라우저가 수행하는 코드가 100% 일치하지 않는다는 것입니다. 자바스크립트는 브라우저의 엔진을 통해 컴파일됩니다. 이때 이 컴파일러를 JIT(Just In Time)이라 통칭합니다. 그러므로 자바스크립트는 근본적으로 저수준 레벨에서의 최적화는 불가능합니다. 따라서 어떤 제어문이 더 좋은 성능을 내는지 등은 고려하지 않아도 됩니다. 하지만, 꼭 저수준 레벨에서 최적화를 하지 않더라도 다른 방법으로 엄청난 ..
2020.11.17 -
웹 성능 최적화의 척도(RAIL)
(이 글은 아래의 영상 시리즈 속 내용을 바탕으로 제작되었습니다.) www.youtube.com/watch?v=yJo9lZAEqb0&list=PLAwxTw4SYaPl09X4Rljhy7dZinRCzbHz6 RAIL 이란? 웹 성능 최적화의 척도로 60fps 를 유지하는 것이 잘 소개되고는 하지만, 엄밀히 말해서 '매순간' 60fps 를 유지해야 하는 것은 아닙니다. 사실 그것은 불가능에 가깝습니다. 정확히 어느 순간을 최적화 해야 하는지를 판단하기 위한 척도로, 'RAIL' 이라는 개념이 대두됩니다. R (Response) Respond 는 이용자의 인터랙션에 얼마나 빨리 반응할 수 있느냐와 관련된 부분입니다. 즉, 이용자가 버튼을 클릭하거나 사이드바 토글을 수행할 때 이용자가 직접적으로 화면상에 그에 따..
2020.11.16 -
크롬 개발자 도구의 Performance 탭 다루기 - 기본편
이 글은 아래 링크의 글을 바탕으로 작성되었습니다. 당연하지만, 이 글이 웹 프론트엔드 성능 분석의 모든 것을 담고 있는 것은 아닙니다. 하지만 가장 기본이 되는 방법론을 다루고 있습니다. 시작해요, 런타임 성능 분석 | Chrome DevTools | Google Developers 시작해요, 런타임 성능 분석 | Chrome DevTools | Google Developers Chrome 개발자 도구에서 런타임 성능을 평가하는 방법 developers.google.com Network 패널 or Performance 패널 네트워크 패널은 자원들이 제대로 다운로드 되었는지의 여부, 캐시여부, 그리고 다운로드된 자원들의 다운로드에 걸린 시간, 세부 정보들을 보고 싶을 때 유용하게 사용할 수 있는 패널입니..
2020.11.14 -
크롬 개발자 도구로 CSS 다루기
이 글은 아래 링크의 내용을 기반으로 작성되었습니다. 흔히 경험적으로 알수 있을 만한 내용은 다루지 않았습니다. Get Started With Viewing And Changing CSS | Chrome DevTools Get Started With Viewing And Changing CSS | Chrome DevTools Learn how to use Chrome DevTools to view and change a page's CSS. developers.google.com 임시로 적용해볼 css class 생성 Element 패널 안의 Styles 탭에서 .cls 를 클릭하면 됩니다. 특정 요소에 임시로 적용해볼 pseudo 상태를 적용 요소를 선택한 후, Element 패널 안의 Styles 탭..
2020.11.12 -
DNS(Domain Name System) 이해하기
이 글은 아래의 영상을 바탕으로 작성되었습니다. https://www.youtube.com/watch?v=zrqivQVj3JM&list=PLuHgQVnccGMCI75J-rC8yZSVGZq3gYsFp 우리는 흔히 DNS(Domain Name System) 을 IP 를 대신해서 입력할 수 있는 주소 정도로만 알고 있는 경우가 많습니다. 하지만, 실제로 웹앱을 배포하고 그것에 커스텀 도메인을 연결해야 할 때, 이 지식만으로는 많은 어려움에 부닥쳐야 할 것입니다. 제가 그랬으니까요... 저처럼 부족한 지식을 가지고 도메인을 만지작 거리다 곤란을 겪으신 분들을 위해 DNS 에 대해 제가 이해한 내용을 이 글을 통해 알려드리도록 하겠습니다. IP 주소와 hosts 인터넷에 연결된 모든 컴퓨터 각각을 host 라고 ..
2020.11.11 -
웹 프론트엔드 성능 최적화(2) - 리렌더링 과정의 이해
(리)레이아웃과 리페인트 그리고 리컴포짓 (참조 : https://developers.google.com/web/fundamentals/performance/rendering/?hl=ko) 일단 브라우저가 HTML을 한번 다 읽고 나서 파싱까지 모두 끝냈다면 DOM 과 CSSOM 트리를 처음부터 다시 만드는 작업은 일어나지 않습니다. 하지만 자바스크립트나 CSS(transition, animation 등)에 의해 DOM 트리나 CSSOM 트리가 변경되면 렌더 트리는 처음부터 끝까지 다시 만들어지고, 그 후의 모든 과정이 다시 수행됩니다. 스타일 과정을 포함한 모든 과정을 다 수행하는 것을 레이아웃, 혹은 리플로우라고 부릅니다. 그렇다면 이러한 리플로우 과정은 '어느 DOM 요소의 기하학적 속성을 변경하느..
2020.11.09