본문 바로가기

java/기타7

[java] 내부 클래스(static vs non-static) 사실이 아니라 공부한 내용과 생각을 정리한 글입니다. 언제든 가르침을 주신다면 감사하겠습니다. 특정 클래스 속에 있는 클래스를 내부 클래스라고 부른다. 내부 클래스는 static으로 만들 수도 있고 non-static으로 만들 수도 있는데 이 차이에 대해 정확하게 알고 싶어서 공부하게 되었다. 다음과 같은 code 가 있다고 하자. package extra.static_code; public class OuterClassFactory { class InnerClass { private String val; InnerClass(String val){ this.val = val; } } static class StaticInnerClass { private String val; StaticInnerClass.. 2022. 6. 18.
[Collection Framework] 정리 참고 https://gbsb.tistory.com/247 자바 컬렉션 프레임워크(Java Collection Framework) 정리 목차 자바 컬렉션 프레임워크 컬렉션 인터페이스 1. Collection 인터페이스 그룹 1.1 Collection 인터페이스 1.2 List 인터페이스 1.3 Set 인터페이스 1.4 SortedSet 인터페이스 1.5 Queue 인터페이스 1.6 Deque.. gbsb.tistory.com 1. List 순서가 있는 컬렉션이며 중복 요소를 포함할 수 있다. 인덱스로 모든 요소에 접근할 수 있다. 정렬: Collections.Sort() https://wjheo.tistory.com/entry/Java-%EC%A0%95%EB%A0%AC%EB%B0%A9%EB%B2%95-Co.. 2022. 1. 4.
Thread pool vs Reactive 1. Thread pool 구조 미리 스레드 풀을 만들어 두고 사용자의 요청이 오면 스레드 풀에서 스레드를 할당한다. 스레드는 자원이다.(스레드가 많으면 문맥 교환이 많이 발생하고 스케쥴링이 더 필요하고 메모리도 더 필요하다.) 이러한 스레드를 미리 일정수준 만들어 두는 것은 그만큼의 자원을 소모하고 있음을 의미한다. 스레드 풀에 존재하는 스레드의 수만큼 동시 처리가 가능하다. 각각의 스레드는 기본적으로 동기적으로 처리된다. IO가 발생하면 blocking 된다. 2. Reactive 구조 하나의 스레드가 multiplexing을 통해 다수의 사용자 요청을 처리한다. 스레드 풀이 없기 때문에 그만큼 자원 소모가 적다. 각각의 요청은 cpu 작업은 동기적으로 처리되고 io작업은 비동기 처리된다. cpu 작.. 2021. 12. 1.
JDBC Connection pool 모니터링 지표에 대한 이해 서버군 모니터링 인프라 구축 업무 중, Jdbc Connection pool을 모니터링해야 할 일이 생겨 공부한 내용을 정리합니다. 스레드 풀과 커넥션 풀의 기본 개념을 이해하고 있다고 가정합니다. 목표는 아래와 같습니다. active connection / idle connection / pending thread의 의미를 이해한다. connection usage time / creation time / acquire time 의 의미를 이해한다. 가장 흔한 구조인 3-계층 구조를 그림으로 간단히 표현했습니다. 위 그림에서 WAS에 집중해 보겠습니다. WAS가 사용자 요청을 처리하는 방법은 아래와 같습니다. 사용자 요청이 감지되면, 해당 요청을 처리하기 위한 담당 스레드를 스레드 풀로 부터 얻습니다. .. 2021. 12. 1.