HTTP & HTTPS
·
Computer Science/네트워크
TCP/IP 4계층 모델의 애플리케이션 계층의 프로토콜모두 서버/클라이언트간 데이터를 주고 받기 위해 사용됨HTTP (HyperText Transfer Protocol)데이터를 평문 형태로 전송하므로 데이터 탈취 위험성 존재기본적으로 `80번` 포트데이터의 민감 정보 노출가능성 有HTTPS에 비해 구현과 운영 단순HTTPS (HyperText Transfer Protocol Secure)HTTP에 데이터 암호화가 추가된 프로토콜, 데이터를 암호화하여 전송하므로 중간 공격자의 데이터 읽고 쓰기 방지기본적으로 `443번` 포트데이터 가로채기를 방지하므로 보안 수준 높음서버의 신원을 확인하는 SSL/TLS 인증서가 필요하며, 이로 인해 사용자에게 신뢰성 글 제공📌 최근에는 대부분의 웹사이트가 HTTPS를 기..
OSI 7계층
·
Computer Science/네트워크
OSI 7계층 (Open Systems Interconnection 7 Layers)네트워크 통신이 일어나는 과정을 7단계로 나눈 국제 표준 모델로, ISO(국제 표준화기구)에서 정의각 계층은 네트워크에서 데이터가 어떻게 생성, 전송, 수신 되는지 단계별로 역할을 나눔계층대표 장비/ 프로토콜물리 계층허브, 리피터, 케이블데이터 링크 계층스위치, 브리지, 랜카드네트워크 계층라우터, IP, ICMP전송 계층TCP, UDP세션 계층NetBIOS, SAP표현 계층JPEG, MPEG, ASCII응용 계층HTTP, FTP, SMPTP계층을 나눈 이유 ❓흐름을 한 눈에 알아보기 쉽고, 특정한 곳에 이상이 생기면 다른 단계의 장비 & 소프트웨어를 건들지 않고 이상이 생간 단계만 고칠 수 있기 때문에1) 물리 계층 (P..
[자료구조] 배열 & 리스트, 스택 & 큐
·
Computer Science
배열 (Array)메모리의 연속 공간에 값이 채워져있는 형태의 자료구조배열의 값은 인덱스를 통해 참조 가능하며, 선언한 자료형의 값만 저장특징인덱스를 사용하여 값에 바로 접근 가능새로운 값 삽입 또는 특정 인덱스 값 삭제가 어려움. 삽입/삭제 시 해당 인덱스 주변 값을 이동시켜야 함배열의 크기는 선언할 때 지정, 한 번 선언하면 크기 변경 불가능시간 복잡도인덱스 접근O(1)삽입 / 삭제O(N) 리스트 (List)값과 포인터를 묶은 `노드`라는 것을 포인터로 연결한 자료구조특징인덱스가 없어서, 값에 접근하려면 HEAD 포인터부터 순서대로 접근포인터로 연결돼 있어서, 삽입/삭제 연산 속도 빠름선언할 때 크기 별도 지정X, 크기가 변하기 쉬운 데이터를 다룰 떄 적절포인터 저장 공간이 필요하여 배열보다 구조 복..
동기화 문제, 세마포어 & 뮤텍스
·
Computer Science/운영체제
동기화 (Synchronization)프로세스들 간에 자원에 대한 접근 순서를 정하거나 특정 기능의 실행 순서를 정하는 행위즉, 여러 프로세스/스레드를 동시에 실행해도 공유 데이터의 일관성을 유지하는 것프로세스의 코드 영역 中 공유 자원을 접근하는 코드를 `임계 영역`이라고 부름경쟁 조건 문제 = 임계 영역의 문제경쟁 조건 (Race Condition)여러 개의 스레드나 프로세스가 동시에 공유 자원에 접근하면서, 실행 순서에 따라 결과가 달라지는 문제즉, 누가 먼저 실행되느냐에 따라 결과가 달라짐이는 예측 불가능한 결과나 시스템의 오류를 초래할 수 있음왜 경쟁 조건이지 ❓여러 스레드 (프로세스)가 공유 자원에 먼저 접근하려고 `경쟁(Race)`하기 때문경쟁 결과에 따라 의도치 않게 동작할 수 있으므로 `..
인터럽트 (Interrupt) & 시스템 콜
·
Computer Science/운영체제
인터럽트 (Interrupt)프로그램을 실행하는 도중 예기치 못한 상황이 발생할 경우CPU가 현재 수행 중인 작업을 일시 중단하고, 다른 작업을 수행하도록 하는 메커니즘구조하드웨어 장치마다 `컨트롤러`라고 불리는 작은 CPU 존재컨트롤러는 장치로부터 출입하는 데이터를 임시로 저장하기 위한 `Local Buffer`라는 `작은 메모리`를 가짐ex) 디스크 = 디스크 컨트롤러 / 메모리= 메모리 컨트롤러개념가정 : 디스크에서 데이터를 읽어오는 작업 中디스크 컨트롤러가 디스크에서 내용을 읽어 로컬 버퍼에 저장.저장하는 작업의 완료 여부는 CPU가 체크하는 것이 아닌, 장치의 컨트롤러가 인터럽트 신호 발생하여 CPU에게 전달 📌 컨트롤러들이 CPU의 서비스가 필요할 때 이를 통보하는 방법 = 인터럽트기본적으로..
CPU 스케줄링
·
Computer Science/운영체제
개요워크로드에 대한 가정일련의 프로세스들이 실행되는 상황 (워크로드) 가정모든 작업은 같은 시간 동안 실행됨모든 작업은 동시에 도착함각 작업은 시작되면 완료될 때까지 실행모든 작업은 CPU만 사용 (= I/O 수행 X)각 작업의 실행 시간은 사전에 알려짐스케줄링 평가 항목 (scheduling metric)-  반환 시간 (turnaround time)작업이 `완료`된 시각에서 작업이 시스템에 `도착`한 시간을 뺀 시간으로 정의위 가정에서 모든 작업은 동시에 도착한다고 가정했으므로, `arrival = 0`∴ 작업 반환 시간 = 작업 완료 시각📌 반환 시간은 성능 측면에서의 평가 기준다른 평가 기준으로는 `공정성`(Fairness)이 있음.성능과 공정성은 스케줄링에서 상충되는 목표임성능 vs 공정성CP..
메모리 & 메모리 관리
·
Computer Science/운영체제
메모리 계층메모리 계층은 레지스터, 캐시 메모리, RAM, 저장장치로 구성이름설명휘발 여부레지스터CPU 내의 작은 메모리O캐시L1,L2 캐시 지칭, L3 캐시도 있음O주기억장치RAM 의미O저장장치HDD/SSDX이러한 계층이 있는 이유는 `경제성`과 `캐시` 때문임.경제성: 16GM 램 VS 1TB HDD = HDD가 더 쌈 (속도 ∝ 돈)대략 적인 속도 차이 ❓L1 캐시: 약 1ns 이하 (나노초)L2 캐시: 약 3~10nsL3 캐시: 약 10~30nsRAM (DDR4/DDR5): 약 50~100nsSSD (NVMe 기준): 약 100,000ns (100µs)HDD: 약 5,000,000ns (5ms)ex) L3 캐시가 RAM 보다 10배~30배 빠름 캐시 (Cache)데이터를 미리 복사해 놓는 임시 저..
운영체제 개요, 프로세스 & 스레드
·
Computer Science/운영체제
운영체제의 역할과 구조운영체제 역할CPU 스케줄링과 프로세스 관리CPU 소유권을 어떤프로세스에 할당할지, 프로세스의 생성과 삭제, 자원 할당 및 반환 관리메모리 관리: 한정된 메모리를 어떤 프로세스에 얼만큼 할당할지디스크 파일 관리: 디스크 파일을 어떤 방법으로 보관할지I/O 디바이스 관리: 마우스, 키보드 등과 컴퓨터 간에 데이터 주고 받는 것 관리운영체제 구조GUI: 사용자가 전자장치와 상호 작용할 수 있도록 하는 사용자 인터페이스의 한 형태드라이버: 하드웨어를 제어하기 위한 소프트웨어CUI: 그래픽이 아닌 명령어로 처리하는 인터페이스커널 (Kernel)하드웨어와 응용 프로그램 사이에서 자원을 관리하는 역할CPU, 메모리, 디스크, 네트워크, 파일 시스템 등 제어일반 응용 프로그램이 직접 접근 할 수..