| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- API
- assertJ
- type eraser
- generic type
- optimistic lock
- COPYOFRANGE
- TDZ
- propagation
- 프로그래머스
- tracking-modes
- hoisting
- RequestMappingHandlerMapping
- 역정규화
- 벌크연산
- SPOF
- 단어변환
- cross-cutting concerns
- demand paging
- NestJS 요청흐름
- ExceptionResolver
- Generic method
- IllegalStateException
- Transaction
- CORS
- CQS
- wrapper class
- Java
- HandlerMethod
- #@Transacional
- pessimistic lock
- Today
- Total
목록전체 글 (530)
jingyulog
스레드 기본 정보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 메서드를 이용해 엔티티..
인증의 관점에서 쿠키의 어떤 설정이 어떤 공격을 막을까?먼저 쿠키의 각 설정의 역할은 다음과 같다.HttpOnly자바스크립트에서 document.cookie로 쿠키를 읽거나 수정할 수 없도록 설정하는 옵션이다.XSS 공격으로부터 쿠키 탈취를 방지해준다.access token, refresh token은 반드시 HttpOnly true옵션을 설정하여 XSS 공격을 방지해야 한다.CSRF 토큰은 클라이언트가 읽어야 하므로 HttpOnly 옵션을 false로 설정한다.즉, HttpOnly 쿠키는 JS에서 읽을 수 없으므로, axios나 fetch 등에서 헤더로 직접 전송할 수 없다.SecureHTTPS 연결에서만 쿠키가 브라우저에 전송되도록 하는 설정이다.MITM 공격으로부터 쿠키를 보호하는 역할을 한다.ac..