JavaScript 의 실행 컨텍스트
실행 컨텍스트(EC) 자바스크립트 코드가 실행되기 위한 환경. EC 는 실행 컨텍스트 스택(콜 스택) 에 추가된다. 함수를 호출하면 실행된다. 실행이 끝난 함수의 EC 는 실행 컨텍스트 스택에서 제거된다. 1. 실행 컨텍스트 구조 출처 - https://poiemaweb.com/js-execution-context VO...
실행 컨텍스트(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 를 ...
DB index 테이블 생성 시 하나의 열에 PK 를 지정하면 자동으로 clustered index 가 생성된다. clustered index 가 없는 경우 unique 제약 조건이 있는 테이블을 만들면 자동으로 non clustered index 를 만든다. 기존 테이블에 PK 제약 조건을 적용하려 하거나 테이블에 clustered i...
Neflix OSS 넷플릭스에서 제공하는 MSA 전환 기술이다. API gateway 역할을 하는 zuul, 로드 밸런서 역할의 ribbon, 서킷브레이커 패턴 구현체 hystrix 그리고 서비스 관리를 위한 eureka 로 구성되어 있다. 1. eureka 각 서비스들의 주소 집합이다. 서비스가 100 개 쯤 있다면 100 개의 주소를 모두 ...
싱글톤 패턴 구현 방법 4가지 1. static 을 활용한 방법 class BasicSingleton implements Serializable { private BasicSingleton() {} private static final BasicSingleton INSTANCE = new BasicSingleton(); public st...
출처1 : https://www.youtube.com/watch?v=UzaGOXKVhwU&ab_channel=%EC%9A%B0%EC%95%84%ED%95%9CTech 출처2 : https://www.artima.com/insidejvm/ed2/jvm8.html 출처3 : https://ict-nroo.tistory.com/19 JVM &...
객체지향 개발 5대 원칙 SOLID 모든 문제의 원인은 어플리케이션의 기능 수정, 추가에 있다. 기존의 코드가 기능 수정, 추가를 예상하지 않고 개발하게 되면 개발 비용이 많이 발생하고 예상하지 못한 에러나 예외를 발생시킨다. 복잡한 논리일 수록 이런 문제가 자주 발생한다. 기능 수정, 추가가 쉬운 복잡한 논리의 어플리케이션을 개발하기 위해 ...