본문 바로가기

분류 전체보기215

로컬스토리지 세션스토리지 차이 로컬스토리지 (localStorage) vs 세션스토리지 (sessionStorage) 데이터 유지 기간브라우저를 꺼도 유지됨 (영구적)탭/브라우저 창 닫으면 삭제됨삭제 시점사용자가 직접 삭제하거나 브라우저 캐시/저장소 초기화 시탭이나 창을 닫는 순간 자동 삭제공유 범위같은 도메인 내 모든 탭에서 공유 가능같은 탭 내에서만 사용 가능용량 제한약 5~10MB (브라우저마다 다름)약 5MB (브라우저마다 다름)사용 목적로그인 상태 유지, 사용자 설정(다크모드, 언어) 저장입력 폼 임시 저장, 페이지 새로고침 시 데이터 유지로컬스토리지: 브라우저에 오래 남아 있는 저장소. 브라우저를 꺼도 다시 켜면 그대로 존재세션스토리지: 현재 열려 있는 탭에서만 유지 탭 및 브라우저를 닫으면 삭젝됨.즉 로컬스토리지는 세션스.. 2026. 1. 18.
리액트 + 자동 배포(Github action) + nginx + https 흐름 정리 사용 기술 : aws-linux(ubuntu) / react.js / github / nginx 2025. 11. 19.
React.js 정리 1 # 디바운스인풋에서 값 입력될 때 특정 시간동안 발생한 change 이벤트의 마지막 이벤트에만 반응해서 핸들러로 인풋아이템에 입력된 값 setState 하기import React, { useState, useCallback } from 'react';// 디바운스 함수 정의function debounce(func, delay) { let timer; return function (...args) { clearTimeout(timer); timer = setTimeout(() => { func.apply(this, args); }, delay); };}export default function DebouncedInput() { const [valueState, setValu.. 2025. 11. 17.
스프링 스케줄러와 배치 #3 - spring batch 로 데이터 마이그레이션 해보기 # 소스 실습 환경- java : 21- Spring Boot : 3.4.3- DB : h2 !! 이제 실제 시나리오를 구성하고 코드 작성 후 실행시켜보자 !!시나리오: User1 테이블에서 사용자들을 조회 후 User2 테이블에 마이그레이션 할 것이다.이때 User2 에 이미 해당 사용자가 존재하면 해당 사용자는 마이그레이션 대상에서 제외된다.User1 에서 User2 로 마이그레이션 될 때, User2 테이블의 memo 라는 컬럼에 마이그레이션 된 시점이 기록되게 한다. 작업 시작 전 개인 메모스프링 배치에서 reader > processor > writer 의 과정에서는stepBulder 가 각 step 에서 사용한 데이터를 연계시키기 때문에파라미터를 항상 비어있는 형태로 생성되며 따라서, 제네릭 .. 2025. 8. 31.
스프링 스케줄러와 배치 #2 - Spring Batch 개인 학습 용 포스팅 # 스케줄러만으로도 약속된 로직을 실행시킬 수 있는데 굳이 배치를 사용하는 이유 ? 대용량 데이터 처리에 최적화데이터를 청크 단위로 처리하거나 병렬 실행, 재시작, 실패 처리 같은 시나리오를 통한 로직 구현 가능세밀한 트랜잭션로직 실행 시, 실패한 지점부터 다시 시작할 수 있도록 설계 가능리더-프로세서-라이터 구조로 데이터 소스에서 읽고, 가공하고, 저장하는 역할과 구조가 분리되어 있어서 유지보수 및 확장성 용이 ✅ Scheduler + Transaction 의 한계@Scheduled 메서드 내에서 트랜잭션을 걸면 전체 로직이 하나의 트랜잭션으로 처리 → 간단한 작업에는 지장이 없지만, 복잡한 작업이나 다량의 데이터 처리시 문제가 될 수 있음.전체 롤백의 위험 → 데이터 .. 2025. 6. 24.
스프링 스케줄러와 배치 #1 - Spring Scheduler(@Scheduled), TaskScheduler 스케줄러란?특정 작업을 예약된 시점에 수행 가능하도록 스프링 프레임워크에서 제공하는 기능사옹 예 ) 예약 알림, 이메일 전송, 피드 알림 등등  - 프로젝트 설정 - 스케줄러 사용 시 옵션 정리fixedRate이전 작업 시작 시점 기준, 주기적으로 실행fixedRate = 5000작업 시작 후 5초마다 실행fixedDelay이전 작업 종료 시점 기준, 주기적으로 실행fixedDelay = 5000작업 종료 후 5초 뒤 실행initialDelay작업 시작 전 대기 시간 설정fixedRate = 5000, initialDelay = 1000010초 대기 후 5초마다 실행cronCron 표현식을 사용해 일정 예약cron = "0 0/5 * * * *"매 5분마다 실행zone타임존 설정 (기본은 시스템 타임존 .. 2025. 3. 9.