본문 바로가기
728x90

전체 글168

React 컴파일러 1. React 컴파일러가 뭔가?빌드 시점에 React 코드를 자동으로 최적화하는 도구개발자가 직접 작성하던 메모이제이션을 상당 부분 대신함목적은 불필요한 리렌더링과 반복 계산을 줄이는 것“쉽게 말하면 useMemo, useCallback, React.memo를 개발자가 일일이 적용하던 일을 컴파일러가 자동으로 해줍니다.”2. 메모이제이션이 뭔가?이전 계산 결과를 저장했다가 같은 조건에서 재사용하는 것계산과 렌더링을 반복하지 않게 해 성능을 개선함“같은 계산을 또 하지 말고, 전에 구한 결과를 재사용하는 방식입니다.”3. 기존 방식은 뭐가 문제였나?기존에는 개발자가 직접 사용해야 했음.계산 결과: useMemo함수: useCallback컴포넌트: React.memo문제점:코드가 복잡해짐의존성 배열을 관리.. 2026. 8. 15.
새로운 React 앱 만들기 새로운 React 앱, 뭘로 시작해야 할까새 React 프로젝트를 만들려고 검색하면 시작부터 선택지가 쏟아진다. Next.js, React Router, Vite, Expo는 물론이고 TanStack Start나 RedwoodJS 같은 이름도 나온다. React 하나 배우러 왔는데 왜 프레임워크부터 골라야 하는지 의문이 들 수 있다.결론부터 말하면 실제로 배포할 서비스를 만든다면 프레임워크로 시작하는 것이 기본 선택이다. React 자체는 UI를 만드는 라이브러리이므로 라우팅, 데이터 요청, 렌더링 방식, 빌드와 배포 같은 앱 전체의 구조까지 결정해주지는 않는다. 프레임워크는 이 빈칸을 채워준다.다만 모든 프로젝트에 같은 도구가 필요한 것은 아니다. 무엇을 만들 것인지에 따라 고르면 된다.일단 이것부터 .. 2026. 8. 12.
React로 사고하기 React를 배울 때 문법보다 헷갈리는 것이 있다. 화면을 어디까지 컴포넌트로 쪼개야 하는지, 무엇을 State로 만들어야 하는지, 그 State를 어느 컴포넌트에 둬야 하는지다.React 공식문서의 ‘React로 사고하기’는 이 문제를 검색 가능한 상품 테이블 하나로 설명한다. 원문은 길지만 결론은 다섯 단계다.화면을 컴포넌트로 쪼갠다.데이터만 받아 그리는 정적 화면부터 만든다.꼭 필요한 최소한의 State를 찾는다.State를 소유할 컴포넌트를 정한다.자식의 입력으로 부모 State를 변경하게 만든다.하나씩 보자.예제: 검색 가능한 상품 테이블서버에서 다음과 같은 상품 목록을 받는다고 하자.const products = [ { category: '과일', price: '1,000원', stocked.. 2026. 8. 12.
react 시작하기 React 공식문서의 빠른 시작만 읽어도 실무에서 자주 만나는 기본 개념은 대충 훑을 수 있다. 문제는 지금 졸리다는 것이다. 그러니 긴 설명은 치우고, React가 화면을 만드는 방식부터 데이터가 움직이는 방식까지만 한 번에 정리해보자.React는 화면을 컴포넌트로 쪼갠다React 앱은 컴포넌트라는 UI 조각으로 구성된다. 버튼처럼 작은 것도 컴포넌트고, 페이지 전체도 컴포넌트가 될 수 있다.컴포넌트의 정체는 JSX를 반환하는 자바스크립트 함수다.function MyButton() { return 버튼;}export default function MyApp() { return ( 내 앱 );}여기서 기억할 것은 하나다. 직접 만든 React 컴포넌트는 MyButt.. 2026. 8. 12.
DDIA-Chapter 5. 복제 (Replication) 핵심 개념복제: 네트워크로 연결된 여러 머신에 동일한 데이터의 복사본을 유지하는 것목적: 고가용성, 지연 시간 감소, 읽기 처리량 확장발표 도입 (5분)왜 복제가 필요한가?데이터를 단일 서버에만 저장하면 세 가지 근본적 한계에 부딪힙니다.가용성(Availability): 서버 한 대가 죽으면 서비스 전체가 중단됩니다.지연 시간(Latency): 서울에서 미국 서버까지 왕복 150ms — 사용자 체감으로는 답답합니다.읽기 처리량(Read Throughput): 트래픽이 폭증하면 단일 서버의 CPU/IO가 병목이 됩니다.복제(Replication) 는 동일한 데이터의 복사본을 네트워크로 연결된 여러 머신에 유지하여 이 세 가지 문제를 동시에 해결하는 기법입니다. ┌──────────.. 2026. 2. 8.
10장: 실행 계획 10.1 통계 정보10.1.1 테이블 및 인덱스 통계 정보영구적 통계 관리: MySQL 5.6부터 통계 정보를 메모리가 아닌 mysql 데이터베이스의 innodb_index_stats, innodb_table_stats 테이블에 저장하여 서버 재시작 후에도 일관된 실행 계획을 유지할 수 있습니다.수집 정보: 테이블의 전체 레코드 건수와 프라이머리 키 크기, 인덱스별 유니크한 값의 개수(기수성) 등을 수집합니다.갱신 시점: 테이블이 처음 열리거나, 레코드가 대량(약 1/16 이상)으로 변경될 때, 또는 ANALYZE TABLE 명령 시 자동으로 갱신됩니다.설정 제어: STATS_PERSISTENT로 영구 보관 여부를, STATS_AUTO_RECALC로 자동 갱신 여부를 테이블 단위로 설정할 수 있습니다.1.. 2026. 1. 6.
728x90