주석을 언제 작성해야 할까?
·
Frontend/Web development
여러분은 언제 주석을 작성하시나요? 🤔 이전에 회사에서 후임 개발자분께서 이런 질문을 한 적이 있습니다. "코드에 함수마다 주석이 달려 있는데, 어떤 함수에는 설명이 있고, 어떤 함수에는 없어요. 언제 주석을 작성해야 하는 거죠?"라는 질문이었죠.// 회사 컨벤션/****/function abc () {...}/*** 이건 글쓰는 함수 입니다.*/function abc () {...}당시에는 회사 코드 컨벤션에 따라 주석을 작성해 왔고, '여기에는 주석이 있으면 좋겠다'라는 주관적인 기준에 의존하고 있었기 때문에, 명확히 대답하기 어려웠습니다. 결국 "조건이 3개 이상일 때 작성하는 것 같다"는 애매한 답변을 했던 기억이 납니다. 😂이 질문 덕분에 주석을 언제 작성해야 하는지 더 깊이 고민해 볼 기회..
React Hook Form과 Yup을 활용한 폼 검증 방법
·
Frontend/React Hook Form
Overview폼 유효성 검사는 사용자 입력의 정확성과 데이터의 무결성을 보장하기 위한 필수적인 과정입니다. 하지만 복잡한 폼일수록 이 검사를 효율적으로 처리하기 어렵습니다. React Hook Form은 React에서 폼을 쉽게 관리할 수 있도록 돕는 라이브러리로, 간단한 API와 뛰어난 성능을 제공합니다. 하지만 폼 검증을 더욱 최적화하려면, Yup이나 Zod와 같은 유효성 검증 라이브러리와 결합하는 것이 필요합니다. 이 글에서는 Yup이 무엇인지, 왜 사용하는지, 그리고 Zod와 비교했을 때 어떤 차이점이 있는지 살펴보겠습니다. 또한, React Hook Form과 함께 Yup을 사용하여 폼 검증을 구현하는 방법을 예시를 통해 보여드리겠습니다. Yup이란 무엇이며 왜 사용하는가?Yup은 자바스크립트..
javascript 이미지 색상 추출하기
·
Frontend/JS & React
웹 개발을 하다 보면, 이미지에서 주된 색상을 추출해 텍스트나 배경 등 디자인 요소에 활용된 경우가 종종 있습니다.  예를 들어, 서버에서 OpenAPI 목록을 제공받아 GPT와 Gemini라는 두 가지 항목을 렌더링 한다고 했을 때를 가정하고 해 보겠습니다.서버에서는 보통 아래 데이터형식으로 보내줍니다.[ { title: 'GPT', logoUrl: 'https://...' }, { title: 'Gemini', logoUrl: 'https://...' }] 하지만 디자인을 구현하기 위해 이러한 색상 정보를 서버에서 매번 제공받는 것은 비용과 성능 면에서 비효율적일 수 있습니다.이미지가 많은 사이트에서는 색상 데이터를 저장하고 관리하는 것이 번거로울 뿐만 아니라, 서버 요청이 많아질수록 성능에도..
내부 요소 스크롤 위치 도달 시 부모 요소 스크롤 방지하기
·
Frontend/Styling
이 글에서는 화면 흔들림을 방지하고, 자연스러운 스크롤 경험을 제공하기 위한 방법을 설명합니다. 웹 페이지를 만들다 보면 종종 컴포넌트 내에 스크롤이 필요한 경우가 있습니다. 컴포넌트 안에서 스크롤을 최대로 내리면 부모 컴포넌트의 스크롤이 함께 움직이는 문제가 발생할 수 있습니다. 이를 방지하기 위해 HTML 및 Body 태그에 `overflow: hidden` 속성을 적용할 수 있지만, 이로 인해 스크롤바가 사라지면서 화면 크기가 변동되어 사용자에게 불편함을 줄 수 있습니다. 이 글에서는 이러한 문제를 해결하기 위한 방법을 소개합니다.  아래 코드는 리액트(React)에서 이 문제를 해결하기 위한 예제입니다. useEffect 훅을 사용하여 조건에 따라 바디의 패딩을 조정하여 화면 흔들림을 방지합니다...
빈 태그 사용을 피해야 하는 이유
·
Frontend/Web development
웹접근성과 웹 표준을 지키며 개발하는 것은 모든 사용자에게 동등한 웹 경험을 제공하기 위해 필수적입니다. 이러한 원칙을 따르면서도, 간격 조정과 같은 디자인 목적으로 빈 태그(나 등)를 사용하는 경우가 종종 있습니다. 하지만 이런 실천은 웹접근성과 웹 표준을 저해할 수 있으며, 다음과 같은 이유로 권장되지 않습니다. 웹접근성 저해웹접근성은 모든 사용자가 웹 콘텐츠와 상호작용할 수 있게 하는 것을 목표로 합니다. 스크린 리더와 같은 보조 기술을 사용하는 사용자는 빈 태그로 인해 혼란을 겪을 수 있습니다. 이러한 태그들은 시각적으로는 보이지 않지만, DOM에는 존재하기 때문에 보조 기술이 불필요한 정보를 인식하게 만들 수 있습니다. 따라서, 빈 태그 사용은 중요한 정보의 전달을 방해하며 웹접근성을 저해할 ..
React Query에서 Non-null Assertion Operator 사용하기 좋은 방법일까?
·
Frontend/React Performance Optimization
Non-null Assertion Operator란 무엇인가?TypeScript에서 Non-null assertion operator (!)는 컴파일러에게 어떤 값이 null이나 undefined가 아님을 단언하는 방식입니다. 이 연산자는 변수 뒤에 !를 붙여 사용하며, 이를 통해 TypeScript의 엄격한 null 검사(strict null checks)를 우회할 수 있습니다. 이는 개발자가 해당 변수가 절대 null이나 undefined가 아닐 것이라는 확신이 있을 때 유용합니다. 간단한 사용예시let myVar: string | null = "Hello, TypeScript!";// myVar이 null이 아님을 단언하고 사용console.log(myVar!.toUpperCase()); 위 예제에..
끄적끄적 개발자
'Frontend' 카테고리의 글 목록