본문 바로가기

WEB개발

(69)
Daemon Thread vs User Thread Daemon Thread vs User ThreadJava에서 스레드는 크게 User Thread(사용자 스레드) 와 Daemon Thread(데몬 스레드) 로 나뉩니다. 1. User Thread (사용자 스레드)✅ 특징기본적으로 생성되는 스레드는 모두 User Thread메인 스레드(Main Thread)도 사용자 스레드모든 사용자 스레드가 종료될 때까지 JVM은 종료되지 않음✅ 예제public class UserThreadExample { public static void main(String[] args) { Thread userThread = new Thread(() -> { for (int i = 0; i 메인 스레드 종료 User Thread 실행 중....
[Spring] Request를 처리하는 주석 (Annotation) @RequestParam  @PathVariable  @RequestBody @ModelAttribute  @RequestHeader @CookieValue  @SessionAttribute  @RequestPart  @RequestParam?name=value 같은 쿼리 파라미터 값을 받음 Content-typeapplication/x-www-form-urlencodedmultipart/form-data(쿼리 파라미터로 전달될 경우 Content-Type 상관없음) @GetMapping("/greet")public String greet(@RequestParam String name) { return "Hello, " + name;}  @RequestBodyJSON, XML 등의 HTTP 요청 본..
CyclicBarrier, CountDownLatch `CyclicBarrier` 는 여러 개의 스레드가 모두 특정 지점(Barrier)에 도달할 때까지 기다렸다가, 동시에 실행을 재개하도록 하는 동기화 도구입니다."Cyclic"이라는 이름처럼 반복해서(barrier를 다시 사용할 수 있음) 사용할 수 있음CountDownLatch와 달리 모든 스레드가 도착해야만 다음 단계로 진행 package com.example;import java.util.concurrent.CyclicBarrier;public class CyclicBarrierReuseExample { public static void main(String[] args) { int numThreads = 3; CyclicBarrier barrier = new Cycl..
React 참고, 오류 Window객체 확장 declare global 구문을 사용하면 브라우저의 window 객체를 확장하는 인터페이스를 정의할 수 있습니다. TypeScript에서 Window 인터페이스는 전역 window 객체를 나타내므로, 이 인터페이스를 확장하면 브라우저 환경에서 window 객체에 새로운 속성을 추가할 수 있습니다.declare global { interface Window { myCustomProperty: string; myCustomFunction: () => void; }}// window 객체에 새로운 속성을 추가window.myCustomProperty = "Hello, world!";window.myCustomFunction = () => { console.log("Cus..
Animation (transition, transform, keyframes) 기본적인 의사 클래스 이벤트 :hover 사용자가 요소 위에 마우스를 올렸을 때 스타일을 변경할 때 사용합니다.일반적으로 버튼, 링크 등의 강조 효과에 많이 사용됩니다. :focus 사용자가 요소를 포커스(클릭하거나 키보드 Tab으로 이동)했을 때 적용됩니다.주로 input, textarea 같은 폼 요소에 사용됩니다. :active 사용자가 요소를 클릭하고 있는 동안 적용됩니다.버튼을 클릭할 때 눌리는 효과를 만들 때 유용합니다. :target :target은 URL의 해시(#id)가 해당 요소를 가리킬 때 적용됨.주로 앵커링(페이지 내 이동)과 모달/토글 효과 등에 활용됨. :focus-visible :focus와 유사하지만, 키보드로 포커스할 때만 적용됩니다.마우스로 클릭하면 :focus-visib..
Spring Reactive [Mono, Flux, DeferredResult, WebClient, Future] Spring Reactive는 비동기적이고 논블로킹(Non-blocking) 방식으로 데이터를 처리하는 방법을 제공하는 Spring의 기능입니다. 주로 SpringWebFlux라는 모듈을 통해 구현되며, 이는 서버 응답의 지연 시간을 줄이고 높은 동시성을 처리할 수 있도록 돕습니다. 비동기처리 @GetMapping("rest") public Mono> rest(@RequestParam int idx) { String url = "/service?req={req}"; // 첫 번째 요청 보내기 return webClient.get() .uri(url, "rest" + idx) .retrieve() ..
[환경구성] React개발을 위한 유용한 노드모듈 (node_modules) [Dev] @vitejs/plugin-react더보기@vitejs/plugin-react는 Vite에서 React를 원활하게 사용할 수 있도록 도와주는 공식 플러그인입니다.📌 역할:Vite에서 React Fast Refresh 지원JSX/TSX 변환 최적화Babel을 활용한 코드 트랜스파일링 react-infinite-scroller더보기import InfiniteScroll from "react-infinite-scroller";import {useInfiniteQuery} from "@tanstack/react-query";import {People} from "./People";interface PageData { next: string | null; results: People[];}cons..
[환경구성] tsconfig.js, tsc tsconfig.json (혹은 tsconfig.ts) : TypeScript 컴파일러에 프로젝트의 설정(컴파일 옵션, 포함할 파일, 제외할 파일 등)을 알려주는 구성 파일입니다. 주요 역할:컴파일 옵션 설정: 예를 들어, ECMAScript 버전(target), 모듈 시스템(module), 엄격한 타입 검사(strict) 등.프로젝트 파일 지정: 어떤 파일들을 컴파일할지 포함(include) 및 제외(exclude)할 파일들을 지정. tsc (TypeScript Compiler) : TypeScript 소스 코드를 JavaScript로 컴파일하는 명령줄 도구입니다. 주요 역할:컴파일 실행: 프로젝트 루트에 tsconfig.json이 있으면, 그 설정에 따라 전체 프로젝트를 컴파일합니다.파일 단위 컴파일..