전체 글 썸네일형 리스트형 React useLayoutEffect vs useEffect 차이와 화면 깜빡임 해결 한 줄 요약: React useLayoutEffect는 DOM이 변경된 직후 브라우저가 화면을 그리기 전에 동기적으로 실행되고, useEffect는 화면이 그려진 뒤에 실행됩니다. 요소의 크기나 위치를 측정해서 바로 반영해야 해서 화면 깜빡임이 생기는 경우에만 useLayoutEffect를 쓰고, 나머지는 기본값인 useEffect를 쓰는 것이 원칙입니다.useLayoutEffect와 useEffect 차이는 무엇인가요?useEffect는 렌더링 결과가 화면에 반영된 뒤에 실행되는 Hook이고, useLayoutEffect는 DOM 변경 직후 화면이 그려지기 전에 실행되는 Hook입니다. 두 Hook의 시그니처와 정리(cleanup) 방식은 같고, 실행 시점만 다릅니다.구분useEffectuseLayou.. 더보기 C# 원시 문자열 리터럴 사용법: 따옴표·JSON 이스케이프 없이 쓰기 한 줄 요약: C# 원시 문자열 리터럴(raw string literal)은 C# 11(.NET 7)부터 쓸 수 있는 문법으로, 세 개 이상의 큰따옴표(""")로 문자열을 감싸 따옴표와 백슬래시를 이스케이프 없이 그대로 쓰게 해 줍니다. JSON, HTML, 정규식, 여러 줄 SQL을 코드에 넣을 때 가독성이 크게 좋아지고, 닫는 따옴표 위치 기준으로 들여쓰기도 자동 제거됩니다.C# 원시 문자열 리터럴이란 무엇인가요?원시 문자열 리터럴은 """로 시작해 같은 개수의 """로 끝나는 문자열 표기법입니다. 내부의 큰따옴표, 백슬래시, 개행이 이스케이프 시퀀스로 해석되지 않고 그대로 문자열 값이 됩니다. C# 11 이상(.NET 7 이상)에서 사용할 수 있으며, 이전 버전에서는 컴파일되지 않습니다.기존에는 \.. 더보기 React createPortal 사용법: 모달 z-index·overflow 문제 해결 한 줄 요약: React createPortal은 컴포넌트의 자식을 부모 DOM 계층 밖의 다른 DOM 노드(보통 document.body)에 렌더링하는 API입니다. 모달, 툴팁, 드롭다운처럼 부모의 overflow: hidden이나 z-index에 가려지는 UI를 만들 때 사용하며, 이벤트와 Context는 여전히 React 트리를 따라 전달됩니다.React createPortal이란 무엇인가요?createPortal은 react-dom 패키지가 제공하는 함수로, 자식 요소를 지정한 DOM 노드 안에 렌더링하게 해 주는 API입니다. 문법은 createPortal(children, domNode, key?)이며, React 컴포넌트 트리상의 위치는 그대로 유지한 채 실제 DOM 위치만 바꿉니다(공식 .. 더보기 C# 제네릭 제약조건 where 사용법: class, struct, new() 정리 한 줄 요약: C# 제네릭 제약조건(where T : ...)은 타입 매개변수 T에 허용할 타입의 범위를 컴파일 시점에 제한하는 문법입니다. 제약을 걸면 T에서 특정 멤버를 안전하게 호출할 수 있고, 잘못된 타입은 컴파일 오류로 바로 걸러집니다. 이 글에서는 class, struct, new(), 인터페이스, notnull, INumber 제약을 예제로 정리합니다.C# 제네릭 제약조건이란 무엇인가요?제네릭 제약조건은 where 키워드로 타입 매개변수가 만족해야 할 조건을 지정하는 기능입니다. 제약이 없으면 T는 object로 취급되어 ToString(), Equals() 같은 기본 멤버만 호출할 수 있습니다. 제약을 추가하면 컴파일러가 해당 조건을 보장하므로 T의 멤버나 생성자를 안심하고 사용할 수 있습.. 더보기 React StrictMode에서 useEffect가 두 번 실행되는 이유와 해결법 한 줄 요약: React StrictMode에서 useEffect가 두 번 실행되는 것은 버그가 아니라 개발 모드 전용 검사입니다. React 18부터 StrictMode는 컴포넌트를 마운트한 뒤 곧바로 언마운트하고 다시 마운트하며, 이때 effect의 setup, cleanup, setup이 차례로 실행됩니다. cleanup 함수를 올바르게 작성하면 문제 없이 해결되고, 프로덕션 빌드에서는 두 번 실행되지 않습니다.React useEffect가 두 번 실행되는 이유는 무엇인가요?React StrictMode는 개발 중에 잠재적인 버그를 찾아내기 위한 도구입니다. React 18 이상의 StrictMode는 개발 모드에서 새로 마운트되는 컴포넌트에 대해 "마운트 → 언마운트 → 재마운트"를 한 번 더 시.. 더보기 C# throw vs throw ex 차이와 예외 재던지기 정리 한 줄 요약: C#에서 catch 블록 안에서 예외를 다시 던질 때는 throw;를 써야 원래의 스택 트레이스가 보존됩니다. throw ex;는 스택 트레이스를 현재 위치로 초기화하므로 오류의 원인 위치를 찾기 어렵게 만듭니다.이 글에서는 C# throw vs throw ex 차이를 실행 결과로 비교하고, 예외 재던지기 방법 3가지(throw;, 예외 래핑, ExceptionDispatchInfo)와 예외 필터 활용법을 정리합니다.throw와 throw ex는 무엇이 다른가요?throw;는 현재 처리 중인 예외를 원본 그대로 다시 던지며 기존 스택 트레이스를 유지합니다. 반면 throw ex;는 같은 예외 객체를 새로 던지는 것으로 취급되어 스택 트레이스가 throw ex;를 실행한 지점부터 다시 시작됩.. 더보기 React 커스텀 훅 만드는 법과 useDebounce 예제 정리 한 줄 요약: React 커스텀 훅은 이름이 use로 시작하고 내부에서 다른 훅을 호출하는 함수로, 여러 컴포넌트에서 반복되는 상태와 이펙트 로직을 재사용하게 해 줍니다. 이 글에서는 useDebounce와 useLocalStorage를 직접 만들며 React 커스텀 훅 만드는 법을 정리합니다.React 커스텀 훅은 컴포넌트 사이에서 상태를 가진 로직을 공유하기 위한 가장 기본적인 방법입니다. 상태 자체를 공유하는 것이 아니라 로직만 공유하며, 훅을 호출할 때마다 독립적인 state가 새로 만들어집니다.React 커스텀 훅이란 무엇인가요?커스텀 훅(custom hook)은 use로 시작하는 이름을 가지며 내부에서 useState, useEffect 같은 다른 훅을 호출하는 JavaScript 함수입니다... 더보기 C# Span<T> 사용법: 메모리 할당 없이 문자열·배열 자르기 한 줄 요약: C# Span는 배열, 문자열, 스택 메모리의 일부 구간을 복사 없이 가리키는 ref struct입니다. Substring 대신 ReadOnlySpan를 쓰면 문자열 파싱에서 힙 할당을 없애 GC 부담을 줄일 수 있습니다.C# Span란 무엇인가요?Span는 연속된 메모리 영역을 가리키는 ref struct 타입입니다. 데이터를 복사하지 않고 길이와 시작 위치만 들고 있어서, 배열이나 문자열의 일부를 잘라 쓸 때 새 객체를 만들지 않습니다. .NET Core 2.1과 C# 7.2에서 도입되었고 .NET 8, .NET 9에서도 핵심 성능 도구로 쓰입니다.읽기 전용 버전은 ReadOnlySpan입니다. 문자열은 수정할 수 없으므로 ReadOnlySpan로만 다룹니다.Substring과 Span.. 더보기 이전 1 2 3 4 ··· 70 다음