Computer Science 37

[CS] Apache MPM vs NGINX vs Node.js

미스터코 님의 10분 테코톡 시청 후 작성하였습니다. 간단한 정의 MPM(multi-Processing-modules) 서버는 시스템의 네트웍 포트에 연결하고, 요청을 받아들이며, 받아들인 요청을 처리하기 위해 자식들에게 분배하는 다중처리 모듈(MPM)을 선택할 수있다. NGINX - 웹서버 Node.js : Chrome V8 Javascript 엔진으로 빌드된 JavaScript 런타임. [언제 어떤 것을 선택해야 하는가???????] 세가지 모두 '웹서버'의 역할을 할 수 있다. (Node.js는 웹서버역할도 WAS(Express.js)도 가능함. 때문에 결이 좀 다름.) 동시성은 예전이나 지금이나 중요하다. (어느정도 기간동안 무시하지 않을 수 있는 연결들(+요청들)) -옛적엔 너무느린 네트워크(1..

[CS] 웹서버 vs WAS

희봉, 티거, 알리님의 10분 테코톡 유튜브 영상 보고 작성했습니다. Web? -인터넷을 기반으로 한, 정보를 공유, 검색할 수 있게 하는 서비스 -URL(주소), HTTP(통신규칙), HTML(문서) 3가지 요소를 가짐. Client -웹 브라우저. Server -클라이언트에게 네트워크를 통해 정보나 서비스를 제공하는 컴퓨터 시스템 Web Server -인터넷을 기반으로 클라이언트의 요청에 따라 웹 서비스(HTML등 각종 리소스)를 제공하는 컴퓨터 => Client는 웹 서버에게 URL을 가지고 HTTP에 맞게 요청(특정 path로 특정 파일을 요청)하면 HTML을 응답 받음. => Web server는 클라이언트의 요청을 기다리고 웹 요청(HTTP)에 대한 데이터를 만들어서 응답. 이때 데이터는 웹에..

[CS] API vs Library vs Framework

티버님, 임루트, 욘님의 10분 테코톡 읽고 작성했습니다. API(application programming interface) : 응용 프로그램에서 운영 체제나 프로그래밍 언어가 제공하는 기능(다른 프로그램들, 서비스들)을 제어할 수 있게 만든 인터페이스 (프로그램 간의 연결을 시켜주는 다리) (직접구현이 아닌 제어를 담당) 인터페이스는 시스템을 구성하는 두개의 구성요소가 상호작용하기 위해서는 경계가 필요한데 인터페이스는 경계에서 각 구성요소가 접속하기 위한 하드웨어, 소프트웨어, 조건, 규약등의 총체이다.(가구들을 연결해주는 멀티탭) 클라이언트, 서버간의 메시지, 언어 등. App은 OS를 제외한 나머지 소프트웨어.(정의) Programming은 코딩을 통해 만들고 인터페이스에 접근하는 행위, 결과물..

[CS] 트랜잭션(transaction)

트랜잭션(transaction) DB 상태변화를 위해 수행하는 작업의 단위. = SQL문으로 DB를 변화 시키기 위해 기준에 따라 정하는 일련의 작업단위 = 여러 쿼리를 논리적으로 하나의 작업으로 묶어주는 것. TRANSACTION단위별로 내부의 쿼리들은 하나로 묶이기 때문에 안에서 하나의 쿼리만 실행되고 나머지는 실행되지 않는 현상을 막고 하나의 쿼리처럼 동작하게 한다. ACID 원자성(Atomicity) : 트랜잭션은 DB에 모두 반영되거나, 전혀 반영되지 않아야 한다.(중간에 그치는 일을 없게함) 일관성(Consistency): 트랜잭션 작업처리결과는 항상 일관성 있어야 한다. DB는 항상 일관된 상태로 유지되어야한다.(DB조건에 위배되면 트랜잭션은 즉시 종료.) 독립성(Isolation): 둘 이..

Computer Science/DB 2021.07.10

[CS] 캐시(CACHE)

큰곰님의 10분 테코톡을 보고 정리했습니다. 메모리 계층 구조 컴퓨터 구조에서 메모리(데이터 저장매체)의 속도와 용량은 반비례관계이다. 때문에 같은 용량이라면 빠른편이 가격이 매우 높다. 속도가 빠른 메모리 일수록 용량이 작고 용량이 큰 저장장치는 속도가 느리고 둘다 충족하면 너무 비싸다. 이러한 경제논리로 데이터 저장공간은 속도와 용량에 따라 특성에 맞게 역할을 나누어 사용한다. 파레토의 법칙 원인 중 상위 20퍼센트가 전쳉 결과의 80%를 만든다는 원칙.(2대8법칙) 데이터 지역성의 원리(캐시가 유효한 이유) 자주쓰이는 데이터는 시간적 혹은 공간적으로 한 곳에 몰려 있을 가능성이 높다. 시간 지역성(Temporal Locality) : 예를 들어 for문에서 조건변수(int i=0;)을 선언했을 때 ..

[CS] Interrupt & Context Switching

우아한 테코톡 코맥님의 Interrupt와 Context Switching을 보고 작성했습니다. @일련의 프로세스 수행중(P0) 저장 공간 확인 -> 저장 경로 확인 -> 저장 파일 확인 -> 저장 프로세스 중간에 키보드누르면?(interrupt)(P1) -Interrupt란? = 가로막다 => 프로세스가 하던 일을 멈추고 이미 정해진 코드 (운영체제 단에서 이미 구해논 코드)에서 요청에 대한 처리를 수행한다. (갑자기 발생한 비동기 이벤트) -주요개념 인터럽트 서비스 루틴(Interrupt Service Routine, ISR) (운영체제에 정해진 코드=미리정해졌기 때문에 루틴) =인터럽트 핸들러(Interrupt Handler) 인터럽트 벡터(Interrupt Vector) : 여러 인터럽트들을 테이..

[CS] Process vs Thread

우아한 테코톡 코다님의 Process vs Thread를 시청 후 작성하였습니다. Process vs Thread [이해해야하는 개념] -실행 단위 : cpu core에서 실행하는 하나의 단위. 프로세스와 스레드를 포괄하는 개념. -프로세스 : 하나의 스레드만 가지고 있는 단일 스레드 프로세스 -동시성 : 한 순간에 여러가지 일이 아니라, 짧은 전환으로 여러가지 일을 동시에 처리하는 것처럼 보이는 것. 프로그램 프로세스(실행이 되어 실제 사용할 수 있는 무언가)가 되어야 레시피에서 피자가 될 수 있음. 그러기 위해선 두가지 과정이 필요. 1. 프로세스가 필요로 하는 재료들이 메모리로 올라가야함 (실행 명령을 포함하는 code, static 또는 global 변수 등 data, 동적 메모리 영역인 Heap..