프로세스는 운영체제로부터 자원을 할당받아 실행하고,
스레드는 프로세스로부터 자원을 할당받아 실행
하나의 프로세스 안에 여러 스레드 생성 가능
각 스레드는 개별 스택을 가지고, 프로세스 전역 메모리 공간을 공유하며 프로그램을 실행
프로세스
는 코드/데이터/스택/힙
메모리 영역을 기반으로 실행스레드
는 프로세스 안에서, 개별적인 스택
을 가지고, 코드/데이터/힙 영역을 공유하며 실행스크립트 언어 : python, ruby, PHP
컴파일 언어 : C, C++, Java
컴파일 언어는 컴파일러를 통해 사전에 컴파일되어 기계어 상태로 실행
되므로 실행이 빠름
또한 컴파일 단계에서 전체 코드를 기계어로 변환할 때 최적화 작업을 진행하여 실행 시간을 보다 빠르게 할 수 있음
스크립트 언어는 컴파일 단계 없이 실행 단계에서 한 줄씩 기계어로 변역 후 실행
되므로 통상 컴파일 언어보다 실행이 느림
전체 코드에 대한 실행 최적화가 어려움
동기식 일처리는 요청에 대한
응답을 기다린 후
응답이 오면 다음 요청을 하는 방식
비동기식 일처리는 요청에 대한응답을 기다리지 않고
다음 동작을 진행
장단점
인덱스는 데이터를 논리적으로 정렬해서
검색과 정렬 속도를 높이기 위해
사용
단, 데이터의 삽입, 변경이 수시로 일어나면 매번 인덱스를 변경해야 하므로, 성능 저하를 막기 위한 고려가 필요
둘다 NoSQL 방식을 사용
Mongodb가document
형식으로 데이터를 저장
Redis는key-value
형식으로 데이터를 저장
server-client
방식으로 설치해서 사용. MySQL처럼 SQL방식이 아니므로 가변적 데이터 구조를 다루는데 유용UDP는
비연결형 프로토콜
로 흐름제어, 오류제어를 하지 않음
TCP는연결형 프로토콜
로 흐름제어, 오류제어를 함