Sapphire9 개발 일지
article thumbnail
How does JavaScript and JavaScript engine work in the browser and node?
CS/JavaScript 2023. 5. 11. 14:40

이 글은 "How does Javascript and JavaScript engine work in the browser and node?"를 번역한 글입니다. 원문의 의미를 살리기 위해 직역을 한 부분이 존재하므로, 이를 참고하시기 바랍니다. 이번 시간에는 자바스크립트 엔진과 그 구조에 대해서 알아볼 것이다. 또한 자바스크립트의 콜스택, 이벤트 루프, 태스크 큐, 그리고 자바스크립트가 제대로 동작하도록 하는 기타 다양한 요소들에 대해 배울 것이다. 자바스크립트 엔진의 구조를 살펴보고, 그것들이 어떻게 조화를 이루는지 확인하기 전에 먼저 자바스크립트의 기본 개념과 그 시작에 대한 약간의 역사를 이해해보자. JavaScript in a nutshell 자바스크립트는 인터프리터 언어이다. 이것은 자바스크립트..

article thumbnail
기술 면접 대비 - 가상 메모리 기초
CS/가상 메모리 2023. 2. 12. 17:17

가상 메모리 가상 메모리(Virtual Memory)는 실행하고자 하는 프로그램을 일부만 메모리에 적재하여 실제 물리 메모리 크기보다 더 큰 프로세스를 실행할 수 있게 하는 기술 가상 메모리 관리 기법 페이징 세그멘테이션 연속 메모리 할당 방식의 문제점 외부 단편화 물리 메모리보다 큰 프로세스를 실행할 수 없음 cf. 스와핑 스와핑은 프로세스들이 요구하는 메모리 주소 공간의 크기가 실제 메모리 크기보다 큰 경우에도 프로세스들을 동시에 실행할 수 있게 해주는 메모리 관리 기법 페이징 연속 메모리 할당 방식에서 외부 단편화가 생기는 근본적인 이유는 각기 다른 크기의 프로세스가 메모리에 연속적으로 할당되었기 때문이다. 페이징은 프로세스의 논리 주소 공간을 페이지라는 일정한 단위로 자르고, 메모리 물리 주소 공..

article thumbnail
우선순위 큐
CS/자료구조 2023. 2. 10. 00:23

우선순위 큐 우선순위가 가장 높은 데이터를 먼저 삭제하는 자료구조 데이터를 우선순위에 따라 처리하고 싶을 때 사용 구현 리스트를 이용한 구현 힙(heap)을 이용한 구현 데이터의 개수가 N개일 때, 구현 방식에 따른 시간 복잡도는 다음과 같음 우선순위 큐 구현 방식 삽입 시간 삭제 시간 리스트 O(1) O(N) 힙(Heap) O(logN) O(logN) 리스트의 경우 데이터를 차례대로 넣은 뒤, 우선순위에 맞게 꺼내는 방식 단순히 N개의 데이터를 힙에 넣었다가 모두 꺼내는 작업은 정렬과 동일(힙 정렬) 이 경우, 시간 복잡도는 O(NlogN) 힙(Heap)의 특징 힙은 완전 이진 트리 자료구조의 일종 힙에서는 항상 루트 노드를 제거 최소 힙(min heap) 루트 노드가 가장 작은 값을 가짐 값이 작은 ..

서버 성능 개선
CS/기타 2023. 2. 8. 23:27

서버 성능의 대표적인 지표 응답 시간 클라이언트가 어떤 요청을 해서 그 요청에 대한 처리 결과를 받을 때까지의 시간 서버에서 요청을 처리하는 시간 + 클라이언트와 서버 간의 데이터 전달 시간(대기 시간) 처리량 TPS(Transaction Per Second; 초당 처리할 수 있는 요청 개수)라는 수치로 많이 표현하는데, 이 수가 높을수록 많은 요청을 처리한다고 볼 수 있다. TPS를 높이는 방법 서버 늘리기 쓰레드 풀 + DB 커넥션 풀 늘리기 위 방법의 한계 서버의 증설이 성능 향상과 비례하지도 않을뿐더러, 일정 시점부터 DB의 부하가 견딜 수 있는 임계치를 넘어가면 성능이 떨어짐 따라서 TPS를 높이기 위해서는 서버를 늘리는 것도 필요하지만 기본적으로 처리 시간 자체를 줄일 필요가 있다. 처리 시간..

article thumbnail
DB Index
CS/DB 2023. 2. 8. 22:36

DB Index 데이터베이스의 테이블에 대한 검색 속도를 향상시켜주는 자료구조 테이블의 특정 컬럼에 인덱스를 생성하면, 해당 컬럼의 데이터를 정렬한 후 별도의 메모리 공간에 데이터의 물리적 주소와 함께 저장 장점 테이블을 검색하는 속도와 성능이 향상됨 기존 방식은 특정 조건의 데이터를 찾기 위해 ‘풀 테이블 스캔(Full Table Scan)’작업이 필요 인덱스를 이용하면 데이터들이 정렬되어 있기 때문에 조건에 맞는 데이터를 빠르게 찾을 수 있음 Order by, Min/Max 같은 경우도 이미 정렬이 되어 있기 때문에 빠르게 수행할 수 있음 단점 항상 정렬된 상태로 유지해야 하기 때문에 인덱스가 적용된 컬럼에 삽입(INSERT), 삭제(DELETE), 수정(UPDATE) 작업을 수행하면 다음과 같은 추..

기술 면접 대비 - 자료구조
CS/자료구조 2023. 2. 8. 03:53

'Do it! 자료구조와 함께 배우는 알고리즘 입문(파이썬)' 책을 기반으로 정리한 내용입니다. 배열(array)이란? 배열(array)은 같은 타입의 변수들로 이루어진 유한 집합 파이썬에서는 서로 다른 자료형을 같이 저장할 수 있음 배열을 구성하는 각각의 값을 배열 요소(element) 배열에서의 위치를 가리키는 숫자는 인덱스(index) 배열은 같은 종류의 데이터를 많이 다뤄야 하는 경우에 사용할 수 있는 가장 기본적인 자료구조 파이썬에서 배열은 리스트(list)와 튜플(tuple)로 구현할 수 있다. 검색 알고리즘 검색과 키 검색 조건에서 주목하는 항목을 키 대부분 키는 데이터의 일부 데이터가 간단한 정숫값이나 문자열이면 데이터값이 그대로 키값이 될 수 있음 배열 검색 선형 검색 직선 모양(선형)으..

검색 태그