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}")