
1. HashMap의 내부 동작 깊게 들여다보기(HashMap Internals with Separate Chaining & Treeify, Capacity & LoadFactor 등)[ HashMap의 해시 버킷 Separate Chaining과 Treeify ]HahsMap은 내부적으로 노드 배열로 저장되는데, 이때 각 노드 배열의 요소를 해시 버킷이라고 한다. HashMap을 생성할 때 별도의 해시 버킷 배열의 capacity를 지정하지 않는다면 기본값 16으로 할당된다. 이러한 부분을 그림으로 표현하면 다음과 같다. HashMap은 데이터를 저장할 키에 대한 해시코드(hashcode)를 계산하고 해당 값을 배열의 크기로 나누어, 데이터를 저장할 해시 버킷의 인덱스를 구하고, 해당 해시 버킷에 ..
1. 린 스타트업 핵심 내용 정리 및 요약[ 1. 시작 ]창업가적 경영스타트업을 만드는 것은 조직을 만드는 것이다. 따라서 필수적으로 관리가 관련된다. 린 스타트업의 뿌리린 스타트업은 빠른 실행, 고객 통찰, 거대한 비전, 큰 야망을 강조하는 혁신적인 제품과 서비스를 개발하는 새로운 방법에 대한 이야기다. [ 2. 정의 ]도대체 누가 창업가인가?“스타트업이란 극심한 불확실성 속에서 신규 제품이나 서비스를 만들려고 나온 조직이다.”이 정의는 회사 규모, 사업 분야, 산업 종류 등에 대해서는 말하지 않는다. 즉, 극심한 불확실성 속에서 신제품이나 새로운 서비스를 만들고 있기만 하다면 그 조직이 정부 조직이든, 대기업 신규 사업 부서이든, 비영리 조직이든, 벤처 기업이든 모두 스타트업이라고 볼 수 있다는 말..

1. 요청량이 급증하여 톰캣의 초과 스레드가 활용될 때, TIMED_WAITING 상태의 스레드가 급증하는 이유[ TIMED_WAITING 스레드가 급증하는 상황 ]기본 스레드 만을 활용하는 상황이전 포스팅에서 살펴보았듯, 톰캣은 내부적으로 자바와 거의 유사한 ThreadPoolExecutor를 활용하는데, 해당 과정의 동작 방식은 다음과 같다. (참고로 이러한 부분은 톰캣에 종속적이니, 보다 자세한 내용을 위해서는 반드시 이전 포스팅을 참고하도록 하자.)작업 요청이 들어오면, core 사이즈 만큼 스레드를 생성함core 사이즈를 초과하면 max 사이즈 만큼 스레드(초과 스레드)를 만들어 실행시키는데, 이는 설정된 시간을 넘어서도 활용되지 않으면 소멸됨스레드의 수가 max 사이즈를 초과하면, 더 이상 초..