{"componentChunkName":"component---src-templates-blog-post-js","path":"/frontendPerformance/optimizationAndTools/","result":{"data":{"site":{"siteMetadata":{"title":"Zayden","author":"[Your Name]","siteUrl":"https://gatsby-starter-bee.netlify.com","comment":{"disqusShortName":"","utterances":"JaeYeopHan/gatsby-starter-bee"},"sponsor":{"buyMeACoffeeId":"jbee"}}},"markdownRemark":{"id":"53cfc595-e2be-5513-a270-d0875f32bb9a","excerpt":"…","html":"<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">해당 글은 \"프론트엔드 최적화 가이드\"라는 도서를 기반하여 작성한 글입니다.</code></pre></div>\n<h2 id=\"최적화-기법-종류\" style=\"position:relative;\"><a href=\"#%EC%B5%9C%EC%A0%81%ED%99%94-%EA%B8%B0%EB%B2%95-%EC%A2%85%EB%A5%98\" aria-label=\"최적화 기법 종류 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>최적화 기법 종류</h2>\n<p>최적화 기법에는 이미지 사이즈 최적화, 코드 분할, 텍스트 압축, 병목 코드 최적화가 있습니다. 각 최적화 기법에 대하여 설명드리겠습니다. </p>\n<h3 id=\"이미지-사이즈-최적화\" style=\"position:relative;\"><a href=\"#%EC%9D%B4%EB%AF%B8%EC%A7%80-%EC%82%AC%EC%9D%B4%EC%A6%88-%EC%B5%9C%EC%A0%81%ED%99%94\" aria-label=\"이미지 사이즈 최적화 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>이미지 사이즈 최적화</h3>\n<p>웹 서비스에서는 매우 다양한 이미지를 사용합니다. 하지만 너무 큰 사이즈의 이미지를 무분별하게 사용하면 네트워크 트래픽이 증가해 서비스 로딩이 오래 걸립니다. 그렇다고 이미지 사이즈를 무작정 작게 만들면 이미지 화질이 저하되어 서비스 이용이 불편해집니다. 따라서 어떤 이미지 사이즈가 적절한지 살펴봐야 합니다. </p>\n<h3 id=\"코드-분할\" style=\"position:relative;\"><a href=\"#%EC%BD%94%EB%93%9C-%EB%B6%84%ED%95%A0\" aria-label=\"코드 분할 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>코드 분할</h3>\n<p>말 그대로 코드를 분할하는 기법입니다. 예를들면 리액트는 SPA(Single Page Application) 기반한 라이브러리입니다. SPA의 특성상 모든 리액트 코드가 하나의 자바스크립트 파일로 번들링되어 로드되기 때문에, 첫 페이지 진입 시 당장 사용하지 않는 코드가 포함이 되어 있을 수 있습니다. 이때 코드 분할을 통해 당장은 필요 없는 코드를 떼어 내고, 해당 코드를 필요한 시점에 따로 로드할 수 있습니다. </p>\n<blockquote>\n<p>dynamic import 구문 사용을 하거나 리액트를 사용한다면 React.lazy 함수를 통해 dynamic import 를 사용할 수 있습니다.</p>\n</blockquote>\n<h3 id=\"텍스트-압축\" style=\"position:relative;\"><a href=\"#%ED%85%8D%EC%8A%A4%ED%8A%B8-%EC%95%95%EC%B6%95\" aria-label=\"텍스트 압축 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>텍스트 압축</h3>\n<p>웹 페이지에 접속하면 HTML, CSS, 자바스크립트 등등 다양한 리소스를 내려받습니다. 이런 리소스는 다운로드 전에 미리 압축할 수 있습니다. 그러면 원래 사이즈보다 더 작은 사이즈로 다운로드할 수 있어 웹 페이지가 더 빠르게 로드됩니다.</p>\n<blockquote>\n<p>예를들어, 자바스크립트에 있는 불필요한 공백을 지우고, 변수와 함수의 이름들을 a, b, 등등 변경하는 작업이 있습니다. 즉, 난독화 작업이라고도 할 수 있습니다.\nwebpack 사용한다면 terser 플러그인을 활용할 수 있습니다.</p>\n</blockquote>\n<h3 id=\"병목-코드-최적화\" style=\"position:relative;\"><a href=\"#%EB%B3%91%EB%AA%A9-%EC%BD%94%EB%93%9C-%EC%B5%9C%EC%A0%81%ED%99%94\" aria-label=\"병목 코드 최적화 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>병목 코드 최적화</h3>\n<p>자바스크립트 코드 때문에 서비스가 너무 느리게 다운로드되거나 느리게 실행되는 경우가 있습니다. 이처럼 서비스를 느리게 만드는 코드를 병목 코드라고 합니다.</p>\n<blockquote>\n<p>리액트에서는 React.memo, useMemo(), useCallback() 활용할 수도 있을것 같습니다.</p>\n</blockquote>\n<br/>\n<p>이러한 최적화 기법을 사용하기전에 웹 서비스에 어떠한 부분을 최적화해야 하는지 분석 하기 위한 분석관련 툴에 대하여 설명 드리겠습니다.</p>\n<h3 id=\"크롬-개발자-도구의-network-패널\" style=\"position:relative;\"><a href=\"#%ED%81%AC%EB%A1%AC-%EA%B0%9C%EB%B0%9C%EC%9E%90-%EB%8F%84%EA%B5%AC%EC%9D%98-network-%ED%8C%A8%EB%84%90\" aria-label=\"크롬 개발자 도구의 network 패널 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>크롬 개발자 도구의 Network 패널</h3>\n<span class=\"gatsby-resp-image-wrapper\" style=\"position: relative; display: block; margin-left: auto; margin-right: auto;  max-width: 608px;\">\n      <span class=\"gatsby-resp-image-background-image\" style=\"padding-bottom: 114.33333333333333%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAXCAYAAAALHW+jAAAACXBIWXMAAAsSAAALEgHS3X78AAAD7UlEQVQ4y31V2ZLaSBDUl3hgAAkkQPeNLoQQczBnePdt//8vcrNKM2M7wvZDRqmr1dVZldXdRhQkiMIUQZihKBv4fow8rxHHOUL6xd7eLrFYLLBcmgg4v9368PYu6iJHnB/5Twbfi+C6AYwmShH6IXZuCs+Lsdt5qKoOw+mCLDugLGuM4wOOx4EbVWiaHmVRY7d1Nbi7D4kA9manQY08P2gQx9ljs9lydxe2vWOgBgUDFEXFYCOO/YgkLsgiRMCsPC7ebT14HHvKLlQYdd3iQgZPT284cVFTT+wul0f152QZBbGilA04rg4NUpYiYKAoTHTjLC2RJgWMKC0QFw1sUk/KFjZ3CbMKLmvqJyXcKMd656s17b36V5u9ji0y3LPOm10Ax42wJ3PD5i4bsrzhTzcbF98E609Ln+2pf+b4audqPcx+8sv3zPYxpzU2a5sMtrid3+Lm2wzz2S2/F1hQWfFNdoH5fPJ/QvyC2Ww+zXOdwGi6UdWUQkcR02StmvaEQ3VExtocqHjKeWmh8tDqd8a26vqL/i9iiqhbSZ9qGzlV7HoJ0PDHAlGcqA3CCEma6bfredjYNqqmpS9FxlayWVfLNGGt11gTlmWpNfrCw+nMtjidsVqt2LxLMqm4e4y66TDePaCsajJxvjaL2WrrvQ+T/1vWj4ACo85kYcs+OyFJEjhkkudySkIuznVuvNyzJIH6ooiIqSxTtcwV1pbJgNZkCaMsn9Hff0c7vmG4/ov4MCIqB3jpEW7Soh5e8PD+H5ZOwnHH8TM2foXlNsfNiipb/gRzglFmZ1TdGYd2QMMTEbL3BD4L7rHnxHf/9E5GHtyAwtQ9dl6KtRNiaW6wtBysiKVlK4ym6HEazpryebxomrnUielHcayCXZ9ftYbia7uOIrGRqaplLpmm9WvKTTFQlAt6inJmrfKiZNCSi1OF+J9e39kWOxWl7Y7w/Ag2A5rm6kvdH6LkPRUe0B579GSaZrlC2IVUuj2e8HB9JsOtjkUk1wuV4W8DtuUZw3inwaRFhKEg+WAoLfX6/s8XQymNx+b/I8Mq65hGj7rt0JGNNLMgjCK2ScRTc8Tdw3ViyHFVN9izhvbfGF7uHpWlLCzY1EV5mAJ/MHx5+06G24+aDlpDhyfljzWU+gmTrh9+YhgrS1H58elVAwYfDF1l6P4+YFOcVGUR5lNlgbCRmskm0ja27ahPaigpO3qWV1PLyHn+hWE3sRQFpU7SbxND3jxsk4frC693Xve+z5sp15Qt28VCzr5pYUWINU0R5XDkWb3qNVXw8ZGrS96PLCv1XTkNdwqZk8er4hMhz8JjleHxkOBK3JcJxkyegwj/A6tZ5tJtsRmfAAAAAElFTkSuQmCC&apos;); background-size: cover; display: block;\"></span>\n  <img class=\"gatsby-resp-image-image\" alt=\"network\" title=\"network\" src=\"/static/1ac2bec8b920d4b2a7d732178ff13dd9/18872/network.png\" srcset=\"/static/1ac2bec8b920d4b2a7d732178ff13dd9/5a46d/network.png 300w,\n/static/1ac2bec8b920d4b2a7d732178ff13dd9/0a47e/network.png 600w,\n/static/1ac2bec8b920d4b2a7d732178ff13dd9/18872/network.png 608w\" sizes=\"(max-width: 608px) 100vw, 608px\" style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\" loading=\"lazy\">\n    </span>\n<p>네트워크 패널은 현재 웹 페이지에서 발생하는 모든 네트워크 트래픽을 상세하게 알려 줍니다. 이를 통해 어떤 리소스가 어느 시점에 로드되는지, 해당 리소스의 크기 등을 확인할 수 있습니다.</p>\n<h3 id=\"크롬-개발자-도구의-performance-패널\" style=\"position:relative;\"><a href=\"#%ED%81%AC%EB%A1%AC-%EA%B0%9C%EB%B0%9C%EC%9E%90-%EB%8F%84%EA%B5%AC%EC%9D%98-performance-%ED%8C%A8%EB%84%90\" aria-label=\"크롬 개발자 도구의 performance 패널 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>크롬 개발자 도구의 Performance 패널</h3>\n<span class=\"gatsby-resp-image-wrapper\" style=\"position: relative; display: block; margin-left: auto; margin-right: auto;  max-width: 615px;\">\n      <span class=\"gatsby-resp-image-background-image\" style=\"padding-bottom: 94.33333333333334%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAATCAYAAACQjC21AAAACXBIWXMAAAsSAAALEgHS3X78AAAD2ElEQVQ4y41UW1NTVxQ+gID2go5ACISQc09ObufknhMI4AwJgQR4qlCsD+0MNwVUoEEREBJuLTpQZGrVVusUe7Fv9dH+t6/rbKB9cSoP33zrrLX3t/Ze+6zFxaJJxGNJhMNxdHR0w9AjMJNpxOMpRCkWi5owjCjaUx3QVBm6bsCreaHIbsRiKZgdPYhG4myfBS6VbKdAkm32egNMKEQCZiqNWNyE2+2FEUogGgog2xlBTyaPZCLF4r25PB0kytZ5vUEkSYvry+Tg9QUgSApkxQ2J0GRvgb3ZAadLYNzGi2hpdaHB1sLsxqZmOJwuNDuczD5dp1JyrrSxhc3NLaysPMBGeRML80WsrZVw7+59rK6sYbF4D8vLq7i/tILV1TXMzS2gtL5B8SXs7HzDYltb21hfL2Nv/wDczOxt7D58hMffH+K7w8d4/vInfLu3i6cvnuHgySHK2xv4+egVdvcf4smPT/HD82fYO9jHi1cvMTf/Ne5Qggdr67hxcwZLS8vg4mYSw1+M4ub8NKYXpjFTnMXY3BimilP4cuYrjI5dw8T8BMbnxzG5MInZxVu4tXgbU3du0FV5XG6wwUYlulxvY9fmNL8BPUg1pDrwbTxEQYQqUz0FibFbIVskWzpmp6MVdlsTbI02WitAlkSCxKDSWq4/fw1yqAep3Oe4MngdiewIPOYgpFieQYz0Q4rmocQLcCcHEUwPQY1mEeoagCeeQZ0rjktCAheFJOqFMLjPRq/jnNCL8+4BXPQP4ZyYQwWfBefMgGuz+MR2ZRmq5TxqlAJskWE0x66C43OoFPrACXmc57uohkOTqJX7UC314RNtABW0yRKtpCQWVxFXndiWr5KSVbgy+MhdwAUStpJXCeQTcrjAp8HV+QZQ6ezCBTmDS75+VPM9qBUzqBFOmUBcK2WPmSGLOi2Hj9Xef301Yi8+FUmQl+hnVr2Q3dQl5hX49QT0sAk9kkLASCAST0PzR6C4g1A9+n/QDAbl5PuYg+B0IwwP9SZPr+oP6BDoJUUGGQK9uGUL74Pwfj9ntU97RycKA0Osndro93FRe0mKhmy3SY0fgS8QYr6zgLs6PIK/3r7Fmzd/Ymt7B80trey0bs2HdGcvotawiMQgSirbYMX+D9xvv/+B4ZFR1Dc04d27v6EbITha26gMfnRluxEzTQT1MIkJHxRjgsXiXfxy9BqlUhlHr3+Fk7rFmjr+gIFCYQgJGkmSfLbTMcFWqtv4xCRK5TJ8/iC7sub1I0YzL6CHYNC8swRPa/vBGqqqBrvdgYZGO72SDEXxMFizTRSV42/VA5km9FnwDyIndItmUbZkAAAAAElFTkSuQmCC&apos;); background-size: cover; display: block;\"></span>\n  <img class=\"gatsby-resp-image-image\" alt=\"performance\" title=\"performance\" src=\"/static/48c2adf6b7e87c1d92e31964e902b83c/f6b72/performance.png\" srcset=\"/static/48c2adf6b7e87c1d92e31964e902b83c/5a46d/performance.png 300w,\n/static/48c2adf6b7e87c1d92e31964e902b83c/0a47e/performance.png 600w,\n/static/48c2adf6b7e87c1d92e31964e902b83c/f6b72/performance.png 615w\" sizes=\"(max-width: 615px) 100vw, 615px\" style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\" loading=\"lazy\">\n    </span>\n<p>Performance 패널은 웹 페이지가 로드될 때, 실행되는 모든 작업을 보여줍니다. 브라우저의 메인 스레드에서 실행되는 자바스크립트를 차트 형태로 볼 수 있습니다. 따라서 이 패널을 통해 어떤 자바스크립트 코드가 느린지 확인할 수 있습니다.</p>\n<h3 id=\"크롬-개발자-도구의-lighthouse-패널\" style=\"position:relative;\"><a href=\"#%ED%81%AC%EB%A1%AC-%EA%B0%9C%EB%B0%9C%EC%9E%90-%EB%8F%84%EA%B5%AC%EC%9D%98-lighthouse-%ED%8C%A8%EB%84%90\" aria-label=\"크롬 개발자 도구의 lighthouse 패널 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>크롬 개발자 도구의 Lighthouse 패널</h3>\n<span class=\"gatsby-resp-image-wrapper\" style=\"position: relative; display: block; margin-left: auto; margin-right: auto;  max-width: 601px;\">\n      <span class=\"gatsby-resp-image-background-image\" style=\"padding-bottom: 98.33333333333334%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAsSAAALEgHS3X78AAACo0lEQVQ4y41Ua5PSQBDMr1BL8thHNk8ICQkXAhx3eCpnlViWpf7/f9LObJIDDk/vQxdhd6ZnerZ3HaUULiBkj+frr4QjhMATAoEg1hb8fbFHkFL+A7RPMQ7/EbzgE9kswvufSwv+5jUxJDAhdyCVthBSweccwfsaOjTQcdx3aBNcH5MixJvfDd7+auDODaQXWEIhekJJhIKSA0HytMGsKBEnGfxA2nWGM1YPqUIxnyPdLxHf1ciyzHZ0KfVEGMUpdnd7LJrlGSHNMAh8eO4EaRLj+7cjvh4e8fXzI47HoyX1PG+Qe0nIvyZKbaf92kAYZwXa3QO6uwc03Q7t9h7t7Qc0VHm1alHXNZIk6TscJL8MIozyAum8QV42WG7uUe8O6A4/sNp/QUqyTBjSOMJBurLdscS/gQ/ISYIAWWQs+yyWaBc5ZlUDE9Owc4MkT22Hp0PhREEn7NtxjPCJh2McQwHcBVcPtUASKWiyRUAJwtAaFTt1KP8LRwyzkYM9gtEivM7mHipb+8hr0tFSI5zZdIaqrBCasG+dOguI5Kq66At4tD/KHWPzPEdRFJhOp9QhyYqnKUo6nJJ8WFUV0jQ93YyxE03fqcGCzFwWfRwjptvB+1rr/i77mma4KlB86rBYLdHUjfVfMEodQT4MphEWH9cob29sXN009sDOYx3FDwKRTqYargrI5K4NOO/uSTIlTCIBN5JwKe5k+lOs48cKaV1g122xWa+xJrCMi1PlwwopqUzRLVtsujVaMv12u7XzO5+5w4Pml8W/n0PNEhhFFlLy2iYcl9GLUmUwOqRrF8EYc3XfHUFy2Ws8i2gYMOP80ZRKnq6e6qWfk1w8sJ6RSNcVNoc9brr2qeIV5EDyrPPncQ4/ojzHdzcxXNNLe82NeAl/AHh8O0Xn1a9fAAAAAElFTkSuQmCC&apos;); background-size: cover; display: block;\"></span>\n  <img class=\"gatsby-resp-image-image\" alt=\"lighthouse\" title=\"lighthouse\" src=\"/static/deea59a8b5e6b69ba546d800c16c9d16/d8f62/lighthouse.png\" srcset=\"/static/deea59a8b5e6b69ba546d800c16c9d16/5a46d/lighthouse.png 300w,\n/static/deea59a8b5e6b69ba546d800c16c9d16/0a47e/lighthouse.png 600w,\n/static/deea59a8b5e6b69ba546d800c16c9d16/d8f62/lighthouse.png 601w\" sizes=\"(max-width: 601px) 100vw, 601px\" style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\" loading=\"lazy\">\n    </span>\n<p>Lighthouse는 구글에서 만든 툴로, 웹사이트의 성능을 측정하고 개선 방향을 제시해 주는 자동화 툴입니다. Lighthouse를 이용하여 웹사이트의 성능 점수를 측정하고 개선 가이드를 확인함으로써 어떤 부분을 중점적으로 분석하고 최적화해야 하는지 알 수 있습니다.</p>\n<h3 id=\"webpack-bundle-analyzer\" style=\"position:relative;\"><a href=\"#webpack-bundle-analyzer\" aria-label=\"webpack bundle analyzer permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>webpack-bundle-analyzer</h3>\n<p>webpack을 통해 번들링된 파일이 어떤 코드, 즉 어떤 라이브러리를 담고 있는지 보여줍니다. 이 툴을 사용해 최종적으로 완성된 번들 파일 중 불필요한 코드가 어떤 코드이고, 번들 파일에서 어느 정도의 비중을 차지하고 있는지 확인 할 수 있습니다.</p>\n<blockquote>\n<p><a href=\"https://github.com/webpack-contrib/webpack-bundle-analyzer\">https://github.com/webpack-contrib/webpack-bundle-analyzer</a></p>\n</blockquote>\n<br/>\n<h2 id=\"lighthouse-툴을-이용한-페이지-검사\" style=\"position:relative;\"><a href=\"#lighthouse-%ED%88%B4%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-%ED%8E%98%EC%9D%B4%EC%A7%80-%EA%B2%80%EC%82%AC\" aria-label=\"lighthouse 툴을 이용한 페이지 검사 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Lighthouse 툴을 이용한 페이지 검사</h2>\n<h3 id=\"lighthouse-검사하기\" style=\"position:relative;\"><a href=\"#lighthouse-%EA%B2%80%EC%82%AC%ED%95%98%EA%B8%B0\" aria-label=\"lighthouse 검사하기 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Lighthouse 검사하기</h3>\n<span class=\"gatsby-resp-image-wrapper\" style=\"position: relative; display: block; margin-left: auto; margin-right: auto;  max-width: 601px;\">\n      <span class=\"gatsby-resp-image-background-image\" style=\"padding-bottom: 72%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAOCAYAAAAvxDzwAAAACXBIWXMAAAsSAAALEgHS3X78AAABqklEQVQ4y52UW1LjMBBFvY5JYstvJX6/Yoxt4oTM1AwFfLIFVgKbgA92eml1xkMMFI/5uNVSyT6+V2pZc2WKIN3BtF24/hK268N2PB47NB4lTBuGsLgKqobpw/KLI5UwLAltv7vB/e0dhCzQdj2yokZe1jjtBhRVjXLdcBWmc4CqKhb44Wwhfz0iuXhAdvmA4M8TZvIKmk0PhJaD+cLAbDbHfL5gJ7phTrTQBXQSOzTJobChC5c+4NKcKo9taCpakpeQYY60PkeUtzAt5++LL0qzEkGUMHyEslR8cahKmuMt0fR7tP0W9emAuh2wCuOjFykmjeO0wGb3E6tgunYsdqjcZEWFfjgnBzFFM6YHQFKAIKlQ1S2CMKG194FKmtps9dWEItmOP3U2xmGo4H0e14/XJkDP89D1HZ3sCbfLa3dfmU+AoW/gYoiwVvvXdJ8CPoIxMPAM/N7EaM726Dc7buLPYn0IjHwd1/sUq7iE50sGvtc2XwauXB3bZol83dHBFHxLoiT7trN/QNeTDLHoQFTLjKD/ictAi34KFd1XdWfTvKLI8k3rfAf4DG41lW45PTx0AAAAAElFTkSuQmCC&apos;); background-size: cover; display: block;\"></span>\n  <img class=\"gatsby-resp-image-image\" alt=\"useLighthouse\" title=\"useLighthouse\" src=\"/static/d841cd26e9d361b7f4b713042fdcd10e/d8f62/useLighthouse.png\" srcset=\"/static/d841cd26e9d361b7f4b713042fdcd10e/5a46d/useLighthouse.png 300w,\n/static/d841cd26e9d361b7f4b713042fdcd10e/0a47e/useLighthouse.png 600w,\n/static/d841cd26e9d361b7f4b713042fdcd10e/d8f62/useLighthouse.png 601w\" sizes=\"(max-width: 601px) 100vw, 601px\" style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\" loading=\"lazy\">\n    </span>\n<p>Mode는 기본 값인 ‘Navigation’으로 설정하고, Categories 항목에서 원하는 검사 주제를 선택하면 됩니다. 그리고 Device 항목은 모바일 환경으로 검사할지, 테스크톱 환경으로 검사할지 결정합니다. 만약 ‘Mobile’을 선택하면, Lighthouse는 모바일 사이즈의 화면에서 좀 더 느린 CPU와 네트쿼크 환경으로 검사를 진행합니다.</p>\n<p><strong>Mode 항목 값</strong></p>\n<ul>\n<li>Navigation: Lighthouse의 기본 값으로, 초기 페이지 로딩 시 발생하는 성능 문제를 분석</li>\n<li>Timespan: 사용자가 정의한 시간 동안 발생한 성능 문제를 분석</li>\n<li>Snapshot: 현재 상태의 성능 문제를 분석</li>\n</ul>\n<p><strong>Categories 항목 값</strong></p>\n<ul>\n<li>Performance: 웹 페이지의 로딩 과정에서 발생하는 성능 문제를 분석</li>\n<li>Accessibility: 서비스의 사용자 접근성 문제를 분석</li>\n<li>Best Practices: 웹사이트의 보안 측면과 웹 개발의 최신 표준에 중점을 두고 분석</li>\n<li>SEO: 검색 엔진에서 얼마나 잘 크롤링되고 검색 결과에 표시되는 분석</li>\n<li>Progressive Wep App: 서비스 워커와 오프라인 동작 등, PWA와 관련된 문제를 분석</li>\n</ul>\n<br/>\n<h3 id=\"lighthouse-검사-결과\" style=\"position:relative;\"><a href=\"#lighthouse-%EA%B2%80%EC%82%AC-%EA%B2%B0%EA%B3%BC\" aria-label=\"lighthouse 검사 결과 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Lighthouse 검사 결과</h3>\n<span class=\"gatsby-resp-image-wrapper\" style=\"position: relative; display: block; margin-left: auto; margin-right: auto;  max-width: 601px;\">\n      <span class=\"gatsby-resp-image-background-image\" style=\"padding-bottom: 98.33333333333334%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAsSAAALEgHS3X78AAACo0lEQVQ4y41Ua5PSQBDMr1BL8thHNk8ICQkXAhx3eCpnlViWpf7/f9LObJIDDk/vQxdhd6ZnerZ3HaUULiBkj+frr4QjhMATAoEg1hb8fbFHkFL+A7RPMQ7/EbzgE9kswvufSwv+5jUxJDAhdyCVthBSweccwfsaOjTQcdx3aBNcH5MixJvfDd7+auDODaQXWEIhekJJhIKSA0HytMGsKBEnGfxA2nWGM1YPqUIxnyPdLxHf1ciyzHZ0KfVEGMUpdnd7LJrlGSHNMAh8eO4EaRLj+7cjvh4e8fXzI47HoyX1PG+Qe0nIvyZKbaf92kAYZwXa3QO6uwc03Q7t9h7t7Qc0VHm1alHXNZIk6TscJL8MIozyAum8QV42WG7uUe8O6A4/sNp/QUqyTBjSOMJBurLdscS/gQ/ISYIAWWQs+yyWaBc5ZlUDE9Owc4MkT22Hp0PhREEn7NtxjPCJh2McQwHcBVcPtUASKWiyRUAJwtAaFTt1KP8LRwyzkYM9gtEivM7mHipb+8hr0tFSI5zZdIaqrBCasG+dOguI5Kq66At4tD/KHWPzPEdRFJhOp9QhyYqnKUo6nJJ8WFUV0jQ93YyxE03fqcGCzFwWfRwjptvB+1rr/i77mma4KlB86rBYLdHUjfVfMEodQT4MphEWH9cob29sXN009sDOYx3FDwKRTqYargrI5K4NOO/uSTIlTCIBN5JwKe5k+lOs48cKaV1g122xWa+xJrCMi1PlwwopqUzRLVtsujVaMv12u7XzO5+5w4Pml8W/n0PNEhhFFlLy2iYcl9GLUmUwOqRrF8EYc3XfHUFy2Ws8i2gYMOP80ZRKnq6e6qWfk1w8sJ6RSNcVNoc9brr2qeIV5EDyrPPncQ4/ojzHdzcxXNNLe82NeAl/AHh8O0Xn1a9fAAAAAElFTkSuQmCC&apos;); background-size: cover; display: block;\"></span>\n  <img class=\"gatsby-resp-image-image\" alt=\"lighthouse\" title=\"lighthouse\" src=\"/static/deea59a8b5e6b69ba546d800c16c9d16/d8f62/lighthouse.png\" srcset=\"/static/deea59a8b5e6b69ba546d800c16c9d16/5a46d/lighthouse.png 300w,\n/static/deea59a8b5e6b69ba546d800c16c9d16/0a47e/lighthouse.png 600w,\n/static/deea59a8b5e6b69ba546d800c16c9d16/d8f62/lighthouse.png 601w\" sizes=\"(max-width: 601px) 100vw, 601px\" style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\" loading=\"lazy\">\n    </span>\n<p>위 사진에 점수 아래에 <code class=\"language-text\">METRICS</code> 항목에 있는 지표를 웹 바이탈(Web Vitals)이라고 부릅니다. </p>\n<p>Lighthouse에서 검사한 웹 바이탈을 하나씩 살펴 보겠습니다.</p>\n<h4 id=\"first-contentful-paintfcp\" style=\"position:relative;\"><a href=\"#first-contentful-paintfcp\" aria-label=\"first contentful paintfcp permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>First Contentful Paint(FCP)</h4>\n<p>FCP는 페이지가 로드될 때 브라우저가 DOM 콘텐츠의 첫 번째 부분을 렌더링 하는 데 걸리는 시간에 관한 지표입니다. </p>\n<h4 id=\"speed-indexsi\" style=\"position:relative;\"><a href=\"#speed-indexsi\" aria-label=\"speed indexsi permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Speed Index(SI)</h4>\n<p>SI는 페이지 로드 중에 콘텐츠가 시각적으로 표시되는 속도를 나타내는 지표입니다.</p>\n<h4 id=\"largest-contentful-paintlcp\" style=\"position:relative;\"><a href=\"#largest-contentful-paintlcp\" aria-label=\"largest contentful paintlcp permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Largest Contentful Paint(LCP)</h4>\n<p>LCP는 페이지가 로드될 때 화면 내에 있는 가장 큰 이미지나 텍스트 요소가 렌더링되기까지 걸리는 시간을 나타내는 지표입니다.</p>\n<h4 id=\"time-to-interactivetti\" style=\"position:relative;\"><a href=\"#time-to-interactivetti\" aria-label=\"time to interactivetti permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Time to Interactive(TTI)</h4>\n<p>TTI는 사용자가 페이지와 상호 작용이 가능한 시점까지 걸리는 시간을 측정한 지표입니다. 여기서 상호 작용이란 클릭 또는 기보드 누름 같은 사용자 입력을 의미합니다. 즉, 이 시점 전까지는 화면이 보이더라도 클릭 같은 입력이 동작하지 않습니다.</p>\n<h4 id=\"total-blocking-timetbt\" style=\"position:relative;\"><a href=\"#total-blocking-timetbt\" aria-label=\"total blocking timetbt permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Total Blocking Time(TBT)</h4>\n<p>TBT는 페이지가 클릭, 키보드 입력 등의 사용자 입력에 응답하지 않도록 차단된 시간을 종합 지표입니다.</p>\n<h4 id=\"cumulative-layout-shiftcls\" style=\"position:relative;\"><a href=\"#cumulative-layout-shiftcls\" aria-label=\"cumulative layout shiftcls permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Cumulative Layout Shift(CLS)</h4>\n<p>CLS는 페이지 로드 과정에서 발생하는 예기치 못한 레이아웃 이동을 측정한 지표입니다.  레이아웃 이동이란 화면상에서 요소의 위치나 크기가 순간적으로 변하는 것을 말합니다.</p>\n<br />\n<h3 id=\"opportunities-섹션과-diagnostics-섹션\" style=\"position:relative;\"><a href=\"#opportunities-%EC%84%B9%EC%85%98%EA%B3%BC-diagnostics-%EC%84%B9%EC%85%98\" aria-label=\"opportunities 섹션과 diagnostics 섹션 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Opportunities 섹션과 Diagnostics 섹션</h3>\n<span class=\"gatsby-resp-image-wrapper\" style=\"position: relative; display: block; margin-left: auto; margin-right: auto;  max-width: 608px;\">\n      <span class=\"gatsby-resp-image-background-image\" style=\"padding-bottom: 111.33333333333333%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAWCAYAAADAQbwGAAAACXBIWXMAAAsSAAALEgHS3X78AAACpElEQVQ4y31VWbKjMBDjHJkEsFkNmJ0sH6+m5v6H6pEcO5WFlw9VxwYLdbfaidq2lWEYZJomsdaKUsohTdNdqCdovpckEsexJAR+Rx1ISJjnuXtAuIOe+B0pcPI44r26aWQYB+nBQXFRnWUyYXE+n2UcR9m2TYqi+CDVnqzRWv7i4z8A44p3DTBUleSIUYGDBouQ8jzPUpalaBwk3hUW2JsoAnFGNNjLqVTfPxiVSSp918kKZUEl4+12k77vXV2eiXnoAqJ/VJjlMiotBfY6nYnCe1FTgNCyMaMjCA0KKvfqmEFNxvQLLW2ppUbsKhCCPDIgHPpOlnV16a6I1+tVKpSBdXwmfZQBSFIl1iD9NpMKhNZ4wrZMZJ0HNOPsiNipw+HgUn23TJLQHidYhRZJJc+QnVFoipKxze+EdVWIRQ2ZbodIwrquX0C1RN32YuyEaN3amFpaoK5KkN8zifigaVpHZoxxhATXAfe9Ruxykf78I3ba3Lr1z3iOipVKUUMseKiBQVmf0+nkzM34jPveUU7HPxJz7Sck9hNCMpYlqtBNfoUeJDm7S4RUQ9rcowdLWCY0Zw9RBXYLdfQhp4SNCZ1m1zfvTz43flISPzkvkxQIS8i0UDgvi/MfSQganODegEjz9jgwADWQfiPsoJA+5OFAEkgngGZnuhYYMRHVN8IKhAOasvmUL5fLI1WXLlJfkHKFwQ/zuwKFeiX9UBhSDuoWrC282eDwiLm9q9Mubb0zjh81DCkHMqpzhHiZt8vAGwbof5nvB6GtE1kmC5LVkbDDAbRTg9FUOpEjfQevxTuXb5h5R5jhqzT26i+HoJCg91qUowOxu328kq8KSUglJHquISNvbk4Qwd+//S18EHJKaN5gYkZesNzntDADZ52dv4Z3wv/SPoD29D+DBQAAAABJRU5ErkJggg==&apos;); background-size: cover; display: block;\"></span>\n  <img class=\"gatsby-resp-image-image\" alt=\"section\" title=\"section\" src=\"/static/5e57d2f478be6d42d2198eaa2ea84419/18872/section.png\" srcset=\"/static/5e57d2f478be6d42d2198eaa2ea84419/5a46d/section.png 300w,\n/static/5e57d2f478be6d42d2198eaa2ea84419/0a47e/section.png 600w,\n/static/5e57d2f478be6d42d2198eaa2ea84419/18872/section.png 608w\" sizes=\"(max-width: 608px) 100vw, 608px\" style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\" loading=\"lazy\">\n    </span>\n<p>이 두 섹션은 웹 페이지의 문제점과 해결 방안, 그리고 문제를 해결함으로써 얻을 수 있는 이점이 무엇인지 보여 줍니다. Opportunities 섹션은 페이지를 더욱 빨리 로드하는 데 잠재적으로 도움되는 제안을 나열하며, Diagnostics 섹션은 로드 속도와 직접적인 관계는 없지만 성능과 관련된 기타 정보를 보여 줍니다.</p>\n<p><strong>따라서 이 두 섹션을 통해 해당 서비스의 어느 부분을 개선해야 성능을 향상할 수 있는지 쉽게 파악할 수 있습니다.</strong></p>\n<h3 id=\"br\" style=\"position:relative;\"><a href=\"#br\" aria-label=\"br permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><br/></h3>","frontmatter":{"title":"최적화 기법 종류와 Lighthouse 툴","date":"July 22, 2023"}}},"pageContext":{"slug":"/frontendPerformance/optimizationAndTools/","previous":{"fields":{"slug":"/frontendPerformance/whyPerformance/"},"frontmatter":{"title":"성능 최적화는 왜 필요할까?"}},"next":{"fields":{"slug":"/frontendPerformance/imageOptimization/"},"frontmatter":{"title":"이미지 최적화"}}}}}