본문 바로가기

분류 전체보기73

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.
[Udemy: Java Multithreading, Concurrency & Performance Optimization] Motivation 멀티스레딩을 사용하는 이유 동시성을 구현하여 반응성을 높인다. Single core 상황이라고 가정해 보자. 프로세스의 수행 과정은 크게 연산과 입출력으로 분리할 수 있다. 입출력은 core를 점유하지 않는다. 현대적인 컴퓨터는 대부분 IO를 담당하는 별도 장치가 있다. 사용자의 입출력은 컴퓨터 입장에서 매우 block이 심한 작업이다. 예를 들어, 키보드 입력이라고 하자. 사용자는 0.1초에 한 번씩 키보드 입력을 한다고 해도 컴퓨터 clock속도에 비해 매우 매우 느린 속도다. 근데, 일반적인 프로그램은 이걸 기다린 후 처리해야 한다.(반응형 프로그램) 많약 동시성이라는 개념이 없다면? Single core에서 하나의 프로세스가 끝날 때까지 다른 프로그램이 대기 상태가 된다. 근데, core를 점유하.. 2021. 11. 25.
HTTP multipart/form-data에 jwt token 포함 시켜 전송하기 1. 서론 일반적으로, api 서버는 api를 모든 사용자에게 노출시키지 않는다. 인증된 사용자를 기본으로 인가된 api만 노출시킨다.(그 수단으로 세션이나 토큰을 주로 사용한다.) 사내에서 개발되는 api 서버는 로그인된 사용자에 한에서 jwt token을 발급하고, 사용자는 매 요청마다 헤더에 token을 포함시킨다. 그럼, 서버에선 token의 유효성, 권한 등을 확인해 유효한 사용자에 대해서만 api에 접근할 수 있도록 한다. 그런데, 특정 api의 경우 ui에서 요청 시 헤더 값을 커스텀하게 세팅하지 못하는 경우가 발생했다. (파일 다운로드 api의 경우, 단순 ajax를 사용한 비동기 통신으로 서버에 요청하게 되면 파일이 모두 다운로드될 때까지 아무것도 표시되지 않는다. form.sumit 방.. 2021. 11. 3.
CPU 스케줄링 https://bnzn2426.tistory.com/65 CPU 스케줄링 본 내용은 학교 강의+반효경 교수님 강의를 통해 개인적으로 공부한 내용입니다. 책은 쉽게 배우는 운영체제(한빛 아카데미)를 참고했습니다. 조언은 언제든지 감사합니다 ! CPU 스케줄링 개요 bnzn2426.tistory.com 2021. 11. 3.