전체 글383 entity vs domain vs dto entity: DB를 위한 객체 DB에 1:1 매칭을 한다. db 구조가 바뀌면 entity도 바뀐다. domain: 비즈니스 로직을 위한 객체 dto : 외부와 데이터를 주고받기 위해 존재한다.번외 dto 내부에 생성자가 필요한이유: 서비스에서 도메인객체를 dto로 변환할때 도메인 객체를 받아서 필드를 채우는 생성자가 필요하고생성자가 없으면 dto가 어떤값으로 초기화되어야하는지 컴파일러가 알수 없다. mapper: entity vs domain vs dto로 분리 되어있어서 변환하는 코드가 사용됨 왜 Domain을 Controller로 넘기면 안되는지? 클라이언트한테 감춰야하는 데이터가 그대로 정보 노출된다.도메인이 API 스펙에 종속된다.양방형 의존성 문제로 도메인 변경이 곧 api 변경이 된다. .. 2026. 3. 20. try-with-resources try-with-resources리소스를 자동으로 닫아주는 Java 문법구조 비교일반 try-catch-finallyBufferedReader br = ...;try { br.readLine();} catch (IOException e) { ...} finally { br.close(); // 직접 닫아야 함}try-with-resources ✓try (BufferedReader br = ...) { br.readLine();} catch (IOException e) { ...}// br.close() 자동 호출됨try (여기) ← 이 괄호 안이 "with resource" 부분블록 } 닫히는 순간 JVM이 close() 자동 호출 → catch/finally 도달 시 이미 닫힘AutoClos.. 2026. 3. 18. throw new NotFoundShortenUrlException() 분해 throw new NotFoundShortenUrlException() 분해throw와 new 는 역할이 완전히 다름.throw → "이 예외를 던져라" 는 명령어 (키워드)new NotFoundShortenUrlException() → 예외 객체 생성왜 new가 필요한가?Java에서 throw는 객체를 받음. 클래스 이름이 아니라. javathrow NotFoundShortenUrlException; // ❌ 클래스 자체 - 객체 아님throw new NotFoundShortenUrlException(); // ✅ 객체 생성 후 던짐NotFoundShortenUrlException은 그냥 설계도(클래스) 임.실제로 던지려면 그 설계도로 실체(인스턴스) 를 만들어야 함.비유하자면"불이야!" 를.. 2026. 3. 17. CompletableFuture() 비동기 작업을 다루는 도구 설명서 CompletableFuture()나중에 결과가 나오는 비동기 작업future : 결과를 나중에 받는다.Completion: 결과가 나오면 이어서 다른 작업을 실행할수 있다. 특징1. 직접 완료시킬수 있음future.complete("결과")일반 future는 결과를 기다린다면 결과를 직접 넣을수 있음2. 여러 스레드가 동시에 완료하려고 해도 하나만 성공한다.race condition을 방지한다.3. 작업 이어붙이기가 가능하다.결과가 나오면 자동으로 다음 작업이 실행된다.4. async vs non-asyncthenApply() : 현재 작업을 끝낸 스레드가 이어서 실행할 수 있음thenApplyAsync(): 다른 스레드에서 실행됨 5. 기본 스레드 풀ForkJoinPool.commonPool(): 별.. 2026. 3. 16. [HttpClient] HttpClient의 역할:다른 서버(api)등에 HTTP 요청 전송응답(response)을 받아서 파싱rest api 호출, 외부 서비스 통신, 인증 서버 연결 등 다양한 곳에 사용한다.Apache httpclient : blocking, 스레드 1개가 응답 올때까지 잡고 기다림외부 API 호출 할때 타임아웃 설정 필수대량 호출시 커넥션 풀, 재시도, 서킷브레이커 연계 필webclient: non blocking, 요청 보내고 스레드반환, 응답오면 다시 처리함 출처: https://baek-dev.tistory.com/217 [Spring Boot] HttpClientHttpClient란?HttpClient는 자바 애플리케이션이 다른 서버나 API에 HTTP 요청(GET, POST 등)을 보내고 응답.. 2026. 2. 23. [CacheManager ] CacheManager : 인스턴스를 지연 생성하는 구현방식 런타임에 추가시 영역을 동적으로 생성하지 않고 getCache 캐시 이름 집합을 미리 정의하는 정적모드로 지원caffeine 기본 캐시 구성은 빌더를 통해 세밀하게 조정할수 있다. 발생했던 에러 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'cacheAutoConfigurationValidator' defined in class path resource [org/springframework/boot/autoconfigure/cache/CacheAutoConfiguration.class]: No cache manager could be.. 2026. 2. 20. 이전 1 2 3 4 ··· 64 다음