css

5 개의 포스트

StyleX를 이용한 (새 탭에서 열림)

메타는 대규모 코드베이스에서 발생하는 CSS 관리의 어려움을 해결하기 위해 오픈 소스 스타일링 시스템인 StyleX를 개발하여 표준으로 운용하고 있습니다. StyleX는 CSS-in-JS의 편리한 개발 경험과 정적 CSS의 뛰어난 성능을 결합하여, 원자적(Atomic) 스타일링을 통한 번들 크기 최적화와 단순한 API 구조를 동시에 제공합니다. 현재 페이스북, 인스타그램 등 메타의 주요 서비스는 물론 피그마, 스노우플레이크와 같은 외부 대형 기술 기업들에서도 표준 시스템으로 채택되어 그 효용성을 입증하고 있습니다. **StyleX의 핵심 기술적 접근** * **하이브리드 아키텍처:** 런타임 오버헤드가 적은 CSS-in-JS의 사용성을 유지하면서도, 최종 결과물은 정적인 CSS 파일로 추출되어 브라우저 성능을 최적화합니다. * **원자적(Atomic) 스타일링:** 스타일 정의를 최소 단위로 쪼개어 관리하며, 중복된 정의를 제거하는 디두플리케이션(Deduplication) 과정을 통해 웹 사이트의 전체 번들 크기를 효과적으로 줄입니다. * **확장성 있는 API:** 대규모 개발 팀이 협업할 때 일관된 스타일 규칙을 적용할 수 있도록 설계되었으며, 복잡한 UI 구성 요소에서도 성능 저하 없이 스타일을 적용할 수 있습니다. **메타 내부 및 외부 생태계의 도입 현황** * **글로벌 서비스의 표준화:** 페이스북, 인스타그램, 왓츠앱, 메신저, 스레드 등 메타의 모든 주요 플랫폼에서 표준 스타일링 라이브러리로 사용되고 있습니다. * **업계 전반의 확산:** 메타 외부에서도 기술적 완성도를 인정받아 피그마(Figma)와 스노우플레이크(Snowflake) 같은 기업들이 자사 시스템에 StyleX를 도입하여 운영 중입니다. * **오픈 소스 시너지:** 프로젝트 메인테이너들은 외부 기업 및 커뮤니티와의 상호작용을 통해 프로젝트의 완성도를 높이고 있으며, 이는 기술적 발전을 가속화하는 기폭제 역할을 하고 있습니다. **실무적 가치와 권장 사항** StyleX는 대규모 웹 애플리케이션을 구축할 때 성능과 유지보수성 사이의 타협점을 찾는 팀에게 강력한 해결책이 됩니다. 특히 프로젝트의 규모가 커짐에 따라 CSS 파일 크기가 비대해지는 문제를 겪고 있다면, 메타의 검증된 원자적 CSS 기법을 제공하는 StyleX 도입을 통해 효율적인 번들링과 일관된 스타일 아키텍처를 구축할 것을 권장합니다.

Config 2025: (새 탭에서 열림)

피그마는 Config 2025를 통해 단순한 디자인 도구를 넘어 아이디어 구상부터 실제 제품 구현까지 전 과정을 아우르는 통합 플랫폼으로의 확장을 선언했습니다. AI 기술을 전면에 배치한 4개의 신규 제품과 강력해진 디자인 기능을 도입하여, 디자인과 개발 사이의 경계를 허물고 팀 전체의 생산성을 극대화하는 데 집중하고 있습니다. 이는 디자인이 비즈니스 차별화의 핵심이 되는 시대에 발맞추어, 모든 팀원이 제품 개발 프로세스에 더욱 깊이 기여할 수 있는 환경을 구축하려는 전략적 움직임으로 풀이됩니다. **AI 기반의 앱 및 웹 제작 솔루션** * **Figma Make**: 텍스트 프롬프트를 코드로 변환하거나 기존 디자인을 실제 작동하는 프로토타입 및 앱으로 제작해 주는 AI 도구로, 숙련도와 상관없이 아이디어를 빠르게 시각화하고 반복 수정할 수 있도록 돕습니다. * **Figma Sites**: 디자이너가 AI와 코드의 도움을 받아 역동적인 상호작용과 맞춤 설정이 가능한 웹사이트를 직접 구축하고 즉시 배포할 수 있는 환경을 제공합니다. **디자인 표현력과 브랜드 일관성 강화** * **Figma Draw**: 더욱 정교해진 벡터 편집 및 일러스트레이션 도구 세트를 통해 디자이너가 높은 수준의 공예적 완성도를 가진 시각 결과물을 만들 수 있도록 지원합니다. * **Figma Buzz**: 마케팅 및 브랜드 팀이 브랜드 가이드라인을 준수하면서도 AI를 활용해 대규모로 시각적 자산을 생성하고 관리할 수 있도록 설계된 전용 제품입니다. **개발 협업 및 AI 워크플로우 고도화** * **Grid**: 반응형 레이아웃 설정을 돕는 새로운 옵션으로, Dev Mode에서 즉시 활용 가능한 CSS 코드를 생성하여 디자인에서 개발로 이어지는 핸드오프 과정을 획기적으로 개선합니다. * **지능형 AI 기능**: 이미지 생성 및 편집 기능이 고도화되었으며, 작업 맥락을 이해해 다음 단계를 제안하는 자동 제안 기능과 FigJam 내 AI 보조 도구가 추가되어 워크플로우 속도를 높였습니다. **사용자 저변 확대와 글로벌 시장 최적화** * **사용자 구성의 변화**: 현재 피그마 사용자의 약 2/3가 비디자인 직군이며 그중 30%가 개발자인 점을 반영하여, 직군 간의 협업 효율을 높이는 도구(Dev Mode, Slides 등)를 지속적으로 강화하고 있습니다. * **글로벌 현지화**: 전체 사용자의 85%가 미국 외 지역에 거주하는 상황에 맞춰 브라질 시장을 위한 포르투갈어 전면 지원 및 UI 현지화를 진행하며 글로벌 확장세를 이어가고 있습니다. 이제 피그마는 디자이너만을 위한 도구를 넘어, 기획자, 개발자, 마케터가 하나의 캔버스에서 제품을 완성하는 '제품 개발 운영 체제'로 진화하고 있습니다. 팀 내 협업 효율을 높이고 AI를 통해 제작 단계를 단축하고자 한다면, 순차적으로 출시될 이번 신규 기능들을 워크플로우에 적극적으로 도입해 볼 것을 권장합니다.

Figma의 새로운 개발자 모드를 (새 탭에서 열림)

피그마가 디자이너와 개발자 간의 간극을 좁히고 제품 개발 효율성을 극대화하기 위해 개발자 전용 공간인 'Dev Mode'를 출시했습니다. 브라우저 인스펙터와 유사한 인터페이스를 통해 개발자가 디자인 사양을 직관적으로 확인하고 코드로 변환할 수 있도록 지원하는 것이 핵심입니다. 이를 통해 개발팀은 디자인 도구 내에서 고유한 워크플로우를 유지하며 더 빠르고 정확하게 결과물을 구현할 수 있게 되었습니다. ### 개발자 중심의 작업 환경, Dev Mode * 디자인 파일을 브라우저의 '개발자 도구(Inspector)'와 유사한 방식으로 탐색할 수 있는 전용 워크스페이스를 제공합니다. * 디자인 요소(레이어, 그룹 등)를 개발 개념(코드, 아이콘, 토큰)과 밀접하게 연결하여 필요한 정보를 즉각적으로 추출할 수 있습니다. * 디자인 시스템의 맥락을 유지하면서 치수, 스펙, 에셋 등을 손쉽게 확인하고 내보낼 수 있는 환경을 구축했습니다. ### 코드 구현 속도를 높이는 최적화 기능 * 언어별로 맞춤 설정이 가능한 코드 스니펫 기능을 제공하며, 단순히 코드를 나열하는 것이 아니라 개발의 시작점으로 활용할 수 있게 설계되었습니다. * CSS 박스 모델, 트리 뷰(Tree View) 형태의 현대적 구문, 코드베이스에 맞춘 단위 토글 기능을 통해 코드 가독성을 높였습니다. * 디자인 시스템의 변수(Variables)를 디자인 토큰으로 활용하여 코드와 디자인 간의 일관성을 강화합니다. ### 워크플로우 통합과 강력한 플러그인 생태계 * GitHub, Jira, Linear와 같은 프로젝트 관리 도구를 연동하여 피그마 내에서 이슈와 풀 리퀘스트(PR) 상태를 바로 확인할 수 있습니다. * Storybook 플러그인을 통해 코드베이스에 실제 구현된 컴포넌트의 상태를 디자인 파일 안에서 참조할 수 있습니다. * AWS Amplify Studio, Google Relay, Anima 등의 코드 생성 플러그인을 활용하거나 팀 고유의 워크플로우에 맞는 커스텀 플러그인을 구축할 수 있습니다. ### IDE에서 직접 확인하는 VS Code 확장 프로그램 * 개발자가 코드 에디터를 벗어나지 않고도 디자인을 검토하고, 변경 사항 및 댓글 알림을 확인할 수 있는 VS Code용 확장 프로그램을 지원합니다. * 디자인 사양에 기반한 코드 자동 완성(Autocomplete) 기능을 제공하여 코딩 속도를 획기적으로 향상시킵니다. * 디자인 파일과 코드 편집기 사이를 오가는 컨텍스트 스위칭 비용을 줄여 개발 집중도를 높입니다. 단순히 디자인을 보는 것을 넘어, 실제 구현 단계에서의 생산성을 높이고 싶다면 Dev Mode와 VS Code 확장 프로그램을 워크플로우에 적극 도입해 보시기 바랍니다. 디자인 시스템의 토큰 관리와 에디터 내 자동 완성 기능을 결합하면 디자인과 코드 사이의 정렬(Alignment)을 훨씬 수월하게 유지할 수 있습니다.

Datadog을 구동하는 디자인 시스템, DRUIDS (새 탭에서 열림)

데이터독(Datadog)은 제품군이 급격히 확장됨에 따라 사용자에게 일관된 경험을 제공하고 개발 효율성을 높이기 위해 자체 디자인 시스템인 **DRUIDS**(Datadog Reusable User Interface Design System)를 구축했습니다. DRUIDS는 단순히 디자인 가이드를 제공하는 것에 그치지 않고, 수백 명의 디자이너와 엔지니어가 시스템을 쉽게 이해하고 구현하며 직접 기여할 수 있는 선순환 구조를 만드는 데 집중합니다. 결과적으로 이 시스템은 데이터독의 다양한 제품들이 하나의 통합된 플랫폼처럼 느껴지게 만드는 핵심적인 역할을 수행하고 있습니다. ### 직관적인 탐색과 맥락 파악을 돕는 도구 * **Cmd+K 퀵 내비게이션**: 플랫폼 전반에서 사용되는 퀵 내비 패턴을 문서 사이트에도 적용하여, 사용자가 원하는 컴포넌트, 아이콘, 로고 등을 검색을 통해 즉시 찾을 수 있도록 지원합니다. * **DRUIDS Loupe**: 실제 데이터독 페이지 위에서 단축키를 통해 실행되는 검사 도구로, 화면에 사용된 컴포넌트가 무엇인지 확인하고 해당 소스 코드, 피그마(Figma) 디자인, 문서 페이지로 즉시 이동할 수 있는 링크를 제공합니다. * **개발 환경과의 유기적 연결**: VS Code용 JSDoc 주석을 통해 코드 레벨에서 문서 링크를 제공하며, 소스 코드와 디자인 도구 간의 양방향 연결을 강화하여 정보의 파편화를 방지합니다. ### 코드 중심의 구현 편의성 제공 * **실시간 플레이그라운드**: 디자인 도구만으로는 표현하기 힘든 복잡한 상태와 기능을 확인하기 위해 React, TypeScript, CSS 코드를 기반으로 한 편집 가능한 예제를 제공합니다. 개발자는 여기서 속성(Props)을 변경해보고 실제 운영 환경에 적용할 코드를 즉시 복사할 수 있습니다. * **코드 샌드박스**: 개별 컴포넌트를 조합하여 라이브 프리뷰를 생성하고, 상태값이 포함된 URL을 통해 동료와 공유하거나 버그를 리포트하는 용도로 활용합니다. * **자동 생성되는 API 테이블**: 150개 이상의 컴포넌트 속성이 문서와 불일치하는 것을 방지하기 위해, 소스 코드에서 직접 속성 리스트와 설명을 추출하여 API 테이블을 자동으로 생성함으로써 신뢰할 수 있는 단일 소스(Single Source of Truth)를 유지합니다. ### 표준화된 기여 프로세스와 자동화 * **명확한 기여 가이드라인**: 성능, 접근성, 테스트, 명명 규칙 등 핵심 고려 사항을 포함한 가이드라인을 제공하여, 전사 엔지니어가 베스트 프랙티스를 유지하며 시스템을 발전시킬 수 있도록 돕습니다. * **CLI 툴링을 통한 보일러플레이트 제거**: `yarn component [name]`과 같은 명령어를 통해 유닛 테스트, 문서 예제 등 컴포넌트 생성에 필요한 기본 파일 구조를 자동으로 생성해 줍니다. 이를 통해 기여자는 단순 반복 작업 대신 설계와 성능 개선에 더 집중할 수 있습니다. 데이터독은 최근 비공개였던 DRUIDS 문서 사이트를 외부에 공개하며 자사의 UX 패턴을 공유하기 시작했습니다. 대규모 엔터프라이즈 환경에서 디자인 시스템의 성공은 단순히 아름다운 컴포넌트를 만드는 것이 아니라, 개발자와 디자이너가 시스템을 신뢰하고 손쉽게 사용할 수 있는 도구와 문화를 구축하는 데 있음을 잘 보여줍니다.

기능 비하인드: (새 탭에서 열림)

피그마(Figma)는 디자인의 디테일을 높여주는 '그림자 확산(Shadow Spread)' 기능을 구현하기 위해 렌더링 엔진 수준에서의 수학적 최적화와 성능 문제를 해결했습니다. 단순해 보이는 기능임에도 불구하고, 다양한 브라우저 환경과 복잡한 벡터 도형 위에서 일관되고 빠른 성능을 보장하기 위해 부호 거리 함수(SDF)와 미팹(Mipmap) 기반의 근사 기법을 도입했습니다. 결과적으로 피그마는 CSS 표준과 일치하면서도 GPU 부하를 최소화하는 고성능 그림자 렌더링 시스템을 구축하는 데 성공했습니다. ### 그림자 확산의 정의와 기술적 난제 * 그림자 확산은 단순히 그림자를 키우는 것이 아니라, 원본 도형의 형태를 유지하면서 외곽선을 팽창(Dilation)시킨 후 흐림(Blur) 효과를 적용하는 작업입니다. * CSS의 `box-shadow` 속성에는 이미 존재하지만, 이를 벡터 그래픽 엔진에서 실시간으로 구현하는 것은 계산량이 매우 많아 성능 저하를 유발하기 쉽습니다. * 특히 단순한 사각형이 아닌 복잡한 패스(Path)나 불리언 연산이 적용된 도형에 대해서는 모든 픽셀에서 거리를 계산해야 하는 비용 문제가 발생합니다. ### 수학적 모델링: SDF와 해석적 접근 * 피그마의 자체 렌더링 엔진인 'Medley'는 둥근 모서리를 가진 사각형과 같은 정형화된 도형에 대해 **부호 거리 함수(Signed Distance Fields, SDF)**를 사용합니다. * SDF를 활용하면 픽셀과 도형 사이의 최단 거리를 수학적으로 즉시 계산할 수 있어, 별도의 텍스처 생성 없이 셰이더(Shader) 내에서 한 번의 패스로 확산과 흐림 효과를 동시에 처리할 수 있습니다. * 이 방식은 메모리 사용량을 줄일 뿐만 아니라, 확대/축소 시에도 계단 현상 없이 매끄러운 고해상도 결과를 보장합니다. ### 복잡한 도형을 위한 미팹(Mipmap) 기반 최적화 * 정형화되지 않은 복잡한 벡터 도형의 경우 SDF를 직접 계산하기 어렵기 때문에, 피그마 엔지니어들은 **최대치 필터(Maximum Filter)**와 가우시안 블러의 관계를 이용했습니다. * 매우 큰 확산 값을 처리할 때 발생하는 GPU 성능 병목을 해결하기 위해 이미지의 해상도를 단계별로 낮춘 **미팹(Mipmap)**을 생성하여 넓은 범위를 빠르게 샘플링하는 기법을 도입했습니다. * 이 근사 기법은 정확도를 크게 손상시키지 않으면서도 연산량을 기하급수적으로 줄여, 복잡한 레이어가 겹쳐진 상황에서도 부드러운 캔버스 조작을 가능하게 합니다. ### CSS 표준과의 일치 및 렌더링 정밀도 * 디자이너가 피그마에서 만든 결과물이 실제 웹 브라우저에서 동일하게 보여야 하므로, 브라우저 엔진(Chrome의 Skia 등)이 그림자를 처리하는 방식과 수치적으로 일치하도록 세밀하게 조정되었습니다. * 특히 모서리 반경(Corner Radius)이 확산 값에 따라 어떻게 변하는지에 대한 복잡한 로직을 물리적으로 올바르게 구현하여, 확산이 적용되어도 도형의 일관성이 유지되도록 설계했습니다. 이 기능의 도입은 단순한 UI 업데이트를 넘어, 고성능 그래픽 엔진이 복잡한 수학적 모델을 어떻게 실용적인 디자인 도구로 녹여내는지를 보여줍니다. 개발자는 피그마의 그림자 수치를 CSS에 그대로 복사하여 사용할 수 있게 되었으며, 디자이너는 성능 걱정 없이 더욱 깊이감 있는 디자인 시스템을 구축할 수 있게 되었습니다.