Redux Toolkit 완전 기초 – createSlice와 .actions 이해하기React로 앱을 만들다 보면 여러 컴포넌트에서 데이터를 공유해야 하는 상황이 생깁니다.예를 들어 로그인 정보, 권한, 현재 선택된 탭 같은 것들 말이죠.이걸 컴포넌트끼리 props로 일일이 넘기다 보면… 코드가 금방 복잡해집니다.이 문제를 해결해 주는 게 바로 Redux입니다.Redux는 전역 상태 저장소(Store)를 만들어서 모든 컴포넌트가 필요한 데이터를 한 곳에서 읽고/쓰게 해줍니다. Redux Toolkit으로 간단하게 Store 만들기요즘은 Redux Toolkit 덕분에 세팅이 훨씬 쉬워졌습니다.아래는 로그인 상태를 관리하는 authSlice.js 예시입니다.import { createSlice } fro..
문제npm start> react-scripts startInvalid options object. Dev Server has been initialized using an options object that does not match the API schema. - options.allowedHosts[0] should be a non-empty string. 원인webpack-dev-server의 호스트 검증 로직 때문 해결.env.development.local 생성 후 아래 작성DANGEROUSLY_DISABLE_HOST_CHECK=true 후 npm start 하면 정상작동 원리react-scripts start → 내부에서 webpack-dev-server 실행webpack-dev-serve..
1. 함수생성postgre에서 먼저 파티션 생성 함수를 만들어야합니다.CREATE OR REPLACE FUNCTION "MEASURE".create_monthly_partition(target_date date) RETURNS void LANGUAGE plpgsqlAS $function$DECLARE start_date date := date_trunc('month', target_date); end_date date := start_date + interval '1 month'; partition_name text := format('meas_data_%s', to_char(start_date, 'YYYYMM'));BEGIN IF NOT EXISTS ( SELECT 1 FROM pg..
Python 타입 힌트에서 tuple, list, dict Python에서 타입 힌트(Type Hint)는 코드의 가독성과 안정성을 높여주는 도구입니다.특히 tuple, list, dict처럼 자료형 컨테이너의 타입 힌트를 쓸 때는 갯수 제약이 어떻게 적용되는지를 정확히 아는 게 중요합니다.이번 글에서는 아래 세 가지를 기준으로 비교해보겠습니다:tuple[타입1, 타입2, ...]list[타입]dict[KeyType, ValueType]✅ 1. tuple: 갯수 중요def get_user() -> tuple[str, int]: return ("Alice", 30)이 함수는 두 개의 값을 반환합니다.첫 번째는 str, 두 번째는 int갯수까지 정확히 맞아야 합니다❌ 예외 발생 예시get_user() ..
자주 쓰는 예외 클래스예외 클래스설명ValueError값이 잘못된 경우TypeError타입이 잘못된 경우KeyError딕셔너리 키가 없을 때IndexError리스트 인덱스 범위 초과ZeroDivisionError0으로 나눴을 때RuntimeError일반적인 실행 오류 예외 발생시키기raise를 사용하면 됩니다. java의 throw같은 역할을 합니다. raise ValueError(f"지원하지 않는 주소: {address}")
파이썬 re.match() 완전 정복파이썬에서 문자열을 분석하거나 필터링할 때 정규표현식(Regex)은 매우 유용한 도구입니다.그중에서도 re.match()는 문자열이 특정 형식으로 시작하는지 검사할 때 사용하는 함수입니다.이 글에서는 re.match()의 기본 개념부터 다양한 정규표현식 구성 요소, 실전 예제까지 하나하나 쉽게 설명해드리겠습니다.✅ re.match()란?re.match(pattern, string) 형태로 사용하며,문자열의 시작부터 pattern이 일치하는지 확인합니다.일치하면 Match 객체를 반환일치하지 않으면 None을 반환import rem = re.match(r'abc', 'abcdef')if m: print(m.group()) # 출력: 'abc'→ 문자열이 'abc'..