개발관련

개발관련/프론트엔드 지식

Styled-Components의 특징

Styled Components의 특징 Styled Components는 React 애플리케이션의 컴포넌트에 스타일을 적용하는 라이브러리입니다. CSS-in-JS 라이브러리 중 하나로, JavaScript를 통해 CSS 스타일을 정의하고, 이를 컴포넌트와 연결합니다. 그렇다면, Styled Components가 내부적으로 어떻게 동작하는지 살펴보겠습니다. 1. JavaScript로 CSS 생성 먼저, Styled Components는 JavaScript 문법을 사용하여 CSS를 정의합니다. import styled from 'styled-components'; const Button = styled.button` background-color: blue; color: white; `; 여기서 styled..

개발관련/리액트

[번역] 리액트 기술을 한 단계 업그레이드하세요: 2023년에 마스터할 고급 패턴 5가지

리액트는 간단함과 유연함을 강점으로 최근 몇 년 동안 가장 인기 있는 프런트엔드 라이브러리 중 하나가 되었습니다. 그러나 어플리케이션이 더 복잡해질수록 상태를 관리하고 비동기 입력을 처리하며 확장 가능한 아키텍처를 유지하는 것이 어려워질 수 있습니다. 이 기사에서는 이러한 어려움을 극복하는 데 도움이 되는 다섯 가지 고급 리액트 패턴을 살펴보겠습니다: Backend for Frontend Pattern (BFF) Hooks Pattern Higher-Order Component Pattern Observer Pattern Compound Pattern 1. Backend for Frontend Pattern (BFF) Backend for Frontend (BFF) 패턴은 React 애플리케이션을 개발할..

개발관련/자바스크립트 팁

자바스크립트의 setTimeout은 왜 정확한 타이밍을 보장하지 못할까

자바스크립트의 setTimeout 함수는 특정 작업을 지정된 시간 후에 실행하도록 예약하는 데 사용됩니다. 하지만 의도와는 다르게 setTimeout의 실행 시간을 정확하게 보장할 수는 없습니다. 그 이유는 자바스크립트의 이벤트 루프와 싱글 스레드의 작동 방식과 관련이 있습니다. setTimeout 예시 function printPerformanceNow() { console.log(`${performance.now().toFixed(0)}ms`); } function myCallback() { console.log(`setTimeout 실행 시간`); printPerformanceNow(); } console.log(`실제 실행 시간`); printPerformanceNow(); // 1초 후에 콜백 ..

개발관련/프론트엔드 지식

리플로우가 일어나는 css 스타일 속성과 일어나지 않는 스타일 속성이 무엇이 있나요?

CSS 스타일 속성에 따라 리플로우(reflow)가 발생할 수도 있고 발생하지 않을 수도 있습니다. 리플로우는 요소의 크기, 위치 또는 구조가 변경될 때 브라우저가 해당 변경 사항을 계산하고 적용하는 프로세스를 말합니다. 리플로우는 성능에 영향을 주므로 최소화하는 것이 중요합니다. 리플로우가 일어나는 주요 CSS 속성에는 다음과 같은 것들이 있습니다: width, height: 요소의 크기를 변경할 때 리플로우가 발생합니다. padding, margin: 패딩과 마진을 변경하면 요소의 크기와 위치가 변경되므로 리플로우가 발생합니다. position: absolute, fixed: 절대 위치나 고정 위치로 요소를 배치하면 주변 요소의 배치가 변경되므로 리플로우가 발생합니다. display: none: 요소..

개발관련/자바스크립트 팁

자바스크립트 parseInt / parseFloat / number를 이용하지 않고 문자열을 숫자로 형변환 하는 구현 방법

구현 function myNumber(str) { var isNegative = false; var result = 0; // 공백 제거 str = str.trim(); // 음수 체크 if (str[0] === '-') { isNegative = true; str = str.slice(1); } for (var i = 0; i 57) { break; } // 아스키 코드를 활용한 숫자 변환 var digit = charCode - 48; result = result * 10 + digit; } // 음수 처리 if..

개발관련/자바스크립트 팁

자바스크립트를 예로 들어서 의존성 역전 원칙(Dependency Inversion Principle, DIP)

의존성 역전 원칙(Dependency Inversion Principle, DIP) 자바스크립트를 예로 들어서 의존성 역전 원칙(Dependency Inversion Principle, DIP)을 설명해드리겠습니다. 가정해봅시다. 우리는 웹 애플리케이션을 개발하고 있으며, 서버에서 데이터를 가져오는 DataFetcher 모듈이 필요합니다. 초기에는 DataFetcher 모듈이 직접 서버와 통신하고 데이터를 가져오는 기능을 가지고 있습니다. class DataFetcher { fetchData(url) { // 서버와 통신하여 데이터를 가져오는 로직 return fetch(url).then((response) => response.json()); } } 이렇게 구현된 DataFetcher 클래스는 외부 의..

개발관련

의존성 역전 원칙(Dependency Inversion Principle, DIP)

의존성 역전 원칙(Dependency Inversion Principle, DIP) 의존성 역전 원칙(Dependency Inversion Principle, DIP)은 추상화된 것은 구체적인 것에 의존해서는 안 된다는 원칙입니다. 이를 통해 시스템의 결합도를 낮추고 유연성과 확장성을 향상시킬 수 있습니다. 이해를 돕기 위해 간단한 예를 들어보겠습니다. 가정해봅시다. 우리는 온라인 쇼핑몰 시스템을 개발하고 있습니다. 이 시스템에는 주문(Order)을 처리하는 Order 클래스와 결제(Payment)을 담당하는 Payment 클래스가 있습니다. Order 클래스는 결제를 위해 Payment 클래스에 의존합니다. 처음에는 Order 클래스가 직접 Payment 클래스를 생성하고 사용할 수 있도록 코드를 작성..

개발관련

SOLID 원칙: 객체 지향 설계의 기반을 이루는 원칙들

안녕하세요! 오늘은 객체 지향 프로그래밍에서 매우 중요한 SOLID 원칙에 대해 알아보겠습니다. SOLID 원칙은 소프트웨어의 설계 품질과 유지 보수성을 향상시키기 위한 가이드라인으로, 객체 지향 프로그래밍에서 일반적으로 사용되는 원칙들의 약어입니다. 이 원칙들은 소프트웨어 시스템의 유연성, 재사용성, 확장성을 높이는 데 도움을 줍니다. 그럼 SOLID 원칙의 각 원칙을 자세히 알아보도록 하겠습니다. 1. 단일 책임 원칙 (Single Responsibility Principle - SRP) 이 원칙은 클래스(자바스크립트는 함수)나 모듈은 단 하나의 책임을 가져야 한다는 것을 의미합니다. 어떤 클래스나 모듈이 여러 개의 책임을 갖게 되면 변경사항이 발생했을 때 다른 책임과 관련된 코드도 함께 변경되어야 ..

개발자 Dane
'개발관련' 카테고리의 글 목록 (3 Page)