프론트엔드 성능 최적화: 토스 개발팀의 전략과 인사이트

사용자 경험이 매우 중요한 웹 서비스에서 최적화는 빼놓을 수 없는 주제인데요. 그런 맥락에서 이번 토스 모닥불 EP9 "프론트엔드 서비스 최적화? 토스에서는 '이렇게' 합니다!" 를 흥미롭게 시청했습니다. 유익한 내용이 많아서 최적화 기본 개념부터 React 기반 최적화 방법까지 영상 내용을 토대로 인사이트를 정리해보았습니다.


최적화의 기본 원칙

  1. 최적화는 필요할 때만: 하면 좋을 것 같다면 하지 말고, 진짜 해야 한다고 느껴지면 프로파일링부터 시작합니다. 하지만 실제 최적화가 필요한 시점을 생각보다 늦게 알 수 있으므로 신중히 접근해야 합니다.

  2. 현실적인 테스트 환경: 일반적으로 최적화 작업은 좋은 컴퓨터와 빠른 네트워크 환경에서 테스트되기 때문에 실제 사용자 경험을 반영하지 못할 수 있습니다. 따라서 최악의 상황에서도 서비스가 원활히 동작하는지 테스트해야 합니다.

  3. 트레이드오프의 이해: 최적화를 통해 성능을 개선했다면, 그 과정에서 개발 시간이나 유지보수 비용 같은 다른 요소들이 희생될 수 있습니다. "은탄환"은 존재하지 않으므로, 트레이드오프를 명확히 인지해야 합니다.


주요 최적화 영역

1. 초기 로딩 속도

  • 번들 크기 관리: 번들이 클수록 대역폭과 지연시간에 영향을 미칩니다. 또한 번들을 작은 단위로 쪼개면 캐싱에도 유리합니다.

  • 필요한 리소스 우선 로드: React에서는 화면에 꼭 필요한 요소만 먼저 렌더링하고, 나머지는 비동기로 로드합니다.

  • 프리페칭: 페이지 이동 시 필요한 리소스를 미리 가져와 페이지 전환 속도를 향상시킵니다.

2. 런타임 성능

  • 반응성 개선: 사용자 입력에 대한 빠른 반응성을 확보하여 사용 중 부드러운 경험을 제공합니다.

  • 성능 측정 방법: 런타임: FPS(Frame Per Second)를 통해 성능을 확인하고, 크롬 개발자 도구의 프로파일러를 사용하여 렌더링 병목 현상을 분석합니다.

  • FPS 유지: 드래그 앤 드롭 같은 동작이 60프레임을 유지하는지 확인 합니다.메인 스레드 블로킹 여부를 파악하고, 프로파일러에서 노란색 막대를 줄이는 방향으로 개선 합니다.

React에서의 렌더링 최적화

  1. 불필요한 상태 업데이트 줄이기: useEffect 안에서 상태를 변경해 연쇄적으로 리렌더링이 발생하지 않도록 주의 합니다. 파생 상태는 별도의 상태로 관리하기보다, 계산된 값으로 사용 합니다.

  2. 메모화 활용: React.memo를 사용하여 컴포넌트가 불필요하게 렌더링되지 않도록 하여 렌더링이 필요한 특정 컴포넌트만 업데이트되도록 최적화 합니다.

프론트엔드 개발자로써 성능 최적화는 항상 도전적인 과제인데요. 이번 영상을 통해 최적화의 개념과 실행 방법을 정리할 수 있었습니다. 언제, 어떻게 최적화를 해야 할지 고민이 될 때 이 영상을 참고하면 좋을것 같습니다. 보다 더 자세한 내용은 영상을 통해 확인해보세요.


https://www.youtube.com/watch?v=upUON56UEYo

- YouTube

www.youtube.com

 - YouTube

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2024년 12월 26일 오전 2:34

 • 

저장 19조회 2,484

댓글 0

    함께 읽은 게시물

    리더. 국어사전을 보면 조직이나 단체에서 전체를 이끌어가는 위치에 있는 사람이라고 기술되어 있다. 지식백과사전에는 어떤 조직이나 단체에서 목표의 달성이나 방향에 따라 이끌어 가는 중심적인 위치에 있는 사람, 구성원들에 대한 결정의 책임을 지고 또한 집단 외부와의 조정 기능의 역할도 하는 사람이라고 되어 있다.

    ... 더 보기

    [시사뉴스] 【박성태 칼럼】 리더가 독재를 하게 되는 두가지 이유

    www.sisa-news.com

    [시사뉴스] 【박성태 칼럼】 리더가 독재를 하게 되는 두가지 이유

    이력서에서 소프트스킬을 어떻게 보여줄 수 있을까요?

    ... 더 보기

    LinkedIn Seulki Kang 페이지: 소프트스킬이 드러나는 이력서, 데이터분석가 도메인 분야

    www.linkedin.com

    LinkedIn Seulki Kang 페이지: 소프트스킬이 드러나는 이력서, 데이터분석가 도메인 분야

     • 

    저장 48 • 조회 5,901


    주니어 개발자들이 읽으면 좋은 테크 아티클 모음📚

    F-Lab 에서 주니어 개발자들이(사실 개발자라면 누구나) 보시면 좋을 아티클 모음을 공유해 주었네요! 검색엔진부터 비동기 처리, NoSQL 등 다양한 분야의 아티클들이 공유되어 있으니 관심있으신 분들은 보시면 좋겠습니다. F-Lab 에서 공유해주신 아티클 주제를 나열해보면 다음과 같습니다. 📌 구글이 직접 말하는 검색엔진의 원리 (tali.kr) 📌 검색 엔진은 어떻게 작동하는가 (xo.dev) 📌 네이버의 검색엔진의 특징과 알고리즘 (tistory.com) 📌 [네이버 블로그]네이버 검색의 원리 : 네이버 블... 더 보기

    주니어 개발자들이 읽으면 좋은 테크 아티클 모음

    F-Lab : 상위 1% 개발자들의 멘토링

    주니어 개발자들이 읽으면 좋은 테크 아티클 모음

     • 

    저장 142 • 조회 3,846


    📢 실무 프로젝트로 성장하고 싶은 주니어 개발자 분들에게

    ... 더 보기

    패스트캠퍼스 : INNER CIRCLE | 패스트캠퍼스

    bit.ly

    패스트캠퍼스 : INNER CIRCLE | 패스트캠퍼스

     • 

    저장 73 • 조회 5,790


    React 면접 전 살펴보기 위한 Q&A 40가지 (2024년 ver)

    1. R

    ... 더 보기

    Top 40 ReactJS Interview Questions and Answers in 2024 | Simplilearn

    Simplilearn.com

    Top 40 ReactJS Interview Questions and Answers in 2024 | Simplilearn

     • 

    댓글 1 • 저장 218 • 조회 11,578


    고용노동부가 주관하는 청년미래플러스 사업, 이전에 공유했었는데요.

    ... 더 보기

    청년미래플러스 참여 재직자 1기 모집

    한국소프트웨어산업협회

    청년미래플러스 참여 재직자 1기 모집