가상 메모리와 스왑 메모리
가상 메모리와 스왑 메모리 스왑 메모리는 프로세스 단위이다. 메모리에 P1, P2, … P10 10개 프로세스가 돌고 있는데 남은 메모리 공간이 없다. 이 때 P11 을 실행 시키고 싶을때 메모리 확보를 위해 일부 프로세스를 디스크로 내리고 P11 을 메모리에 올리는 과정을 스와핑이라고 한다. 스왑 과정은 시간이 오래 걸리는 작업이고 필요한 공간이...
가상 메모리와 스왑 메모리 스왑 메모리는 프로세스 단위이다. 메모리에 P1, P2, … P10 10개 프로세스가 돌고 있는데 남은 메모리 공간이 없다. 이 때 P11 을 실행 시키고 싶을때 메모리 확보를 위해 일부 프로세스를 디스크로 내리고 P11 을 메모리에 올리는 과정을 스와핑이라고 한다. 스왑 과정은 시간이 오래 걸리는 작업이고 필요한 공간이...
DB 샤딩, 클러스터링, 레플리케이션 1. 클러스터링 DB 서버가 다운되는 경우를 대비하기 위해 DB 서버를 여러 개로 만든다. 2. 레플리케이션 DB 데이터가 손실되는 경우를 대비하기 위해 실제 저장소를 복제한다. 3. 샤딩 데이터가 너무 많아 검색이 느린 경우 검색 속도를 높이기 위해 테이블을 나눠서 저장한다. D...
DB 정규화 DB 의 중복을 최소화 하도록 설계해 무결성을 유지하고 테이블의 상태 이상을 방지한다. 1. 제 1 정규화 컬럼이 원자 값을 가져야 한다. AS-IS id name subject 1 a math ...
출처 : https://alvinlal.netlify.app/blog/single-thread-vs-child-process-vs-worker-threads-vs-cluster-in-nodejs Node.js child process vs worker threads vs cluster Node.js 는 Http 요청에 응답하고, DB 에 데이...
출처 : https://engineering.linecorp.com/ko/blog/pm2-nodejs/ pm2 를 사용해 무중단 배포하기 node.js 는 기본적으로 싱글 스레드라서 CPU 의 멀티코어 시스템을 활용할 수 없다. node.js 의 cluster 모듈을 통해 멀티 프로세스로 늘려 멀티코어 시스템 문제를 해결한다. 클러스터...
실행 컨텍스트(EC) 자바스크립트 코드가 실행되기 위한 환경. EC 는 실행 컨텍스트 스택(콜 스택) 에 추가된다. 함수를 호출하면 실행된다. 실행이 끝난 함수의 EC 는 실행 컨텍스트 스택에서 제거된다. 1. 실행 컨텍스트 구조 출처 - https://poiemaweb.com/js-execution-context VO...
프로세스와 스레드 1. 프로세스 프로세스 컨트롤 블록(PCB) : 프로세스를 관리하기 위해 커널에서 사용하는 자료구조 출처 - https://enlqn1010.tistory.com/26 프로세스 상태 출처 - https://rebas.kr/852 PCB pointer : 커널에서 실행 중인 프...
자바 HashMap 의 동작 1. HashTable 원소의 검색과 저장을 O(N) 에 해결한다. 해쉬 함수(r mod M)로 해쉬 값을 구하고 해쉬 값을 주소로 하는 위치에 저장한다. 2. 해쉬 충돌 해쉬 값이 겹치는 경우 두 가지 방법으로 해결한다. 체이닝 방법 : 같은 주소에 해당하는 원소를 링크드 리스트로 관리한다. Op...
리액티브 프로그래밍 끝임없이 들어오는 데이터의 스트림을 비동기 논블로킹 병렬처리 하기 위해 사용하는 프로그래밍이다. 메모리 내 데이터를 반복해서 처리하지 않고 스트림으로 처리하기 때문에 메모리를 더 효율적으로 사용한다. Publisher 와 Subscriber 가 있고 Publisher 는 Subscriber 가 비동기 적으로 구독하는 데...
스프링 요청 처리 과정 1 request 가 Servlet 을 통해 Dispatcher Servlet 의 doDispatch() 로 들어간다. doDispatch 에서 컨트롤러의 요청 url 에 해당하는 핸들러 메소드와 인터셉터를 찾는다. 인터셉터들에 대해 preHandle() 을 실행한다. 톰캣은 request body 를 ...