react
-
웹 접근성 개선을 위한 가이드Tip 2024. 6. 21. 13:25
웹 접근성은 장애를 가진 사람들이 웹 사이트를 쉽게 사용할 수 있도록 보장합니다.여기에는 시각, 청각, 운동 및 인지 장애가 있는 사람들이 포함됩니다.윤리적 책임을 넘어, 웹 접근성은 법적 요구 사항을 충족하고 비즈니스 이점을 제공합니다.1. 웹 접근성의 중요성웹 접근성은 윤리적 이유뿐만 아니라 법적 요구 사항을 충족하고 비즈니스 기회를 확장하는 데도 중요합니다.예를 들어, 미국의 ADA(Americans with Disabilities Act)는 웹 접근성을 규제합니다.2. 웹 접근성의 주요 원칙1) 인식 가능성(Perceivable)정보는 사용자가 인식할 수 있는 방식으로 제공되어야 합니다. 예를 들어, 시각 장애인을 위해 이미지나 비디오에 텍스트 대체 설명을 제공합니다.2) 운영 가능성(Operab..
-
GraphQL vs REST APITip 2024. 6. 11. 14:09
웹 개발에서 데이터를 주고받는 방식으로 GraphQL과 REST API가 널리 사용됩니다.두 기술 모두 클라이언트와 서버 간의 효율적인 데이터 통신을 목표로 하지만, 접근 방식과 사용 사례에서 차이가 있습니다.1. REST APIREST(Representational State Transfer)는 전통적인 아키텍처 스타일로, HTTP 요청을 통해 자원을 CRUD(Create, Read, Update, Delete) 방식으로 관리합니다.장점단순성: HTTP 프로토콜을 기반으로 하여 이해하기 쉽고 사용이 간편합니다.캐싱: HTTP의 기본 캐싱 메커니즘을 활용하여 성능을 향상할 수 있습니다.단점Over-fetching 및 Under-fetching: 필요한 데이터보다 많은 데이터를 가져오거나, 필요한 데이터를..
-
vh 버그 해결 방법(feat. safari)Tip 2024. 3. 19. 13:45
웹 디자인의 세계에서 요소의 크기와 크기 조정은 웹 사이트가 다양한 장치에서 반응하고 시각적으로 매력적 이도록 하는 데 중추적인 역할을 합니다. 반응형 디자인에서 중요한 역할을 하는 두 가지 측정 단위는 vh(뷰포트 높이)와 vw(뷰포트 너비)입니다. 이러한 단위는 디스플레이 장치에서 웹 페이지의 표시 영역인 뷰포트의 크기에 따라 조정되는 동적입니다. 하지만 언제나 그렇듯이 모바일 safari에서 문제가 있습니다. 요소의 높이를 100vh로 설정하면 브라우저의 vh 계산에서는 주소 표시줄과 같이 동적으로 크기 조정이 가능한 UI 요소를 고려하지 않습니다. 결과적으로 vh로 설정된 높이가 실제 표시되는 뷰포트 높이를 초과하는 콘텐츠 오버플로가 발생할 수 있습니다. 1. 동적 vh 계산을 위한 JavaScr..
-
px vs remCSS 2024. 3. 1. 12:24
웹 개발의 끊임없이 변화하는 환경에서 스타일링을 위해 px와 rem 중 어느 것을 사용할지 선택하는 것은 웹사이트의 접근성과 반응성에 큰 영향을 미칠 수 있습니다. 1. px와 rem은 무엇인가요? px: px는 디지털 디스플레이에서 단일 광점을 나타내며, 디지털 그래픽에서 기본 측정 단위입니다. 절대 단위로, 설정된 정확한 크기로 표시됩니다, 사용자의 화면 해상도나 크기에 관계없이 말이죠. rem: rem 단위는 루트 요소()의 글꼴 크기에 상대적입니다. 루트 요소의 글꼴 크기가 16px(일반적인 기본값)이라면, 1 rem은 16px와 같습니다. 이를 통해 다양한 장치에서 확장 가능하고 접근 가능한 디자인을 가능하게 합니다. 2. 언제 px 또는 rem을 선택해야 할까 2.1 px이 더 나은 경우는? ..
-
Webview를 위한 핀치 줌(pinch zoom) 구현하기Tip 2024. 2. 24. 12:53
핀치 줌은 모바일 웹 또는 앱에서 자주 사용되는 기능 중 하나입니다. 사용자는 두 손가락을 화면에 대고 벌리거나 모으는 동작을 통해 화면을 확대하거나 축소할 수 있습니다. 이러한 인터랙션은 보다 세밀한 화면 조작을 가능하게 하며, 사용자 경험을 크게 향상합니다. 해당 기능은 일반적인 앱의 경우 구현하기 간단하지만 웹기반 웹뷰에서는 특정 영역(주로 이미지)을 확대 시 다른 부분들도 같이 확대되며 다른 페이지 이동 시 화면 비율이 이상해지는 등의 문제가 발생할 수 있습니다. 기본 핀치 줌 구현 핀치 줌 기능을 구현하기 위해서는 먼저 터치 이벤트를 적절히 처리할 수 있어야 합니다. 기본적인 구현 방법은 다음과 같습니다. 사용자가 화면을 터치하는 순간부터 터치가 끝나는 순간까지의 이벤트를 감지합니다. 두 손가락..
-
Cypress vs Playwright E2E 테스트 프레임워크 비교React 2024. 2. 13. 14:07
웹 애플리케이션 테스팅은 개발 과정에서 중요한 부분입니다. Cypress와 Playwright는 모두 자동화된 브라우저 테스팅을 위한 현대적인 프레임워크입니다. 이 글에서는 Cypress와 Playwright를 비교하고, 어느 상황에서 각각을 사용하는 것이 더 적합한지 비교해 보겠습니다. Cypress Cypress는 개발자와 QA 엔지니어 사이에서 인기 있는 엔드투엔드 테스팅 프레임워크입니다. 사용의 용이성과 설정의 단순함으로 많은 사랑을 받고 있습니다. 장점 쉬운 설치 및 설정: Cypress는 설정이 매우 간단하며, 사용하기 쉽습니다. 실시간 리로딩: 테스트 코드를 변경하면 자동으로 테스트가 재실행됩니다. 디버깅 용이: 실패한 테스트에 대해 자세한 오류 로그와 스크린샷, 비디오 녹화 기능을 제공합니..
-
고급 React Hooks 사용을 위한 팁과 요령React 2024. 2. 5. 13:36
React Hooks는 단순히 상태와 생명주기 메서드를 함수형 컴포넌트로 가져오는 것 이상의 강력한 기능을 제공합니다. 여기서는 지난 편에 이어 useCallback, useMemo, useReducer를 더 효과적으로 사용하기 위한 실용적인 예제와 덜 알려진 방법들을 공유하고자 합니다. 1. useCallback과 useMemo, useReducer를 지혜롭게 사용하기 1.1 useCallback 예제: 이벤트 핸들러 최적화 import React, { useState, useCallback } from 'react'; function TodoList({ todos, toggleTodo }) { // useCallback을 사용하여 불필요한 렌더링 방지 const toggle = useCallback(..
-
useState와 useEffect를 넘어선 고급 React HooksReact 2024. 1. 29. 14:11
React의 Hooks 도입은 함수형 컴포넌트 개발에 혁신을 가져왔으며, 상태 관리와 부수 효과(side effects)를 다루는 더 강력하고 유연한 방법을 제공합니다. useState와 useEffect는 널리 사용되고 있지만, React 애플리케이션을 크게 향상할 수 있는 다양한 고급 hooks가 더 있습니다. 1. useCallback useCallback은 메모이제이션된(memoized) 콜백 함수를 반환하는 훅입니다. 특히 복잡한 로직이 있는 컴포넌트나 함수를 props로 받는 컴포넌트에서 불필요한 렌더링을 방지하는 데 매우 유용합니다. 큰 리스트나 테이블의 성능 최적화. 자식 컴포넌트의 불필요한 렌더링 방지. const memoizedCallback = useCallback( () => { /..