CS5 Node.js와 Express 그리고 Nest.js Node.js 란? Node.js는 서버 사이드 도구들과 어플리케이션을 JavaScript로 만들 수 있도록 해주는 런타임 환경 런타임 환경이란 컴퓨터가 실행되는 동안 프로세스나 프로그램을 위한 소프트웨어 서비스를 제공하는 가상 머신의 상태 Node.js 의 장단점 장점 싱글 스레드 기반 Non Blocking, 비동기 IO처리로 매우 빠른 고성능 서버 CPU 파워를 많이 필요로 하지 않는, 연결을 동시에 처리해야 하는 상황에서 좋음 프론트엔드와 벡엔드 기술의 통합으로 언어들 사이의 context shift를 다루는 시간을 줄일 수 있음 단점 싱글 스레드 모델이기에 하나의 작업이 오래 걸리면 전체 시스템 성능에 영향 많이 줌 ⇒ CPU 파워를 많이 필요로 하는 작업에 부적절 스크립트 언어의 특성 상 런타.. TIL/TIL 2022. 10. 3. [CS] 자료구조/알고리즘 관련(작성중...) 정렬 알고리즘 시간/공간 복잡도 Array vs LinkedList Array은 메모리상에 순서대로 데이터 저장 => 캐시의 지역성으로 인해 상대적으로 빠른 탐색 수행 인덱스로 조회할 수 있음 => 인덱스 조회 성능 높음 LinkedList는 다음 데이터의 위치에 대한 포인터를 가지고 있음 중간에 데이터를 삽입, 삭제하는 것이 용이 List vs Set List는 중복된 데이터를 저장하고 순서를 유지하는 선형 자료구조 Set은 중복되지 않은 데이터를 저장하고 순서 유지X, 선형 자료구조 Hash Function, Hash Table 해시 함수(특정 알고리즘)를 통해 key값을 해쉬 코드(작은 범위의 숫자)로 변환한다. key 값 과 해쉬 코드가 1:1 매칭이 되는 경우는 해쉬를 사용하는 의미가 없어짐, .. TIL/TIL 2022. 9. 26. [CS] 데이터베이스 관련 데이터베이스에서 인덱스를 사용하는 이유 및 장단점 검색 성능을 향상시키기 위해 사용 => 별도의 메모리 공간에 인덱스가 된 컬럼들을 기준으로 정렬하여 저장함 => 이미 정렬되어 있기 때문에 특정 조건 검색시 풀 스캔이 아닌 방법으로 더 빠르게 찾을 수 있음, 정렬 필요 없음 인덱스를 사용하는 단점으로는 인덱스를 구성하는 비용 발생 정렬 상태를 유지하기 위한 비용 발생 즉, CRUD시 인덱스를 형성하기 위한 추가적인 연산이 수행됨 인덱스를 사용하는 것이 효율적이기 위해서는 쿼리가 index를 사용하는지, Cardinality, Selectivity 같은 요소들이 고려된 인덱스가 생성되어야 함 트랜잭션(Transaction) 데이터베이스의 상태를 변화시키는 하나의 논리적인 작업 단위 1개의 트랜잭션에서 여러.. TIL/TIL 2022. 9. 25. [CS] OS 관련 프로세스 생성과정 PCB가 생성되며 OS가 실행한 프로그램의 코드를 읽어들여 프로세스에 할당된 메모리의 Text Segment에 저장한다 초기화된 전역 변수 및 static 변수를 data segment에 할당 HEAP과 Stack은 초기 메모리 주소만 초기화됨 PCB에 여러 정보가 기록되면 Ready Queue에서 CPU를 할당받기까지 대기 프로세스와 쓰레드의 차이 프로세스는 운영체제로부터 자원을 할당 받은 작업의 단위 쓰레드는 프로세스가 할당받은 자원을 이용하는 실행 흐름의 단위, CPU 입장에서 최소 작업 단위 프로세스는 운영체제의 안정성을 위해 자신에게 할당된 메모리 내의 정보에만 접근할 수 있음 => 한 프로그램 처리할 때 프로세스를 여러개 사용 불가, 프로세스 말고 여러 작업을 처리하기 위해 .. TIL/TIL 2022. 9. 25. [CS] 캐시(Cache), 지역성(Locality) 캐시(Cache)란? 자주 사용하는 데이터를 복사해두는 임시 장소이다. 메모리 계층 구조 (Memory Hierarchy) CPU는 작은 메모리일수록 빠르게 접근할 수 있음 + 자주 쓰는 데이터는 계속 자주 쓰인다 (= 시간 지역성) 위의 2가지 이유로 어떤 데이터를 접근하고자 할 때마다 SSD/HDD에 접근하여 데이터를 가지고 오는 것이 비효율적이기에 용도에 따라 메모리들을 쌓은 구조 윗쪽일수록 더 작고, 비싸고, 빠른 메모리 반대로 밑쪽일수록 더 크고, 싸고, 느리다 자주 쓰는 데이터일수록 윗쪽 계층에 두고 반대의 경우일수록 아랫쪽에 두어 최소의 비용으로 최대의 효율을 지향한다 시간 지역성 자주 쓴 데이터는 앞으로도 자주 쓸 것이다 공간 지역성 사용된 데이터와 인접한 데이터가 사용될 것이다 => 특정.. TIL/TIL 2022. 8. 18. 이전 1 다음 반응형