| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- TDZ
- ExceptionResolver
- #@Transacional
- 프로그래머스
- Java
- IllegalStateException
- 역정규화
- API
- demand paging
- SPOF
- type eraser
- Generic method
- NestJS 요청흐름
- propagation
- CQS
- hoisting
- CORS
- COPYOFRANGE
- Transaction
- RequestMappingHandlerMapping
- assertJ
- pessimistic lock
- tracking-modes
- 벌크연산
- wrapper class
- generic type
- 단어변환
- HandlerMethod
- cross-cutting concerns
- optimistic lock
- Today
- Total
목록분류 전체보기 (528)
jingyulog
개요자료 구조에서 순회는 자료 구조에 들어있는 데이터를 차례대로 접근해서 처리하는 것을 의미한다.그런데 다양한 자료 구조가 있고, 각각의 자료 구조마다 데이터를 접근하는 방법이 다 다르다. 가령 배열 리스트는 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..
개요자바의 Map 인터페이스는 key-value 쌍을 저장하는 자료 구조이다. 즉, 인터페이스이기 때문에 직접 인스턴스를 생성할 수는 없고, 구현한 HashMap, TreeMap, LinkedHashMap 등을 통해 사용할 수 있다. Map vs Set사실 Map의 key는 Set과 같은 구조이다. Map은 모든 것이 key를 중심으로 동작하며 중복을 허용하지 않고 순서를 보장하지 않는다. 여기에 value는 단순히 key 옆에 붙어 Map이 되는 것이다.즉, Map과 Set은 거의 같고, value를 가지고 있는가 없는가의 차이만 있는 것이다. 이런 이유로 Set, Map의 구현체는 거의 같으며, 실제로 자바 HashSet의 구현은 대부분 HashMap의 구현을 가져다 사용하여, Map에서 value만..
Collection InterfaceCollection interface는 java.util package의 Collection Framework의 핵심 인터페이스 중 하나이다. 이 인터페이스는 자바에서 다양한 컬렉션. 즉, 데이터 그룹을 다루기 위한 메서드를 정의한다. 이 인터페이스는 List, Set, Queue와 같은 다양한 하위 인터페이스로 구현되며, 이를 통해 데이터를 List, Set, Queue 등의 형태로 관리할 수 있다.여기서 Set 인터페이스는 HashSet, LinkedHashSet, TreeSet 등의 여러 구현 클래스를 가지고 있으며, 각 클래스는 Set Interface를 구현하며 각각의 특성을 가지고 있다.1. HashSet해시 자료 구조를 사용해서 요소를 저장하며, 요소들은 ..
