우문현답
愚 問 賢 答
회사별 면접직군별진행 방식
    홈›회사별›토스›프론트엔드›질문 상세
    問
    토토스프론트엔드직무 역량2026년 출제

    브라우저 렌더링 성능을 고려하여 개발하고 최적화한 경험이 있다면 구체적으로 어떤 방법을 사용했는지 이야기해 주세요.

    답변 미리보기

    모바일 웹뷰 프로젝트에서 스크롤할 때마다 프레임이 튀는 현상이 있었습니다. 처음에는 이미지 최적화 문제라고 생각했으나, DevTools 프로파일러로 확인해 보니…

    예상 답변 시간
    60~90초
    예상 꼬리질문
    3회
    난이도
    난이도 중상
    출제 빈도
    높음
    INTERVIEWER'S INTENT · 면접관의 의도

    이 질문, 네 갈래로 뜯어봅니다.

    면접관이 이 한 문장으로 확인하려는 것들. 각 갈래를 알면 답의 뼈대가 잡혀요.

    問
    01
    성능 개선 경험이 있는가?
    렌더링 성능을 개선한 경험의 흔적이 답에 있어야 합니다. 없으면 면접관이 '어떤 경험이 있었나요?'를 추가로 묻는 경우가 자주 보입니다.
    骨
    02
    구체적인 방법은 무엇인가?
    모바일 웹뷰 환경에서 사용한 구체적인 방법이 언급되어야 합니다. 없으면 면접관이 '더 자세히 설명해 주세요'라고 요청하는 자리가 자주 보입니다.
    語
    03
    최적화 접근 방법은 어떤가?
    렌더링 성능을 최적화하기 위한 접근 방법의 흔적이 있어야 합니다. 없으면 면접관이 '어떤 접근 방식을 사용했나요?'를 추가로 묻는 경우가 많습니다.
    本
    04
    문제 해결 경험이 있는가?
    렌더링 성능 문제 해결 경험의 흔적이 답에 있어야 합니다. 없으면 면접관이 '어떤 문제를 해결했나요?'를 궁금해하는 경우가 자주 보입니다.
    말로 해봐야 는다
    읽는 것과 말하는 건 다릅니다.
    이 질문, 소리 내어 답해 볼까요?
    토스 면접관 페르소나가 이 질문을 던지고, 당신의 답에 꼬리질문으로 되물어요.
    음성으로 답해보기
    레이아웃 스래싱·리플로우 최소화 중심으로 실제 개선 과정을 설명한다약 85초이미지 지연 로딩·코드 스플리팅 적용 경험을 중심으로 전달한다약 80초리페인트·합성 최소화 위주로 CSS 최적화 경험을 전달한다약 78초
    렌더링 병목 원인을 찾아 개선한 경험 말하기
    약 85초

    레이아웃 스래싱·리플로우 최소화 중심으로 실제 개선 과정을 설명한다

    모바일 웹뷰 프로젝트에서 스크롤할 때마다 프레임이 튀는 현상이 있었습니다. 처음에는 이미지 최적화 문제라고 생각했으나, DevTools 프로파일러로 확인해 보니 JavaScript가 스크롤 이벤트 핸들러에서 DOM 레이아웃을 강제로 읽고 있었습니다. offsetTop, clientHeight를 스크롤마다 반복 호출하면서 레이아웃 스래싱이 발생하는 구조였습니다.

    수정 방향은 두 가지였습니다. 첫째, Intersection Observer로 스크롤 이벤트 직접 리스닝을 제거하였고, 둘째, 레이아웃 값 읽기와 쓰기를 requestAnimationFrame 한 사이클 안에서 분리하였습니다. 결과적으로 스크롤 중 프레임이 42에서 59 수준으로 개선되었습니다. 다만 Intersection Observer를 처음 사용해 보아 rootMargin 설정을 잘못 잡아 뷰포트 진입 감지가 100px 이상 늦게 트리거된 실수가 있었습니다.

    모바일 웹뷰는 네이티브보다 GPU 자원이 제한적이므로 will-change, transform 같은 레이어 분리 힌트도 함께 사용하였으나, 과도하게 적용하면 오히려 메모리 압박이 생긴다는 것을 알고 나서부터 필요한 요소에만 선택적으로 사용하였습니다.

    이 결의 특징
    프레임 튀는 현상을 이미지 문제로 오판했다가 프로파일러로 레이아웃 스래싱을 찾아낸 전환점이 담겨 있습니다. rootMargin 설정 실수까지 솔직히 짚으면서 프레임 42에서 59로 개선된 수치가 보입니다.
    이 결이 통하는 자리
    원인을 잘못 짚었던 과정을 감추지 않고 도구로 재확인한 흐름이 구체적으로 살아 있을 때 통합니다. 과도한 최적화가 메모리 압박을 부른다는 절제된 판단이 이어질 때 면접관이 읽는 결이 보입니다.
    이미지와 리소스 최적화 중심으로 설명하기
    약 80초

    이미지 지연 로딩·코드 스플리팅 적용 경험을 중심으로 전달한다

    팀 프로젝트에서 모바일 웹뷰의 초기 렌더링이 3.8초 넘게 걸리는 문제가 있었습니다. 네트워크 탭을 보니 이미지 4장이 각각 1MB 이상이었고 모두 첫 화면에 올라오는 리소스였어요. WebP로 변환하고 지연 로딩 속성을 추가해서 초기 화면에 없는 이미지는 뷰포트 진입 시 로드되게 바꿨습니다.

    이미지 외에 번들 사이즈도 문제였습니다. 라이브러리 한 개를 통째로 import하고 있었는데 실제로는 함수 2개만 쓰고 있었어요. 트리쉐이킹이 작동하도록 import 경로를 개별 모듈로 바꾼 후 번들이 340KB에서 210KB로 줄었습니다. 처음에는 라이브러리 문서를 안 읽고 기존 코드 패턴만 따라 했다가 효과가 없었고, 공식 문서에서 named export 방식을 확인하고 나서야 줄일 수 있었습니다.

    모바일 웹뷰 렌더링 최적화는 진짜 병목이 어디냐를 먼저 보는 것부터 시작한다고 느꼈습니다. 프로파일러를 먼저 열고, 숫자를 보고 나서 고치는 순서가 중요했습니다.

    이 결의 특징
    3.8초 렌더링 문제를 이미지 용량과 번들 사이즈로 좁혀 340KB에서 210KB로 줄인 구체적 수치가 담겨 있습니다. 공식 문서를 안 읽어 헛수고했던 실패까지 함께 있는 결이 보입니다.
    이 결이 통하는 자리
    프로파일러로 병목을 먼저 확인하는 순서가 구체적 장면으로 살아 있을 때 통합니다. 숫자를 보고 나서 고친다는 원칙이 실패 경험에서 도출될 때 통하는 결이 보입니다.
    CSS와 렌더링 파이프라인 관점으로 설명하기
    약 78초

    리페인트·합성 최소화 위주로 CSS 최적화 경험을 전달한다

    웹뷰 환경에서 애니메이션이 뚝뚝 끊기는 이슈를 보고 렌더링 파이프라인을 다시 공부한 적이 있습니다. 브라우저 렌더링은 크게 레이아웃, 페인트, 합성 단계인데, 이 중 레이아웃과 페인트를 건드리는 CSS 속성이 바뀌면 전체 파이프라인이 다시 돌면서 비용이 커집니다.

    개선 방향은 opacity와 transform만 바꾸는 애니메이션으로 전환하는 것이었습니다. 이 두 속성은 합성 단계에서만 처리돼 레이아웃·페인트 비용을 건드리지 않습니다. 기존에 left, top을 바꿔서 이동하던 애니메이션을 transform translate로 교체했더니 모바일에서 프레임 드랍이 거의 사라졌습니다. 처음엔 transform이 좌표 기준을 바꿔서 레이아웃이 틀어지는 줄 알고 주저했는데, 실제로는 시각적 위치만 바뀌고 레이아웃 흐름은 그대로여서 괜찮았어요.

    모바일 웹뷰는 CPU·GPU 자원이 제한적이라, 렌더링 비용이 큰 속성 하나가 전체 체감 속도를 확 떨어뜨립니다. CSS 속성 하나가 어느 렌더링 단계를 건드리는지 습관적으로 확인하는 감각이 생긴 게 이 경험의 가장 큰 수확입니다.

    이 결의 특징
    애니메이션이 끊기는 이슈를 렌더링 파이프라인 재학습으로 풀어내고, transform 전환으로 프레임 드랍을 없앤 구체 사례가 담겨 있습니다. 좌표가 틀어질까 주저했던 오해까지 솔직히 짚은 결이 보입니다.
    이 결이 통하는 자리
    이론적 지식을 실제 속성 하나의 교체로 검증한 흐름이 살아 있을 때 통합니다. 어느 렌더링 단계를 건드리는지 습관적으로 확인한다는 결론이 경험에서 나올 때 통하는 결이 보입니다.
    !
    위 답변은 여러 풀이 중 한 가지 예시입니다. 정답이 아니며, 외워서 그대로 말하면 면접관이 다음 질문을 그 자리에서 시작하는 경우가 많습니다. 본인의 프로젝트·기준·숫자로 다시 짜는 자리로만 쓰세요.
    ✕자주 빠지는 자리

    같은 실수가 반복돼요. 이것만 피해도 절반은 갑니다.

    • ✕떨어뜨린 옵션이 1개라도 있는가? "이게 답이었어요"만으로는 의사결정이 아니라 그냥 선택입니다.
    • ✕선택 기준이 그 프로젝트에 한정되는가? "성능이 좋아서"는 일반론, "우리 트래픽이 X 패턴이라서"가 본인의 답입니다.
    • ✕결과 숫자 1개를 정확히 말할 수 있는가? P95·QPS·적중률 — 무엇이든 1개. 숫자가 없으면 직감으로 한 일처럼 들리기 쉽습니다.
    • ✕지금 다시 한다면 어떻게 할지 답할 수 있는가? "잘했다"보다 "이건 다르게 했을 것 같다"가 더 깊은 인상을 남깁니다.
    ▶이어질 꼬리질문

    진짜 면접은 두 번째 질문부터예요. 이 답 뒤에 따라올 법한 것들.

    壹구체적으로 어떤 방법을 사용하셨나요?
    貳이 방법의 효과는 어땠나요?
    參다른 접근 방식은 고려해보셨나요?
    이제, 직접 답해볼 차례예요.
    눈으로 읽은 답은 면접장에서 나오지 않아요. 토스 면접관과 이 질문으로 한 번 대화해 보세요.
    이 질문으로 모의면접 해보기
    또는, 다음 질문으로

    같은 흐름에서 자주 이어지는 질문들이에요.

    토스 · 프론트엔드
    브라우저 렌더링 성능을 고려하여 최적화를 진행한 경험이 있다면, 어떤 방법을 사용했는지 설명해 주세요.
    이 질문 보기
    당근마켓 · 프론트엔드
    모바일 웹뷰 환경에서 렌더링 성능을 개선하기 위한 구체적인 방법은 어떤 것이 있을까요?
    이 질문 보기
    세나클소프트 · 프론트엔드
    프론트엔드 성능 최적화 경험이 있으시다면, 어떤 기법을 사용하셨는지 구체적인 사례를 들어 설명해 주세요.
    이 질문 보기
    안내 · 이 페이지의 질문·답변·꼬리질문은 유사 직군 채용 시장의 공개된 면접 후기·커뮤니티 게시물을 분석해 구성한 학습 자료입니다. 실제 출제·회사 공식 입장과는 무관하며, 정정 요청 시 24시간 내 반영합니다. 자세히
    개인정보처리방침이용약관문의
    © 2026 우문현답. All rights reserved.
    이 페이지 목차
    01면접관의 의도02답변의 결03실수·꼬리질문04관련 질문
    말로 해봐야 는다
    이 질문, 토스 면접관과
    음성으로 답해볼까요?
    모의면접 해보기
    첫 회 무료 · 종료 즉시 음성 폐기