약 15년 ​​전, 저는 여행사, 공항 직원, 항공사를 위한 앱을 만드는 회사에서 일하고 있었습니다. 또한 UI 구성 요소와 단일 페이지 앱 기능을 위한 자체 내부 프레임워크를 구축했습니다. 필드, 버튼, 탭, 범위, 데이터 테이블, 메뉴, 날짜 선택기, 선택 및 다중 선택 등 모든 것에 대한 구성 요소가 있었습니다. 심지어 div 구성요소도 있었습니다. 그건 그렇고 우리의 div 구성 요소는 훌륭했습니다. 이를 통해 모든 브라우저에서 둥근 모서리를 수행할 수 있었는데, 믿거나 말거나 당시에는 쉬운 일이 아니었습니다.

우리의 작업은 JS, Ajax, 동적 HTML이 우리를 미래로 이끄는 혁명으로 여겨졌던 우리 역사의 한 시점에 이루어졌습니다. 갑자기 페이지를 동적으로 업데이트하고, 서버에서 데이터를 가져오고, 다른 페이지로 이동할 필요가 없어졌습니다. 이는 느리고 두 페이지 사이의 화면에 큰 흰색 직사각형이 깜박이는 것처럼 보였습니다. Jeff Atwood(StackOverflow의 창립자)가 유명하게 만든 문구가 있었는데, 그 내용은 다음과 같습니다. “JavaScript로 작성할 수 있는 모든 애플리케이션은 결국 JavaScript로 작성될 것입니다.”— Jeff Atwood

당시 우리에게는 이것이 실제로 그러한 앱을 만들겠다는 용기처럼 느껴졌습니다. JS로 모든 것을 할 수 있다는 것은 포괄적인 승인처럼 느껴졌습니다. 그래서 우리는 JS로 모든 작업을 수행했고, 작업을 수행하는 다른 방법을 연구하는 데는 시간을 들이지 않았습니다. 우리는 HTML과 CSS가 무엇을 할 수 있는지 제대로 배우고 싶은 동기를 실제로 느끼지 못했습니다. 우리는 웹을 전체적으로 진화하는 앱 플랫폼으로 인식하지 못했습니다. 우리는 특히 브라우저 지원과 관련하여 이를 해결해야 할 문제로 생각했습니다. 작업을 완료하려면 더 많은 JS를 추가하면 됩니다. 시간을 내어 웹의 작동 방식과 플랫폼에서 사용할 수 있는 기능에 대해 자세히 알아보는 것이 도움이 되었습니까? 물론, 실제로 필요하지 않은 코드를 삭감할 수도 있었을 것입니다. 하지만 당시에는 그다지 많지 않았을 수도 있습니다. 아시다시피 그 당시에는 브라우저 차이가 꽤 컸습니다. Internet Explorer가 여전히 지배적인 브라우저이고 Firefox가 2위를 차지했지만 Chrome이 빠르게 인기를 얻으면서 시장 점유율을 잃기 시작한 시기였습니다. Chrome과 Firefox는 웹 표준에 꽤 능숙하게 동의했지만 앱이 실행되는 환경 때문에 오랫동안 IE6를 지원해야 했습니다. IE8 지원이 허용되었을 때에도 우리는 여전히 브라우저 간의 많은 차이점을 처리해야 했습니다. 그뿐만 아니라 당시의 웹에는 플랫폼에 내장된 기능이 그다지 많지 않았습니다.

오늘로 빨리 감아보세요. 상황이 엄청나게 변했습니다. 우리는 이전보다 이러한 기능을 더 많이 보유하고 있을 뿐만 아니라 이러한 기능을 사용할 수 있는 속도도 증가했습니다. 그러면 다시 질문하겠습니다. 시간을 내어 웹이 어떻게 작동하는지, 플랫폼에서 무엇을 사용할 수 있는지 자세히 알아보는 것이 오늘 도움이 될까요? 물론 그렇습니다. 오늘날 웹 플랫폼을 이해하고 사용하는 방법을 배우면 다른 개발자에 비해 큰 이점을 얻을 수 있습니다. 성능, 접근성, 응답성 등을 모두 함께 작업하거나 UI 기능만 제공하는 등 책임 있는 엔지니어로서 작업을 수행하려는 경우 사용 가능한 도구를 알면 목표를 더 빠르고 효과적으로 달성하는 데 도움이 됩니다. 더 이상 도서관이 필요하지 않은 몇 가지 사항 오늘날 어떤 브라우저가 지원되는지 알면 문제는 무엇을 버릴 수 있는가 하는 것입니다. 2025년에 둥근 모서리를 만들려면 div 구성 요소가 필요합니까? 물론 그렇지 않습니다. border-radius 속성은 현재 사용되는 모든 브라우저에서 15년 이상 지원되어 왔습니다. 더욱 멋진 코너를 위한 코너 형태도 곧 출시될 예정입니다. 현재 모든 주요 브라우저에서 사용할 수 있고 코드베이스의 기존 종속성을 대체하는 데 사용할 수 있는 비교적 최근 기능을 살펴보겠습니다. 요점은 사랑하는 라이브러리를 모두 즉시 버리고 코드베이스를 다시 작성하는 것이 아닙니다. 다른 모든 것에 관해서는 먼저 브라우저 지원을 고려하고 프로젝트와 관련된 다른 요소를 기반으로 결정해야 합니다. 다음 기능은 세 가지 기본 브라우저 엔진(Chromium, WebKit 및 Gecko)에 구현되어 있지만 브라우저 지원 요구 사항이 다르기 때문에 바로 사용하지 못할 수도 있습니다. 하지만 지금은 이러한 기능에 대해 알아보기에 좋은 시기이며, 언젠가는 이를 사용할 계획을 세울 수도 있습니다. 팝오버 및 대화상자 Popover API,

HTML 요소 및 ::backdrop 의사 요소는 팝업에 대한 종속성을 제거하는 데 도움이 될 수 있습니다.플로팅 UI, Tippy.js, Tether 또는 React Tooltip과 같은 도구 설명 및 대화 상자 라이브러리. 기본적으로 접근성 및 포커스 관리를 처리하고 CSS를 사용하여 고도로 사용자 정의할 수 있으며 쉽게 애니메이션화할 수 있습니다. 아코디언
요소, 상호 배타적인 요소에 대한 name 속성 및 ::details-content 의사 요소는 Bootstrap Accordion 또는 React Accordion 구성 요소와 같은 아코디언 구성 요소의 필요성을 제거합니다. 여기서 플랫폼을 사용한다는 것은 HTML/CSS를 아는 사람들이 특정 라이브러리 사용법을 먼저 배우지 않고도 코드를 더 쉽게 이해할 수 있다는 것을 의미합니다. 이는 또한 라이브러리의 주요 변경 사항이나 해당 라이브러리의 중단에 영향을 받지 않는다는 것을 의미합니다. 물론 다운로드하고 실행해야 하는 코드도 줄어듭니다. 상호 배타적인 세부 요소는 열거나 닫거나 애니메이션을 적용하는 데 JS가 필요하지 않습니다. CSS 구문 보다 체계화된 CSS 코드베이스를 위한 캐스케이드 레이어, 더욱 컴팩트한 CSS를 위한 CSS 중첩, 새로운 색상 함수, 상대 색상 및 색상 혼합, abs(), sign(), pow() 등과 같은 새로운 수학 함수는 CSS 전처리기, Bootstrap 및 Tailwind와 같은 유틸리티 라이브러리, 런타임 CSS-in-JS 라이브러리에 대한 종속성을 줄이는 데 도움이 됩니다. 오랫동안 가장 많이 요청된 기능 중 하나인 획기적인 :has()를 사용하면 더 복잡한 JS 기반 솔루션이 필요하지 않습니다. JS 유틸리티 findLast() 또는 at()과 같은 최신 배열 메서드와 Difference(), Intersection(), Union() 등의 Set 메서드는 Lodash와 같은 라이브러리에 대한 종속성을 줄일 수 있습니다. 컨테이너 쿼리 컨테이너 쿼리를 사용하면 UI 구성요소가 뷰포트 크기 이외의 항목에 응답하므로 다양한 컨텍스트에서 재사용이 가능해집니다. 이를 위해 더 이상 JS가 많은 UI 라이브러리를 사용할 필요가 없으며 폴리필도 사용할 필요가 없습니다. 레이아웃 그리드, 서브그리드, 플렉스박스 또는 다중 열은 오랫동안 사용되어 왔지만 CSS 현황 조사 결과를 보면 개발자가 새로운 것을 채택하는 데 매우 신중하고 채택하기 전에 매우 오랜 시간을 기다리는 경향이 있음이 분명합니다. 이러한 기능은 오랫동안 Baseline으로 사용되어 Bootstrap의 그리드 시스템, Foundation Framework의 Flexbox 유틸리티, Bulma 고정 그리드, Materialize 그리드 또는 Tailwind 열과 같은 항목에 대한 종속성을 제거하는 데 사용할 수 있습니다. 나는 프레임워크를 버려야 한다고 말하는 것이 아닙니다. 귀하의 팀에서는 이유가 있어서 이를 채택했으며 이를 제거하는 것은 큰 프로젝트일 수 있습니다. 그러나 웹 플랫폼이 제3자 래퍼 없이 무엇을 제공할 수 있는지 살펴보면 많은 이점이 있습니다. 가까운 미래에 더 이상 필요하지 않을 수 있는 것들 이제 가까운 미래에 라이브러리가 필요하지 않을 몇 가지 사항을 간단히 살펴보겠습니다. 즉, 아래 항목은 아직 대량 채택할 준비가 되어 있지 않지만 이를 인지하고 향후 사용 가능성을 계획하는 것이 도움이 될 수 있습니다. 앵커 위치 지정 CSS 앵커 위치 지정은 다른 요소를 기준으로 팝오버 및 도구 설명의 위치 지정을 처리하고 페이지를 이동하거나 스크롤하거나 크기를 조정할 때에도 해당 항목이 계속 표시되도록 합니다. 이는 앞서 언급한 Popover API를 훌륭하게 보완하여 성능 집약적인 JS 솔루션에서 마이그레이션하는 것을 더욱 쉽게 만들어줍니다. 탐색 API Navigation API는 단일 페이지 앱에서 탐색을 처리하는 데 사용할 수 있으며 React Router, Next.js 라우팅 또는 Angular 라우팅 작업을 훌륭하게 보완하거나 대체할 수도 있습니다. 전환 API 보기 View Transitions API는 페이지의 다양한 상태 간에 애니메이션을 적용할 수 있습니다. 단일 페이지 애플리케이션에서 이는 상태 간 원활한 전환을 매우 쉽게 만들고 Anime.js, GSAP 또는 Motion.dev와 같은 애니메이션 라이브러리를 제거하는 데 도움이 될 수 있습니다. 더 좋은 점은 API를 여러 페이지 애플리케이션에서도 사용할 수 있다는 것입니다. 앞서 제가 15년 전에 일했던 회사에서 단일 페이지 앱을 만든 이유는 탐색할 때 페이지를 다시 로드할 때 갑자기 깜박이는 것을 피하기 위해서라고 말한 것을 기억하십니까? 당시에 해당 API를 사용할 수 있었다면 단일 페이지 프레임워크나 전체 앱을 처음 다운로드할 필요 없이 아름다운 페이지 전환 효과를 얻을 수 있었을 것입니다. 스크롤 기반 애니메이션 스크롤 기반 애니메이션은 시간이 지남에 따라 실행되는 것이 아니라 사용자의 스크롤 위치에서 실행되므로 스토리텔링 및 제품 둘러보기를 위한 훌륭한 솔루션입니다. 어떤 사람들은 이 도구를 약간 과하게 사용했지만 잘 사용하면 매우 효과적인 디자인 도구가 될 수 있으며 ScrollReveal, GSAP Scroll 또는 다음과 같은 라이브러리를 제거하는 데 도움이 될 수 있습니다.WOW.js. 맞춤형 선택 사용자 정의 가능한 선택은 접근성 및 성능상의 이점을 보장하면서 모양과 내용을 완전히 사용자 정의할 수 있는 일반적인

No spam. Join 138,000+ creators. Unsubscribe anytime.

Create Your Free Bio Page

Join 138,000+ creators on Seemless.

Get Started Free