Giter VIP home page Giter VIP logo

go-sopt-web / areumseo Goto Github PK

View Code? Open in Web Editor NEW
0.0 0.0 0.0 18.07 MB

하...당신...지금 ''오타쿠''를 ''무시''하는 건가요?! 『오타쿠』는 원래 ''무언가에 열중하는 사람''이라는 뜻..이랄까..? 암튼 당신네들 「멸칭」이랑은 상관없다고!! 키사마 ..이것도 헌법위반에 명예훼손인 거 아려나 몰라? 아무튼 당신네들...이렇게 나온다면 나도 참는 건 절대로 「무리」..한 번만 더 그러면 정말로 부.숴.버.릴.거.야.

CSS 21.13% HTML 10.70% JavaScript 68.17%

areumseo's Introduction

웹파트-서아름 해삐 웹팟에 오신 것을 환영합니다🌼

areumseo's People

Contributors

arooming avatar happhee avatar

areumseo's Issues

[1주차 생각과제] 웹 최적화

💟 웹 최적화

웹 최적화란, 최고의 웹 성능을 구현하기 위한 최적화 조건을 만드는 것이다.

웹 애플리케이션은 환경에 따라 같은 데이터를 이용해도 속도가 달라진다. 예를 들어 같은 웹 사이트를 이용하더라도 PC에서의 속도와 태블릿에서의 속도, windows 상에서의 속도와 ios 상에서의 속도가 다를 수 있다는 것이다. 또한, 사용자가 느끼는 성능향상은 상당히 주관적이기도 하다.

성능 최적화는 단순히 각종 비용을 줄이는 측면에서 볼 수도 있다. 프로그램은 리소스를 소모하며 동작하고, 처리해야 할 작업이 크고 복잡할 수록 더 많은 리소스를 소모하게 되며, 이는 성능 저하로 이어진다.

따라서 웹 프론트엔드 개발자는 성능 개발을 위해 최소한의 데이터로 가장 빠른 시간 안에 사용자가 만족할 만한 최적의 화면을 띄워야한다.


💟 웹 최적화가 필요한 이유!

웹 최적화가 필요한 이유는 사용자 경험, 사용자 이탈률, 수익과 관련이 있다.

최적화가 되지 않은 웹 페이지는 화면 로딩 시간이 길어질 수 밖에 없고, 이는 사용자 이탈률을 증가시킨다. 나 또한 그렇다. 웹 사이트의 로딩 시간이 길어지면 몇 초 사이에 다른 웹 사이트를 찾아 나선다. 이처럼 웹 사이트의 첫 페이지는 사용자 경험에 영향을 미치고, 사용자 경험은 서비스의 인상과 브랜드 가치에 영향을 미칠 수 밖에 없는 것이다.

반대로 생각하면, 최적화가 잘 된 웹 페이지는 화면 로딩 시간이 짧게 소요되고, 이는 사용자 이탈률을 감소시킨다. 웹 사이트의 이용자가 많아질 수록 회원 가입, 상품 구매, 다운로드 등의 행위를 한 방문자의 비율은 증가한다. 결과적으로 이탈률 감소와 전환율 증가는 수익증대로 이어지게 된다.

따라서 서비스 성능 향상을 위해서라 웹 최적화는 반드시 필요하다고 할 수 있다.


💟 웹 최적화를 하기 위해 어떤 개발을 해야 할까?

1️⃣ HTML 마크업 최적화

➡️태그의 중첩 최소화 -> 구성 단순화

➡️공백, 주석 등을 제거하여 사용

/* 최적화 전 - 불필요한 태그, 공백, 주석 사용 */
<html>
  <head>
    ...
  </head>

  <body>

    <div>

            <div>
<!-- blar blar blar --><p>hello</p>
            </div>

    </div>
  </body>
</html>
/* 최적화 후 - 간결한 마크업 사용 */
<html>
  <head>
    ...
  </head>
  <body>
    <p>hello</p>
  </body>
</html>

2️⃣ JS(Java Script) 최적화

➡️강제 동기 레이아웃: DOM 조작이 없는데도 레이아웃 과정을 강제로 일으키는 것

➡️강제 동기 레이아웃 발생 -> JS 실행 시간 증가

➡️강제 동기 레이아웃이 발생할 수 있는 코드를 최대한 지양해야 한다

강제 동기 레이아웃 발생 가능 코드

var boxTemp1 = box1.offsetHeight
  console.log(boxTemp1);
  var boxTemp2 = box2.offsetHeight
  console.log(boxTemp2);
  var boxTemp3 = box3.offsetHeight
  console.log(boxTemp3);
  var boxTemp4 = box4.offsetHeight
  console.log(boxTemp4);
  var boxTemp5 = box5.offsetHeight
  console.log(boxTemp5);
  var boxTemp6 = box6.offsetHeight
  console.log(boxTemp6)

강제 동기 레이아웃 개선 코드

var boxTemp1 = box1.offsetHeight
  var boxTemp2 = box2.offsetHeight
  var boxTemp3 = box3.offsetHeight
  var boxTemp4 = box4.offsetHeight
  var boxTemp5 = box5.offsetHeight
  var boxTemp6 = box6.offsetHeight
  console.log(boxTemp1);
  console.log(boxTemp2);
  console.log(boxTemp3);
  console.log(boxTemp4);
  console.log(boxTemp5);
  console.log(boxTemp6);

3️⃣ 이미지 최적화

➡️ img 지연로딩 활용

➡️ loading: 이미지를 브라우저 화면에 지연/ 병렬 로딩 가능

➡️ auto: 디폴트 값/ loading 속성을 쓰지 않은 것과 같음

➡️ lazy: 화면에 보이는 부분 먼저 출력, 화면 바깥쪽 이미지 로딩 X

➡️ eager: 화면 위치에 관계없이 페이지가 로딩 되자마자 이미지 로드

 <img src="item.jpg" loading="lazy" alt>

4️⃣사용하지 않는 CSS 제거

➡️Unused css는 구글 크롬 라이트 하우스를 통해 확인 가능

5️⃣ 애니매이션 최적화

➡️ 애니메이션 구현 시, css를 통해 구현하는 것이 성능면에서 이득이다.

➡️ transform은 합성만 발생시키는 속성이기 때문에, 애니메이션에서 사용 시 렌더링 속도를 향상시킬 수 있다.

💟 웹 최적화를 위한 개발을 꼭 해야 할까?

구글 자료 조사에 따르면, 페이지가 3초 안에 로딩되지 않을 경우 53%의 사용자가 떠나고 로딩 시간이 길어질 수록 그에 따른 이탈률은 더욱 증가한다고 한다. 이커머스와 같은 서비스의 경우, 페이지에 여러 상품과 광고 및 수 많은 이미지를 처리 해야한다. 이와 더불어 글로벌 서비스를 생각한다면 느린 인터넷 환경에도 대비 해야하고, 여러 사물을 통한 접속에도 대비해야 한다. 이러한 과정에서 웹 최적화가 되어있지 않다면 어떻게 될까? 사용자에게는 더 이상 해당 웹 사이트를 사용할 이유가 사라질 것이다.

IT 기능의 상향 평준화로 인해 단순히 사용자에게 기능을 제공하는 것에서 그치는 것이 아닌, 사용자에게 기분 좋은 경험을 선사해주는 것까지 웹 사이트의 역할이 되었다고 생각한다. 사용자 친화적인 웹을 구현하기 위해 최적화에 더 신경을 써야겠다는 생각이 든다!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.