기분좋은 날씨에 오늘 강의를 완강 해보도록 합시다!
(1) 타임아웃이란?
- 네트워크에서 타임아웃(Timeout)은 장치나 프로그램이 연결을 중단하기 전까지의 응답 시간을 의미합니다.
- 두 장치 간 네트워크 통신 시 커넥션(연결)이 발생하면 데이터를 주고받습니다.
- 이때 어떠한 이유로 데이터가 손실되거나 전달이 지연되는 등의 이유로 대기가 발생할 수 있습니다.
- 대기가 무한정 이어지는 것을 막기 위해 정해진 시간이 지나면 타임아웃에 의해 연결이 해제됩니다.
(2) 타임아웃 종류
- 커넥션 타임아웃
- 세션 타임아웃
- 서버 타임아웃
- DNS 타임아웃 등
(3) 타임아웃이 필요한 이유
1. 지속적인 연결 시도 방지
- 장치와 장치가 연결될 때 문제가 있어서 응답 대기 시간이 길어질 수 있습니다. 이때 타임아웃에 의해 연결 해제 및 오류를 알려줌으로써 문제 상황을 인지시킬 수 있습니다.
- 예를 들어, 사용자가 웹 사이트에 접속하려고 했으나 웹 서버가 다운되서 정상 접속이 되지 않습니다. 이때 타임아웃이 없으면 웹 브라우저는 계속해서 서버에 연결을 시도할 것이고 이는 또 다른 문제를 야기할 수 있습니다. 그러나 타임아웃을 통해 브라우저는 지정된 시간이 지나면 연결을 중단하고 오류 메시지를 출력합니다.
2. 리소스 고갈 방지
- 하나의 프로그램은 여러 개의 커넥션을 생성합니다. 그런데 어떤 이유로 응답 대기 시간이 길어지는 커넥션이 계속 쌓이다 보면 사용 가능한 리소스가 모두 소진되고 프로그램 전체 장애가 발생할 수 있습니다. 타임아웃은 이를 방지해줍니다.
- 예를 들어, 클라이언트가 서버에 요청을 보내고 있습니다. 네트워크 문제로 서버는 여러 클라이언트의 요청에 제대로 응답하지 못하고 있으며, 이렇게 대기하는 커넥션이 쌓여갑니다. 이는 리소스 고갈로 이어질 수 있습니다. 그러나 타임아웃을 통해 때가 되면 또 다른 응답을 받을 준비를 할 수 있습니다.
3. 보안 강화
- 불필요하게 세션이 오래 연결되어 있는 상태를 방지할 수 있습니다.
- 로그인 세션 타임아웃이 대표적인 예입니다. 은행 앱에 접속하고 나서 일정 시간 동안 이용하지 않으면 알아서 세션이 종료되고 로그아웃됩니다. 웹 사이트에서도 마찬가지입니다.
시간 복잡도 별 알고리즘
- N : 문제에 주어진 반복 변수
- 백준 : 아래 표와 비슷하게 나옴
- 프로그래머스 : N을 조금 여유롭게(작게) 주는 타입(대기업에서는 이렇게 잘 안나옴) - 중구난방
알고리즘에서 log 는 밑이 10인 log(10)가 아니라 밑이 2인 log(2) 입니다. log(10)100,000 =5 , log(2)100,000 = 16
꿀팁
📌 네트워크 시간자원의 한계는 대표적으로 3가지의 타임아웃 오류가 있습니다.
- Connection Timeout
- Socket Timeout
- Read Timeout
복습을 해 봅시다!
CPU와 메모리
CPU의 구성 : ALU(산술논리 연산장치), CU(제어부), 레지스터(명령어 저장) (+L1캐시)
메모리 구성 : L2,L3캐시 메모리, 주 기억장치(RAM), 보조 기억장치(ROM)
하버드 구조와 폰노이만 구조
프로세스 : 프로그램을 실행하는 주체
쓰레드 : 작업을 처리하는 주체
프로세스
오버헤드 : 필요한 자원보다 많이 여유를 부리는 것
사용률 : 자원을 많이 받고 빨리 처리하는 것
기아 현상 : 자원 할당을 받짐 못해 아무것도 안하는 상태
CPU BURST : CPU 사용시간
I/O BURST : 입출력 지연시간
선점 스케쥴링 : 우선순위, 라운드로빈, 다단계 큐
비선점 스케줄링 : FCFS(FIRST COME,FIRST SERVE), SJF(SHORTED JOB FIRST), HRN(HIGHEST RESPONESE-RATIO NEXT)
캐시 메모리 분할방식
캐시히트, 캐시미스
연속 할당, 불연속 할당
※ 외부 단편화 내부 단편화
시간 기반 알고리즘 (최근에 사용한 데이터인지?): FIFO, LRU, NUR
빈도기반 알고리즘 (얼마나 자주 사용한 데이터인지?): LFU
프로세스 생명주기
프로그램을 실행해주는 주체 = 프로세스
작업을 처리해주는 주체 = 쓰레드
대기 큐 : Job Queue, Ready Queue, Device Queue
문맥 교환 (Context Switching) : Context Switching, Scheduler, Dispatcher
데이터베이스
DBMS : 데이터베이스를 관리 할 수 있는 프로그램 같은거.
'코딩 교육 TIL' 카테고리의 다른 글
2024-03-27 AI 코딩 TIL (0) | 2024.03.27 |
---|---|
2024-03-26 AI 코딩 TIL (3) | 2024.03.26 |
2024-03-20 AI 코딩 TIL (0) | 2024.03.20 |
2024-03-19 AI 코딩 TIL (0) | 2024.03.19 |
2024-03-18 AI 코딩 TIL (3) | 2024.03.18 |