CS 66

웹브라우저의 캐시

쿠키 - 만료기한이 있는 key-value 저장소 - 4KB까지 저장가능 - 클라이언트와 서버 모두 만료기한 정할 수 있는데, 보통 서버에서 정함 로컬 스토리지 - 만료기한이 없는 key-value 저장소 - 10MB까지 저장가능 - 클라이엔트에서만 수정 가능 - 웹브라우저를 닫아도 유지되고, 도메인 단위로 유지되고 저장, 생성됨 - HTML5 지원하는 곳에서만 가능 세션 스토리지 - 만료기한이 없는 key-value 저장소 - 5MB까지 저장가능 - 클라이언트에서만 수정 가능 - 탭단위로 스토리지 생성, 탭 닫을 때 해당 데이터 삭제 - HTML5 지원하는 곳에서만 가능 비고 - 데이터베이스의 캐싱기능 - 메인 데이터베이스 위에 레디스(redis)데이터베이스 계층을 '캐싱계층'으로 둬서 성능향상

CS/운영체제 2023.02.04

메모리, 캐시

메모리란? - 데이터의 상태, 명령어를 기록하는 장치 - CPU(일꾼)가 계산을 담당하고, 메모리(작업장)은 기억을 담당 메모리의 계층 - RAM : 하드디스크로 부터 일정량의 데이터를 복사하여 임시저장하고, 이를 필요시마다 CPU에 빠르게 전달하는 역할 - 차수별 저장장치 (1) 1차 저장장치 : 휘발성 저장장치(레지스터, 캐시, 메인메모리) (2) 2차 저장장치 : 보조기억장치 (3) 3차 저장장치 : 백업 사본을 저장하기위해 다른 장치에 저장하는것(cd-rom, blue-ray) 캐시 1. 정의 - 데이터를 미리 복사해놓은 임시저장소. 빠른장치와 느린 장치의 속도차이에 따른 병목현상을 줄이기 위한 메모리 - 레지스터는 CPU와 램사이에 있는 캐시계층이고 램은 캐시메모리와 보조기억장치 사이에 있는 캐..

CS/운영체제 2023.02.04

CPU 구성요소 및 연산과정

CPU란? - CPU는 제어장치, 레지스터, 산술논리연산장치로 구성되어 있는 컴퓨터 장치를 말하며 인터럽트에 의해 단순히 메모리에 존재하는 명령어를 해석하는 일꾼. * 제어장치(CU: Control Unit) : 프로세스 조작을 지시하는 CPU의 한 부품 * 레지스터 : 레지스터는 CPU내부의 매우 빠른 임시기억장치를 가르킴. CPU와 직접 연결되어 있어 연산속도가 메모리보다 수십~수백배 빠름. CPU는 자체적 데이터 저장방법이 없으므로, 레지스터 거쳐 데이터 전달 * 산술논리연산장치 : 덧셈, 뺄셈 등 두 숫자의 산술연산과 베타적 논리합, 논리곱은 논리연산을 계산하는 디지털 회로 인터럽트 - 컨트롤러가 장치드라이버에게 작업이 완료됐다는 것을 알리고, CPU에게 이를 처리시키기 위해 CPU를 중지 시키는..

CS/운영체제 2023.02.03

시스템콜, modebit

시스템콜 이란 운영체제가 커널에 접근하기 위한 인터페이스이며 유저프로그램이 운영체제의 서비스를 받기위해 커널함수 호출시 사용 => 이 과정을 통해 컴퓨터자원에 대한 직접접근차단, 프로그램을 다른 프로그램으로 부터 보호함 => 응용프로그램과 커널을 이어주는 시스템. 유저모드상의 응용프로그램이 커널함수를 사용하고자 할 때 커널모드로 전환하고 커널함수를 수행한후 다시 유저모드로 전환할 때 사용 MODEBIT 시스템콜이 작동할 때 유저모드와 커널모드로 구분하는 플레그. 카메라, 키보드등 I/O디바이스를 운영체제를 통해서만(커널모드) 사용할 수 있게 하여 해킹으로 부터 사용자 장비를 보호 유저모드 : 유저가 접근할 수 있는 영역에 제한을 주어 컴퓨터자원에 함부러 침범하지 못하게 하는 모드 커널모드 : 컴퓨터의 모..

CS/운영체제 2023.01.28

운영체제의 역할과 구조

동찬찬과 함께하는 신나는 운영체제 스터디를 위한 기초공부 운영체제 박사가 되자운영체제의 역할1. CPU 스케쥴링 : CPU소유권을 어떤 프로세스에 할당할지 2. 메모리 관리 : 한정된 메모리를 어떤 프로세스에 얼만큼 할당해야 하는지 관리 3. 프로세스 관리 : 프로세스 생성과 삭제 자원할당 및 반환을 관리 4. I/O 디바이스 관리 : I/O 디바이스들인 마우스, 키보드와 컴퓨터간에 데이터를 주고받는 것을 관리 5. 디스크파일 관리 : 디스크파일을 어떠한 방식으로 보관할지 관리 운영체제의 구조- 기본구조유저프로그램 GUI=> 운영체제시스템콜커널드라이버(하드웨어를 제어하기위한 소프트웨어)하드웨어

CS/운영체제 2023.01.28

HTTP(HTTP 1,2,3, HTTPS)

HTTP란? 인터넷 상에서 정보를 주고받는 규칙 및 프로토콜 HTTP/1.0 - 하나의 연결당 하나의 요청만 처리하도록 설계 - RTT(패킷이 목적지에 도달하고 다시 출발지로 돌아오기 까지 걸리는 시간)이 증가함 - 이를 해결하기위해 이미지 스플리팅, 코드압축, Base64인코딩 등의 기법을 사용 * 이미지 스플리팅 : 이미지가 합쳐있는 하나의 이미지를 다운로드 받는것 * 코드압축 : 코드의 빈칸, 개행을 없애는 것 * base64인코딩 : 64진법 문자열로 인코딩 하는 방법. 이미지에 대한 서버에 HTTP요청을 할 필요 없어짐. 하지만 크기가 커진다. * 인코딩 : 정보의 형태나 형식을 표준화, 보안, 처리속도향상, 저장공간 절약을 위해 다른 형태나 형식으로 변환하는 것 HTTP/1.1 - Keep-a..

CS/네트워크 2023.01.24

TCP/IP(Transmission Control Protocol)

정의 - 네트워크에서 사용되는 통신 프로토콜의 집합 - 네트워킹 범위에 따라 네게의 추상화된 계층으로 구성 - OSI계층과 비교를 통한 그림 계층별 설명 1. 에플리케이션 계층 - 응용프로그램이 사용되는 계층. 웹서비스, 이메일 등 서비스를 실질적으로 사람들에게 제공하는 층 - FTP : 장치와 장치간 파일을 전송하는데 사용하는 프로토콜 - SSH : 보안되지 않는 네트워크에서 네트워크 서비스를 안전하게 운영하기 위한 암호화 네트워크 프로토콜 - HTTP : WWW을 위한 네트워크통신의 기초이자 웹사이트를 이용하는데 사용되는 프로토콜 - SMTP : 전자메일전송을 위한 인터넷 표준 통신 프로토콜 2. 전송계층 - 송신자와 수신자를 연결하는 통신서비스 제공 - 어플리케이션과 인터넷 계층사이의 데이터가 전달..

CS/네트워크 2023.01.23

네트워크 토폴로지(topology)

네트워크 토폴로지 - 노드가 어떻게 배치되어 있는지에 대한 방식 및 연결 형태 - 병목현상을 올바르게 해결하기 위해 알아야 함 * 병목현상(bottle nect) : 전체시스템의 성능이나 용량이 하나의 구성요소로 제한받는 현상. 서비스에서 이벤트를 열었을 때 트래픽이 많이 생기고 그 트래픽을 잘 관리하지 못하면 병목현상이 생겨 사용자는 웹사이트로 갈 수 없음. 트리토폴로지 - 계층형 토폴로지, 트리형태로 배치한 네트워크 구성 - 노드의 추가삭제가 쉬우며 특정노드에 트래픽이 집중될 때 하위노드에 영향 버스토폴로지 - 중앙회선 하나에 여러개의 노드가 연결되어 공유하는 네트워크 구성. 근거리통신망(LAN)에서 사용함 - 설치비용이 적고 신뢰성이 우수하며 중앙통신회선에 노드를 추가하거나 삭제하기 쉬움 - 스푸핑..

CS/네트워크 2023.01.22

네트워크, 처리량, 대역폭

네트워크란? 노드와 링크가 서로 연결되어 있거나 연결되어 있지 않은 집합체 처리량, 대역폭, 지연시간 - 처리량(throughtput) : 링크를 통해 전달되는 단위시간당 데이터(bits per second) - 대역폭(bandwidth) : 주어진 시간동안 네트워크 연결을 통해 흐를 수 있는 최대 비트 수 - 지연시간 : 요청이 처리되는 시간, 메시지가 두 장치사이를 왕복하는데 걸리는 시간

CS/네트워크 2023.01.22

함수형, 객체지향형, 절차지향형의 차이

1. 함수형(선언형) 프로그래밍 - 선언형 : 무엇을 풀어내는가에 집중하고, 프로그램은 함수로 이루어져 있다는 패러다임 - 함수형 프로그래밍 : 순수함수들을 블록처럼 쌓아서 로직을 구현하고, '고차함수'를 통해 재사용성을 높인 패러다임 * 순수함수 : 출력이 입력에만 영향을 받는 함수 * 고차함수 : 함수가 함수를 값처럼 매개변수로 받아 로직을 생성할 수 있는것. 해당언어가 일급객체라는 특성을 가져야 함 * 일급객체 : 변수에 함수를 할당할 수 있고 함수안에 함수를 매개변수로 받고, 반환하는것이 가능한 언어 2. 객체지향형 프로그래밍 2.1 네가지특성 - 추상화 : 복잡한 시스템으로 부터 핵심적인 개념또는 기능만 간추리는 것 - 캡슐화 : 객체의 속성과 메소드를 하나로 묶고 일부를 감추어 은닉화 - 상속..

디자인 패턴(대표적인 디자인패턴)

디자인 패턴 이란? - 프로그램 설계 시 발생했던 문제점들을 상호관계 등을 이용하여 해결할 수 있도록 규약형태로 만들어 놓은 것 싱글톤 패턴 - 하나의 클래스에 하나의 패턴을 가짐 - 데이터베이스 연결모듈에 많이 사용 - 하나의 인스턴스를 만들어 놓고 다른모듈들이 공유하며 사용하므로 비용이 줄어듦 - 의존성이 높아지는 단점 -> TDD테스트 어려움 -> 디커플링을 통해 의존성 주입 * 의존성 주입 원칙 : 상위모듈은 하위모듈의 어떤것도 가져와선 안됨. 추상화에 의존해야 하며 추상화는 세부사항에 의존 x 팩토리 패턴 - 객체생성부분을 떼어내 추상화 한 패턴 - 상속관계의 두 클래스에서 상위 클래스가 중요한 뼈대 결정, 하위클래스에서 구체적인 내용을 결정하는 패턴 전략패턴(정책패턴) - 객체의 행위를 바꾸고..

라이브러리 프레임워크 차이

라이브러리와 프레임워크의 공통점 공통으로 사용될 수 있는 특정한 기능들을 모듈화 한 것. 라이브러리와 프레임워크의 차이점 라이브러리 항목 프레임워크 사용자가 가지고 있음 (폴더명 파일명 등에 대한 규칙이 없음) 흐름 제어 권한 사용자가 가지고 있지 않음 (폴더명 파일명 등에 대한 규칙이 정해져 있음) "가위"라는 도구를 사용하여 내가 직접 컨트롤 함 예시 "비행기"라는 도구를 타고 이동하지만, 비행기를 내가 컨트롤하진 않음 텐서플로우, 파이토치 종류 예시 자바 스프링, 파이썬 플라스크, 파이썬 장고

IPV4, IPV6

IPV4 - 전세게에서 사용된 첫 인터넷 프로토콜(인터넷 주소를 만드는 규칙, 체계) - 주소를 만드는 규칙 * (주소용량) = (8bit 씩 4묶음) = (8bit.8bit.8bit.8bit) = (32bit) * (각 묶음은 8bit 이므로 각 묶음은 2^8=256개의 숫자를 나타낼 수 있음) = (0~255) = (000.000.000.000) * 따라서 총 (2^8)^4 = 2^32개의 주소를 만들 수 있음 - 주소 부여 : 네트워크 크기나 호스트의 수에 따라 클래스가 나뉘고 클래스에 따라 IPV6 - IPV4의 주소부족 문제를 해결하기 위해 만들어짐 - 주소를 만드는 규칙 * (주소용량) = (16bit 씩 8묶음) = (16bit.16bit.16bit.16bit.16bit.16bit.16bit..

CS/네트워크 2022.12.03

사설 IP, 공인 IP의 차이

공인 IP - 인터넷 사용자의 로컬 네트워크를 식별하기 위해 ISP가 제공하는 IP주소 - 공용 IP주소라고도 불리우며 외부에 공개돼 있는 IP주소(전세계에서 유일한 IP주소) - 외부에 공개되어 있기에 인터넷에 연결된 다른 PC로 부터 접근이 가능하다. 따라서 방화벽과 같은 보안설정을 해 주어야 한다. 사설 IP - 일반 가정이나 회사 내 등에 할당된 네트워크 IP주소 - 라우터(공유기)등을 통해서 로컬 네트워크 PC나 장치에 할당된다.

CS/네트워크 2022.12.03

해쉬테이블

해시테이블 - key와 value구조로 이루어져 있는 자료구조 - key를 해시함수를 이용해서 index로 바꾸고 해당 index를 주소로 사용 해시함수 1. digit folding : key의 문자열을 ASCII 코드로 바꾸고 그 합을 index로 사용 2. division method : 숫자 key를 테이블의 크기로 나누어 나온 나머지를 index로 사용 (index = key % 테이블 크기) * 테이블의 크기는 소수(prime number) 3. multiplication method : 숫자로 된 key 값에 A(0~1사이 실수)를 곱한 후 그 나머지에 2의 제곱수 m을 곱하는것을 index로 사용 (index = (K*A mod 1)*m) 충돌 회피 - 해시함수를 이용해 구한 index가 ..

CS/자료구조 2022.11.13