웹 컴포넌트 (Web Components)

컴포넌트 기반 UI 개발의 패러다임을 주도한 React가 등장한지도 어느 덧 10년이 넘었네요. 이제 Vue.js, Svelte, Angular 등 어떤 프론트엔드 프레임워크를 사용하든 현대 웹 개발에서 컴포넌트 기반으로 UI 개발하는 것은 거의 당연한 얘기가 되었죠. 그리고 마침내 웹 컴포넌트(Web Components)를 통해서 별다른 프론트엔드 프레임워크가 없어도 UI 컴포넌트를 만들 수 있는 길이 활짝 열렸습니다.


웹 컴포넌트는 웹사이트나 애플리케이션에서 UI를 모듈화하고 재사용할 수도록 해주는 웹 표준 기술입니다. React와 같은 프론트엔드 프레임워크에서 오랫동안 경험해왔던 UI 컴포넌트를 떠올리시면 이해가 쉬우실 것 같습니다.


React 컴포넌트는 React에서만 쓸 수 있고, Vue.js 컴포넌트는 Vue.js에서만 쓸 수 있는 근본적인 한계가 있습니다. 하지만 웹 컴포넌트는 이와 같은 구애를 받지 않고 어떤 프론트엔드 프레임워크와도 함께 쓸 수 있습니다. 왜냐하면 웹 컴포넌트는 브라우저에서 네이티브(native)하게 작동하기 때문입니다.


이러한 웹 컴포넌트의 띄어난 호환성과 이식성, 재사용성 및 생산성 덕분에 최근에는 디자인 시스템(Design System)을 구현하는 최고의 기술로 주목받고 있습니다.


모든 기술이 그러하든 웹 컴포넌트가 장점만 있는 것은 아닙니다. 대표적인 단점으로 API가 직관적이지 않다고 평가받고 있고, 배우기 쉬운 기존 프런트엔드 프레임워크 대비 진입 장벽이 높은 편입니다. 그래서 실제 프로젝트에서는 이러한 단점을 보완한기 위해서 웹 컴포넌트를 직접 작성하기 보다는 Lit나 Stencil과 같은 라이브러리를 많이 사용합니다.


웹 컴포넌트은 크게 다음 세 가지 핵심 기술로 이루어집니다.

  • Custom Elements: 사용자 정의 HTML 요소(element) 또는 태그(tag)를 정의할 수 있습니다.

  • Shadow DOM: DOM 트리의 일부를 캡슐화하여 스타일과 마크업이 외부와 충돌하지 않도록 해줍니다.

  • HTML Templates: 화면에 나타나지 않는 HTML 조각(fragment)을 정의해놓고 재사용할 수 있습니다.

이 웹 표준 기술들은 현재 주요 브라우저에서 모두 지원되고 있습니다.


이번 포스팅에서는 각각의 기반 기술을 하나씩 살펴보면 웹 컴포넌트의 기본 개념을 잡아보도록 하겠습니다.


📝 포스팅: https://www.daleseo.com/web-components/

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2024년 10월 28일 오후 8:32

 • 

저장 69조회 4,137

댓글 0

    함께 읽은 게시물

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

    ... 더 보기

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

    www.linkedin.com

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

     • 

    저장 46 • 조회 5,726


    MCP는 기술적으로는 거의 순수하게 Function Calling의 Thin Wrapper에 불과함.


    다만, 현재 대부분의 애플리케이션이 Function Calling을 지원하지 않는 상태라, LLM에 Function Calling을 주입할 수 있는 서버를 쉽게 만들 수 있는 라이브러리를 제공했던 것이 MCP를 확산시키는 데에 크게 기여를 한 것.


    ... 더 보기

    📰 대학생이 40년만에 해시테이블의 성능 향상을 이뤄냈다고

    ... 더 보기

    Optimal Bounds for Open Addressing Without Reordering

    arXiv.org

    Optimal Bounds for Open Addressing Without Reordering

     • 

    저장 39 • 조회 3,008


    🚀 구글의 AI 승부수? Gemini 2.5 Pro 전면 무료화!

    h

    ... 더 보기

    ‎Gemini - chat to supercharge your ideas

    Gemini

    ‎Gemini - chat to supercharge your ideas

     • 

    저장 13 • 조회 2,711



    공유 오피스 꼴불견 1~3위


    🥉 4명 테이블에 자기 물건으로 다 채우기


    ... 더 보기