728x90
반응형

분류 전체보기 1364

[intelliJ] Stash / Unstash

✅ Git Stash 저장 단계 (IntelliJ에서)프로젝트 우클릭 → Git → Stash Changes...창이 뜨면Message 칸에 메모 적기 (예: 임시저장 - 고객API 수정 중)다른 옵션은 그대로 두면 됩니다(특히 “Keep staged changes”나 “Include untracked files”는 기본값 그대로 OK)[Create Stash] 버튼 클릭💡 그 결과현재 수정 중이던 변경사항들이 임시 저장(Stash) 되고작업 폴더는 깨끗한 상태로 돌아옵니다(즉, git diff 하면 변경사항 없음 상태가 됨)✅ 다시 복원하려면 (Unstash)나중에 원래 작업으로 돌아가고 싶을 때는 👇프로젝트 우클릭 → Git → Unstash Changes...목록에 아까 저장한 스태시(임시저장 ..

IT지식 2025.10.13

[js] Date 객체끼리 뺄셈(-)

자바스크립트에서는 Date 객체끼리 뺄셈(-)을 하면 자동으로 내부적으로 getTime()이 호출돼서 밀리초(ms) 단위 차이를 반환합니다. 📌 예시const d1 = new Date(2025, 9, 1); // 2025-10-01const d2 = new Date(2025, 9, 31); // 2025-10-31console.log(d2 - d1); // 👉 2592000000 (밀리초 단위, 약 30일)console.log(d2.getTime() - d1.getTime()); // 👉 2592000000 (위 결과와 동일)즉, d2 - d1 은 사실상 d2.getTime() - d1.getTime() 과 같아요. 📌 활용const days = (info.end - info.star..

Front/JS & jQuery 2025.10.04

[js] getTime()

getTime()은 자바스크립트 Date 객체에서 많이 쓰이는 메서드로,해당 날짜를 1970년 1월 1일 00:00:00 UTC부터의 밀리초(ms)로 변환한 숫자를 반환합니다.📌 예시const now = new Date(); console.log(now); // 👉 Tue Oct 01 2025 14:20:00 GMT+0900 (KST)console.log(now.getTime()); // 👉 1759359600000 (밀리초 단위 숫자) 📌 활용 - 두 날짜 차이 구하기const d1 = new Date(2025, 9, 1); // 2025-10-01const d2 = new Date(2025, 9, 31); // 2025-10-31const diffMs = d2.getTime() - d1..

Front/JS & jQuery 2025.10.03

[JAVA] 스레드와 wait()와 notify() 상호작용

1️⃣ 상황 설정공유 객체 obj가 있음 → 모니터 포함두 스레드: Thread A(생산자), Thread B(소비자)목적: Thread A가 데이터를 생산하면 Thread B가 소비2️⃣ 모니터 구조 그림 [Object obj] ┌──────────────┐ │ Monitor │ │ ┌────────┐ │ │ │ Lock │ │ ← 현재 락 소유 스레드 │ └────────┘ │ │ ┌────────┐ │ │ │ Wait Q │ │ ← wait() 호출 스레드 대기 큐 │ └────────┘ │ └──────────────┘Lock: 현재 객체의 모니터를 점유한 스레드Wait Q: wait() 호출로 대기 중인 스레드 목록3️⃣ 실행 흐름 예제 class Shared { p..

JAVA 2025.10.02

[JAVA] 모니터(Monitor)

1️⃣ 모니터(Monitor)란?정의: 한 객체에 대한 동기화 제어 장치역할: 멀티스레드에서 한 번에 하나의 스레드만 객체를 사용하게 관리쉽게 말해 “객체에 걸린 자물쇠(lock)” 같은 존재예요.💡 모든 객체는 Java에서 모니터를 가지고 있음 → 스레드가 synchronized로 접근할 때 이 모니터를 사용2️⃣ 모니터 동작스레드가 synchronized(obj) 블록에 들어가면 → obj의 모니터 락을 획득모니터를 가진 스레드만 블록 안 코드를 실행 가능블록 종료 시 → 락 해제, 다른 스레드가 접근 가능wait()를 호출하면 → 락을 풀고 대기 → 다른 스레드 접근 가능notify()를 호출하면 → 대기 중인 스레드 중 하나를 깨움, 락이 해제될 때까지 기다림3️⃣ 그림으로 이해[Object o..

JAVA 2025.10.01

[JAVA] Object.notify()

wait() 과 같이 볼게요.1️⃣ 기본 개념wait()현재 스레드를 일시 정지시키는 메서드모니터 락을 해제하고 다른 스레드가 객체를 사용할 수 있게 함다른 스레드가 notify() 또는 notifyAll()을 호출하면 깨어남반드시 synchronized 블록 안에서 호출해야 함notify()wait()로 대기 중인 스레드 중 하나를 깨움객체의 모니터 락을 소유한 상태에서 호출해야 함notifyAll()은 모든 대기 스레드를 깨움💡 핵심: wait() = 기다림, notify() = 깨움wait()와 notify()는 모든 객체에 존재Object obj = new Object();synchronized(obj) { obj.wait(); // obj 락 해제하고 기다림 obj.notify..

Front/JS & jQuery 2025.09.30

[JAVA] synchronized 블록

Java에서 synchronized는 멀티스레드 환경에서 공유 자원을 안전하게 다루기 위해 사용하는 키워드예요. 1️⃣ 기본 개념멀티스레드 문제: 여러 스레드가 동시에 같은 자원(변수, 객체 등)에 접근하면 데이터가 꼬이거나 예상치 못한 결과가 발생할 수 있어요.해결책: synchronized를 사용해서 한 번에 하나의 스레드만 접근하도록 제한.락(Lock): synchronized는 내부적으로 **객체의 모니터(lock)**를 사용해 스레드 접근을 제어합니다.2️⃣ synchronized 사용 방법2-1. 메서드에 적용public synchronized void increment() { count++; // 한 스레드만 접근 가능}이렇게 하면 increment() 메서드 전체가 동기화됩니다.장점..

JAVA 2025.09.29

[JAVA] Object.wait()

Java에서 wait()는 모든 객체에 있는 메서드라는 점을 기억해야 합니다. 즉, Object 클래스에 정의되어 있어서 모든 객체에서 호출 가능합니다. 하지만 단순히 obj.wait()라고 하면 조금 복잡한 동작 원리가 있어요. 1️⃣ 기본 개념목적: 스레드를 일시 정지시키고, 다른 스레드가 해당 객체의 상태를 변경할 때까지 기다리게 하는 것.위치: java.lang.Object 클래스에 정의됨.조건: wait()를 호출할 때, 반드시 해당 객체의 모니터(락)을 소유하고 있어야 함 (즉, synchronized 블록 안에서만 호출 가능). synchronized(obj) { obj.wait(); // obj의 모니터를 가지고 있어야 함}2️⃣ 주요 특징특징설명모니터 필요wait()는 반드시 sy..

JAVA 2025.09.25

[JAVA] Thread.sleep()

Thread.sleep() 은 자바(Java) 에서 현재 실행 중인 스레드를 일정 시간 동안 일시 정지(대기) 시키는 메서드예요. 📌 기본 형식Thread.sleep(long millis) throws InterruptedException millis : 멈출 시간(밀리초 단위, 1초 = 1000ms)오버로드된 버전으로 나노초 단위까지 받을 수도 있습니다:Thread.sleep(long millis, int nanos) throws InterruptedException📌 동작 방식호출한 스레드는 지정된 시간 동안 실행 상태(Running) 에서 일시 정지(Timed Waiting) 상태로 전환됩니다.지정된 시간이 지나면, 다시 Runnable(실행 대기) 상태로 돌아가고, CPU 스케줄러가 잡아주면 ..

JAVA 2025.09.24
728x90
반응형