profile
park

이미지 태그 잘 사용하기

웹 페이지에서 이미지를 표시할 때 가장 먼저 떠오르는 태그는 img 태그다.이미지를 화면에 보여주는 것만 생각한다면 이것으로 충분해 보인다.하지만 문득 이런 궁금증이 들었다.화면에는 200px 크기로 보이는데, 브라우저는 정말 200px 크기의 이미지만 다운로드하고 있

2026년 7월 17일
·
0개의 댓글
·

TypeScript 타입 패턴 (3) — 기타 자주 쓰이는 패턴

면접과 실무에서 빈도 높은 세 가지. 특히 마지막 unknown과 API 에러 처리는 실전에서 가장 자주 마주치는 주제다.이 글에서 다루는 것:제네릭 + 제약(extends)함수 오버로드 vs 유니온unknown vs any — 그리고 API 응답/에러 타입 정의언제

2026년 7월 16일
·
0개의 댓글
·

TypeScript 타입 패턴 (2) — 타입 조작(Utility)

기존 타입/값에서 새 타입을 파생하는 도구들. 타입의 단일 출처(single source of truth)를 만드는 데 핵심. 상수 하나만 고치면 관련 타입이 전부 따라오게 만드는 게 목표다.이 글에서 다루는 것:as constkeyof typeof내장 유틸리티 타입템

2026년 7월 16일
·
0개의 댓글
·

useEffect cleanup과 stale closure (state, ref)

useEffect의 cleanup에서 AbortController.abort()를 호출하도록 짰는데, 요청이 취소되지 않았다. 디버깅해보니 cleanup 안에서 컨트롤러가 계속 null로 찍혔다. 분명히 setAbortController로 값을 넣어줬는데도. 이 글은

2026년 7월 16일
·
0개의 댓글
·

TypeScript 타입 패턴 (1) — 좁히기(Narrowing)

넓은 타입(string, unknown, 유니온)을 특정 타입으로 안전하게 좁히는 방법들. 공통 목표는 as로 우기지 않고, 런타임 검증을 타입에 연결하는 것.왜 as를 피하나?as(타입 단언)는 컴파일러에게 "내가 책임질 테니 이 타입이라고 쳐"라고 우기는 것이다.

2026년 7월 16일
·
0개의 댓글
·

React key prop 정리

리뷰 코멘트 "React에서 key는 어떤 역할일까요?"에서 파생면접 단골 주제 — 배경(Virtual DOM, Reconciliation)까지 함께 정리"반복문 쓸 때 key 안 쓰면 에러난다" → 정확히는 에러가 아니라 경고(warning).동작은 하지만, key를

2026년 7월 10일
·
0개의 댓글
·

목록 무한스크롤과 race condition, StrictMode, 그리고 rootMargin

React로 무한스크롤을 직접 구현하다가 버그 하나를 고쳤더니 다음 버그가 드러나고, 그걸 고쳤더니 또 다음 문제가 나타났던 3연속 디버깅 기록.쇼핑몰 프로젝트에서 상품 목록 페이지를 만들고 있었다. 커서 기반 페이지네이션 + IntersectionObserver로 무

2026년 7월 10일
·
0개의 댓글
·

React 컴포넌트 설계 개념 정리

ProductCard 리뷰 코멘트에서 나온 개념 3가지 — 관심사 분리 / props 네이밍 / 함수 분리 예외(useNavigate → onNavigate prop 위임 리뷰에서 파생)컴포넌트는 자기 일에만 집중하고, 다른 관심사는 부모에게 넘긴다.ProductCar

2026년 7월 9일
·
0개의 댓글
·

비제어(Uncontrolled) vs 반응형(Reactive/Controlled) 차이점

비제어 (Uncontrolled) > 리액트의 state가 아닌, 브라우저 DOM 자체가 입력값을 들고 있다. 데이터의 주인은 브라우저(DOM) 동작: 사용자가 글자를 칠 때마다 리액트한테 알려주지 않음. 브라우저 DOM 자체( HTML )이 조용히 자기 값을 업데이트함. 리액트는 ref를 통해 나중에 값을 가져옴 장점: 키 입력마다 컴포넌트가 다시...

2026년 4월 11일
·
0개의 댓글
·

React Hook Form - useForm

React Hook Form - useForm

2026년 4월 10일
·
0개의 댓글
·

브라우저 - CORS

CORS는 기본적으로 SOP(Same-Origin Policy, 동일 출처 정책) 때문에 발생합니다. 아래 3가지 요소 중 하나라도 다르면 브라우저는 이를 다른 출처로 간주하고 차단합니다.프로토콜(Protocol)이 다를 때: http와 https는 서로 다른 출처도메

2026년 2월 18일
·
0개의 댓글
·

호이스팅

자바스크립트 엔진은 코드를 실행하기 전 '컴파일 단계'를 거치며 변수 선언을 메모리에 미리 등록합니다. 실제 코드 위치와 상관없이 선언부만 최상단으로 끌어올려진 것처럼 보이는 현상을 말합니다.호이스팅은 모든 변수(var, let, const)에 발생하지만, 그 결과는

2026년 2월 18일
·
0개의 댓글
·

call by value, call by reference 란?

call by value, call by reference 란?함수 호출 시 값을 전달하는 방식을 의미합니다. Call by Value는 값의 복사본이 전달되므로, 함수 내부에서 값을 변경해도 원본에는 영향이 없습니다.Call by Reference는 변수의 참조값(메

2026년 2월 6일
·
0개의 댓글
·

불변성이란?

불변성이란 기존 데이터를 직접 변경하지 않고, 새로운 값을 생성하여 상태 변화를 표현하는 성질을 의미합니다.자바스크립트에서 원시 타입은 한 번 생성된 값을 수정할 수 없기 때문에 자연스럽게 불변성을 가지며, 객체와 배열 같은 참조 타입은 내부 값을 변경할 수 있어 가변

2026년 2월 6일
·
0개의 댓글
·

얕은 복사/깊은 복사

얕은 복사는 객체의 최상위 프로퍼티만 새로 복사하고(1단계 프로퍼티),내부에 있는 중첩 객체나 배열은 기존 참조를 그대로 공유하는 복사 방식입니다.따라서 복사본에서 중첩 데이터를 수정하면 원본에도 영향이 발생할 수 있습니다.대표적으로 스프레드 연산자나 Object.as

2026년 2월 6일
·
0개의 댓글
·

자바스크립트 데이터 타입

자바스크립트의 데이터 타입은 크게 원시 타입과 참조 타입으로 구분됩니다.NumberBigIntStringBooleannullundefinedSymbol원시 타입의 값은 변경 불가능한 값이며,변수에 값을 할당하거나 복사할 때 값 자체가 복사되어 전달됩니다.원시 값은 불변

2026년 2월 6일
·
0개의 댓글
·