| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
- COPYOFRANGE
- API
- Generic method
- 벌크연산
- hoisting
- propagation
- wrapper class
- tracking-modes
- #@Transacional
- Java
- optimistic lock
- NestJS 요청흐름
- demand paging
- 단어변환
- TDZ
- pessimistic lock
- HandlerMethod
- Transaction
- ExceptionResolver
- type eraser
- assertJ
- cross-cutting concerns
- 프로그래머스
- CQS
- SPOF
- IllegalStateException
- RequestMappingHandlerMapping
- 역정규화
- CORS
- generic type
- Today
- Total
목록분류 전체보기 (531)
jingyulog
인터럽트BLOCKED 상태는 인터럽트가 걸려도 대기 상태를 빠져나오지 못한다. 여전히 BLOCKED 상태이다.WAITING, TIMED_WAITING 상태는 인터럽트가 걸리면 대기 상태를 빠져나온다. 그래서 RUNNABLE 상태로 변한다.용도BLOCKED 상태 : 자바의 synchronized에서 락을 획득하기 위해 대기할 때 사용된다.WAITING, TIMED_WAITING 상태 : 스레드가 특정 조건이나 시간 동안 대기할 때 발생하는 상태이다.Thread.join(), LockSupport.park(), Object.wait()와 같은 메서드 호출시 WAITING 상태가 된다.Thread.join(long millis), LockSupport.parkNanos(ns)등과 같은 시간 제한이 있는 대기 ..
스레드 기본 정보Thread 클래스는 스레드를 생성하고, 관리하는 기능을 제공한다.public class ThreadInfoMain { public static void main(String[] args) { // main thread Thread mainThread = Thread.currentThread(); log("mainThread = " + mainThread); log("mainThread.threadId() = " + mainThread.threadId()); log("mainThread.getName() = " + mainThread.getName()); log("mainThread.getPrioritiy()..
자바 메모리 구조// 예시 코드public class OrderService { // 1. static 변수 public static String appName = "MyOrderApp"; public static int userCount = 0; // 2. 인스턴스 변수 (필드) private int orderId; // 3. 메서드 public void createOrder(int id) { // 여기서 Order created가 리터럴 상수 System.out.println("Order created: " + id); }}Method Area: 메서드 영역은 프로그램을 실행하는데 필요한 공통 데이터를 관리한다. 이 영역은 프로그..
개요자료 구조에서 순회는 자료 구조에 들어있는 데이터를 차례대로 접근해서 처리하는 것을 의미한다.그런데 다양한 자료 구조가 있고, 각각의 자료 구조마다 데이터를 접근하는 방법이 다 다르다. 가령 배열 리스트는 index를 size까지 차례대로 증가시키면서 순회해야 하고, 연결 리스트는 node.next를 사용해서 node의 끝이 null일 때 까지 순회해야 한다. 이렇듯 각 자료 구조마다 순회하는 방법이 서로 다르기 때문에 각 자료 구조의 순회 방법을 배워야 한다. 그리고 순회 방법을 배우려면 각 자료 구조의 내부 구조도 알아야 한다. 하지만 우리는 단지 자료 구조에 들어있는 모든 데이터를 단순히 순서대로 접근해서 출력하거나 계산하고 싶을 뿐이다.따라서 결국에 우리는 자료 구조의 구현과 관계 없이 모든 ..
Stack 클래스는 사용하지 말자자바의 Stack 클래스는 내부에서 Vector라는 자료 구조를 사용한다. 이 자료 구조는 자바 1.0에 개발되었는데, 지금은 사용되지 않고 하위 호환을 위해 존재한다. 지금은 더 빠른 좋은 자료 구조가 많다. 따라서 Vector를 사용하는 Stack도 사용하지 않는 것을 권장하며, 대신에 Deque를 사용하는 것이 좋다. Queue 자료 구조Queue 인터페이스는 List, Set과 같이 Collection의 자식이다. 이러한 Queue의 대표적인 구현체는 ArrayDeque, LinkedList가 있다. 참고로 LinkedList는 Deque와 List 인터페이스를 모두 구현한다.public class LinkedList extends AbstractSequential..
개요먼저 엔티티 매니저에 대해 알기 위해서는 영속성 컨텍스트에 대해 알아야 한다. 영속성 컨텍스트는 엔티티를 영구 저장하는 환경으로 1차 캐싱, 쓰기 지연, 변경 감지(dirty checking)를 통해 영속 로직을 효율적으로 할 수 있게 해준다. 이러한 효율적인 영속 로직 수행을 위해서 엔티티는 영속성 컨텍스트에 관리되어야 한다. 이런 작업을 도와주는 것이 엔티티 매니저이다.엔티티 매니저는 엔티티의 상태를 변경하고, 영속성 컨텍스트와 상호작용함으로써 영속 로직을 수행하는 역할을 가지고 있다.엔티티 매니저의 역할엔티티는 영속성 컨텍스트와 관련하여 4가지 상태(비영속, 영속, 준영속, 삭제)를 가질 수 있다.이때, 엔티티 매니저는 persist, merge, remove, close 메서드를 이용해 엔티티..