오늘 배운 내용
컴퓨터 구조
block: 데이터를 그룹화 해놓은 것
페이지: 여러 개의 데이터를 한번에 묶어서 옮김. 이 단위를 페이지라 함. 페이지의 사이즈는 유동적.
버퍼: 데이터를 한 곳에서 다른 한 곳으로 전송하는 동안 일시적으로 그 데이터를 보관하는 메모리의 영역. 데이터를 이동시키는 바가지 개념. 버퍼의 사이즈는 유동적. 개발자가 정할 수 있음. 보통 8k 단위.
⇒ 메모리를 적게 사용하기 때문에 메모리 입장에서는 버퍼를 사용하는 것이 유리하다.
여러 개의 버퍼를 지칭하는 용어로도 페이지를 사용한다.
데이터의 순서가 무조건 선입선출은 아니지만 어떻게든 데이터가 이동하기는 함 ⇒ 스트리밍
스트리밍 방식을 사용하지 않고 한번에 데이터를 받는 것 ⇒ 다운로드
TCP/IP
- 이동하는 데이터의 순서 보장(넘버링을 통해). 실제 순서대로 데이터가 도착하지 않기 때문에 라벨링이 필요
- 데이터가 도착했는지 아닌지 확인까지 한다.
UDP
- 요청한 데이터를 전송해 주고, 대신 상대방이 데이터를 받았는지 아닌지 확인하지는 않는다.
- 가볍기는 하지만 신뢰성은 보장되지 않는다.
웹 서버 파이프?? ⇒ 알아만 두기
스트리밍할 때…
인덱스를 이용한 데이터 서치: 빠르다 ⇒ call by reference
프로그램 언어의 구성 요소
- sync: -
- async: -
(OS가 io장치의 동작을 제어한다.)
- block : 동작을 하지 못하게 막는다, a의 업무를 모두 마칠 때까지 b의 업무는 일시 정지
- non-block i/o: 병렬적으로 처리를 할 수 있고 서로 의존성이 없기 때문에 기다릴 필요가 없음 (다른 스레드 또는 프로세스에게 일을 맡기고 나는 다른 일을 처리한다. 스레드 또는 프로세스가 일을 마치면 나에게 일의 결과물을 보내준다(callback)) ⇒ 작업물을 저장하기 위한 접시를 제공한다. (task queue, queue이기 때문에 먼저 끝난 작업은 먼저 삭제할 수 있다.)
- 모든 이벤트의 이벤트가 발생하면 이벤트 큐에 쌓인다.(이벤트 루프, 이벤트 리스너), 이벤트 루프가 이벤트를 확인하고 처리해준다.
- transaction: 업무를 수행하는 시점의 수행내역 (블로킹 일어남)
- commit : 파일에 결과를 작성하는 것
- rollback: 과정 취소
스택: LIFO
큐: FIFO
콜스택: 어떤 순서대로 코드를 실행할 지 컴파일한다. 먼저 실행될 연산을 스택의 가장 위쪽에 쌓음.
함수와 메소드
메소드: 함수에 있는 function
클래스와 객체
- 원시 타입 값을 제외한 모든 값이 객체임
- 객체는 all call by reference
- 클래스는 object를 상속받는다.
실행 컨텍스트 = 실행환경
실행 컨텍스트: 실행할 코드에 제공할 환경 정보들을 모아놓은 객체로, 자바스크립트의 동적 언어로서의 성격을 가장 잘 파악할 수 있는 개념
렉시컬 스코프: 렉시컬을 나누는 단위
jvm: 자바 컨텍스트 실행시킬 수 있는 런타임
런타임
WAS(Web Application Servier)
실제 코드 돌림. 게시판 데이터 읽어오기, 실제 연산을 하는 프로그램
IP: 스위치의 ip를 사용함. (ex.강의장의 wifi → ip는 모두 동일함)
클라우드
컨테이너 (도커) ⇒ 서버를 여러 개로 나누어서 각자 사용한다.
하드웨어가 허용하는 한에서 컨테이너를 무한히 만들어 낼 수 있다. ⇒ 컨테이너가 많아지면 n명에게 서버를 제공할 수 있다. ⇒ 클라우드
- onDemand: 개인이 서버를 구매해서 사용
- onPremise: 은행권, 대기업 → 자체적인 서버실. 클라우드 구성
라이브러리와 프레임워크
라이브러리: 단순 함수들의 집합
프레임워크: 라우팅 가능
- 프론트: 컴포넌트 기능, 라우팅 기능 없음(react-router-dom 라이브러리로 라우팅 기능 대체)
- 백엔드: db, log, filter(악성코드 등), … 등 여러개의 기능을 갖추고 있어야 프레임워크
Messaging Queue
바로 처리하지 못하는 작업은 큐에 쌓아놓는다.
ex: 콘서트 티켓팅
ex: 화면에서는 +1을 증가시키고, 나머지는 큐에 담아놓고 나중에 한번에 서버에 요청을 보내 이벤트 처리
*쿠버네티스: 도커들을 조율하는 tool
*kafka: 메세징큐 솔루션
'Developer > 웹개발 교육 프로그램' 카테고리의 다른 글
[에이블런] TIL(24.05.22): 자바스크립트 2 (0) | 2024.05.22 |
---|---|
[에이블런] TIL(24.05.20): 자바스크립트 1 (0) | 2024.05.20 |
[에이블런] TIL(24.05.16): Git 2 (0) | 2024.05.18 |
[에이블런] TIL(24.05.14): Git (0) | 2024.05.18 |
[에이블런] TIL(24.05.08): 웹개발 기초 (컴퓨터구조, 컴파일러, 자바스크립트 기초) (0) | 2024.05.08 |
[KT 에이블스쿨] 2일차: GIT 특강 내용 정리 (0) | 2023.08.09 |