| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- generic type
- hoisting
- wrapper class
- Generic method
- 역정규화
- type eraser
- API
- 단어변환
- IllegalStateException
- TDZ
- cross-cutting concerns
- 벌크연산
- ExceptionResolver
- Transaction
- #@Transacional
- Java
- tracking-modes
- assertJ
- COPYOFRANGE
- CQS
- HandlerMethod
- RequestMappingHandlerMapping
- CORS
- optimistic lock
- NestJS 요청흐름
- SPOF
- 프로그래머스
- demand paging
- pessimistic lock
- propagation
- Today
- Total
목록Language/Java (59)
jingyulog
그룹화 스트림 사용 이후에 처리하기 조금 더 편리한 형태 즉, 내가 원하는 자료 구조로 그룹화 시킬 수 있다. groupingBy 전체 직원(Users)에서 직책(Position)별로 나눠서 직원을 그룹화 Map usersByPosition = users.stream() .collect(groupingBy(User::getPosition)); 결과 groupingBy의 파라미터로 온 분류함수를 기준에 의해 Map의 key로가고 객체들은 value로 그룹화되었다. {MANAGER=[tony, alex, oliveia], STAFF=[elsa, mayya, lily, jacob, jace], CEO=[eric] 2. 여러 조건에 의해서 분류 직책별로 우수사원을 뽑기위해 groupingBy의 오버라이드 메소드..
만일 내부 클래스를 이용하는데, 내부 클래스에서 바깥 외부의 인스턴스를 사용할 일이 없다면 static 클래스로 선언해주어야 한다. 왜냐하면 static이 아닌 내부 인스턴스 클래스는 외부와 연결이 되어 있어 '외부 참조'를 갖게되어 메모리를 더 먹고, 느리며, 또한 GC 대상에서 제외되는 여러 문제점을 일으키기 때문이다. 하지만 정적 멤버 클래스는 외부 인스턴스 없이도 만들어질 수 있기 때문에 '외부 참조'가 존재하지 않게 되고, 이로 인해 일회용으로 사용된 바깥 클래스 객체는 더이상 내부 클래스 객체와 아무런 관계가 아니게 되어 정상적으로 GC 수거 대상이 되어 메모리 관리가 잘 된다. 따라서 inner 클래스를 선언할때 static 키워드를 붙여주지 않으면 '외부 참조' 현상 때문에, 내부 클래스 ..
얕은 복사(Shallow Copy) 다양한 복합 멤버 변수를 갖고 있는 객체가 인스턴스가 생성될 때 인스턴스화 되면서 메모리에 할당된 주소의 값을 참조한다. 복사하려는 원본 객체에 대해서 새로운 단일 객체 또는 새로운 복합 객체를 만들고 원본 객체를 참조한다. 따라서 복사된 객체가 원본 객체에 종속적이다. call-by-reference와 유사한 개념이 된다. 깊은 복사(Deep Copy) 새로운 객체가 원본 객체 자체를 copy 하는 것이다. 즉, 원본 객체로부터 독립적인 객체를 생성한다. 즉, call-by-value 와 유사한 개념이 된다. 참조 https://okeybox.tistory.com/147 [Java] 얕은 복사(Shallow Copy)와 깊은 복사(Deep Copy) 얕은 복사(Sha..
Optional 메소드 static Optional empty() 아무런 값도 가지지 않는 비어있는 Optional 객체를 반환함. T get() Optional 객체에 저장된 값을 반환함. boolean isPresent() 저장된 값이 존재하면 true를 반환하고, 값이 존재하지 않으면 false를 반환함. static Optional of(T value) null이 아닌 명시된 값을 가지는 Optional 객체를 반환함. static Optional ofNullable(T value) 명시된 값이 null이 아니면 명시된 값을 가지는 Optional 객체를 반환하며, 명시된 값이 null이면 비어있는 Optional 객체를 반환함. T orElse(T other) 저장된 값이 존재하면 그 값을 반환..
프로그램 오류 프로그램이 실행중에 어떤 원인에 의해 오작동 하거나 비정상적으로 종료되는 경우가 있다. 이러한 결과를 초래하는 원인을 프로그램 에러 또는 오류라고 한다. 이를 발생 시점에 따라서 나눌 수 있다. 컴파일 에러 : 컴파일 시, 발생하는 에러 런타임 에러 : 프로그램 실행 도중, 발생하는 에러 논리적 에러 : 컴파일도 잘되고 실행도 잘되지만, 의도와 다르게 동작하는 것 런타임 에러 자바에서는 실행 시 발생할 수 있는 프로그램 오류를 두 가지로 구분했다. error (에러) 메모리 부족 (OutOfMemoryErrorr) 나 스택오버플로우 (StackOverFlow) 같이 일단 발생하면 복구할 수 없는 심각한 오류 프로그램 코드에 의해서 수습될 수 없는 심각한 오류 발생하면 프로그램의 비정상적 종..
IllegalArgumentException 사용자가 값을 잘못 입력한 경우에 발생한다. 사용자의 잘못으로 발생하는 에러를 대표한다. IllegalStateException 사용자가 값을 제대로 입력했지만, 개발자 코드가 값을 처리할 준비가 안된 경우에 발생한다. 예를 들어, 로또 게임 진행 후 게임이 종료된 상태에서 사용자가 추가 진행을 위해 금액을 입력하는 경우. 이미 로또 게임 로직이 종료되었기 때문에 사용자의 입력에 대응할 수 없다. 인용 https://hyeon9mak.github.io/Java-exception/ Java Exception 제이슨의 Exception 강의를 들으면서 공부한 내용을 정리해보자. hyeon9mak.github.io