CS 17

HTTPS & SSL

1. HTTPS 1.1. HTTPS가 나온 배경 HTTP는 단순 텍스트를 교환하므로, 누군가 네트워크에서 신호를 가로채면 내용이 노출되는 보안 이슈가 존재한다. 통신 상대를 확인하지 않기 때문에 위장이 가능하다. 이런 HTTP 보안 이슈를 해결해주는 프로토콜이 'HTTPS'이다. HTTPS는 HTTP 메세지(텍스트)를 암호화한다. 1.2. HTTPS HTTPS에서 S는 Over Secure Socket Layer을 뜻한다. HTTPS란 인터넷 상에서 정보를 암호화하는 SSL/TLS프로토콜을 이용해 클라이언트와 서버가 자원을 주고 받을 때 쓰는 통신 규약이다. HTTP 통신하는 소켓 부분을 인터넷 상에서 정보를 암호화하는 SSL(Secure Socket Layer)라는 프로토콜로 대체한 것이다. => SS..

CS/네트워크 2022.11.24

가상 메모리

1. 가상 메모리(virtaul memory) 1.1. 가상 메모리 배경 이 전에 메모리 관리 기법에 대해서 배웠다. 자세히 알고 싶다면 아래 링크 클릭! https://daily-studygo.tistory.com/35 메모리 관리 기법 CPU는 그저 '메모리'에 올라와 있는 프로그램의 명령어들을 실행할 뿐이다. 메모리는 전자회로에서 데이터나 상태, 명령어 등을 기록하는 장치를 말하며 메모리 계층은 레지스터, 캐시, 주기억장 daily-studygo.tistory.com 이러한 기법들은 모두 다중 프로그래밍(multi programming)을 실현하기 위해 메모리에 많은 프로세스들을 동시에 유지하는 것이 목적이다. 그리고 이 기법들은 프로세스 전체가 실행되기 전에 메모리로 올라와야 한다는 것을 전제로 ..

CS/운영체제 2022.11.16

CPU스케줄러와 CPU 스케줄링

프로세스 상태 CPU 스케줄러&스케줄링을 이해하기 위해 프로세스 상태에 대해 알아보자. 프로세스 상태는 new, ready, running, waiting, terminated 등이 있다. 이외에도 suspended ready, suspended Waiting이 있다. 프로세스 상태 상태 정의 추가 설명 new 프로세스가 막 생성된 상태 fork() 또는 exec() 함수를 통해 생성, 이 때 PCB가 할당된다. ready 프로세스가 CPU에 실행되기 위해 대기하는 상태 메모리 공간이 충분하면 메모리를 할당받고 아니면 아닌 상태로 대기하고 있으며 CPU 스케줄러로부터 CPU 소유권이 넘어오기를 기다린다. running CPU 소유권과 메모리를 할당받고 인스트럭션을 수행 중인 상태 CPU burst가 일어..

CS/운영체제 2022.11.10

메모리 관리 기법

CPU는 그저 '메모리'에 올라와 있는 프로그램의 명령어들을 실행할 뿐이다. 메모리는 전자회로에서 데이터나 상태, 명령어 등을 기록하는 장치를 말하며 메모리 계층은 레지스터, 캐시, 주기억장치(메인 메모리), 보조기억장치로 구성되어 있다. 이 중 메인 메모리(main memory)에 대해 알아보자. 1. 메인 메모리(main memory) 보통 RAM(Random Access Memory, main memory)을 일컬어 메모리라고 한다. CPU는 계산을 담당하고, 메모리는 기억을 담당한다. 메인 메모리는 CPU가 직접 접근할 수 있는 기억 장치이다. 메모리의 주소는 주소가 할당된 일련의 바이트들로 구성되어 있다. 비트 단위로 데이터를 관리하면 명령이 너무 세분화되어 불편할 수 있기 때문에 바이트 단위를..

CS/운영체제 2022.11.08

SQL VS NoSQL

1. SQL SQL은 Structured Query Language (구조적 질의 언어)의 줄임말로, 관계형 데이터베이스 시스템(RDBMS)에서 자료를 저장하고 처리하기 위해 설계된 프로그래밍 언어이다. 쿼리(Query)란 데이터베이스나 파일의 내용 중 원하는 내용을 검색하기 위하여 몇 개의 코드(code)나 키(Key)를 기초로 질의하는 것을 말한다. 쿼리(질의)는 답을 달라는 일종의 요청이라고 할 수 있다. 간단하게 말하면 데이터베이스에 정보(답)를 요청하는 것이라고 할 수 있다. SQL 문을 사용하여 데이터베이스에서 정보를 저장, 업데이트, 제거 및 검색 할 수 있다. 데이터베이스 성능을 유지 관리하고 최적화하는 데 SQL을 사용할 수도 있다. 1.1. SQL이 중요한 이유 SQL은 많은 애플리케이..

HTTP

https://daily-studygo.tistory.com/26 OSI 7계층 VS TCP/IP 4계층 OSI 7계층 모델과 TCP/IP 4계층 모델 계층 모델은 네트워크에서 사용되는 통신 프로토콜의 집합으로 계층들은 프로토콜의 네트워킹 범위에 따라 4개(or 7개)의 추상화 계층으로 구성된다. 이 계층들 daily-studygo.tistory.com OSI 7계층에서 애플리케이션에 계층 프로토콜인 HTTP에 대해 알아보자. 1. HTTP HTTP(HyperText Tranfer Protocol)란 웹 상에서 정보를 주고 받을 때 쓰는 프로토콜(통신 규약)이다. 클라이언트인 웹브라우저가 서버에 HTTP를 통해 웹페이지나 이미지 정보 등의 자원을 요청하면 서버는 이 요청에 응답하여 요구하는 자원을 제공하..

CS/네트워크 2022.11.01

Blocking-NonBlocking-Synchronous-Asynchronous

동기와 비동기 블럭과 논블럭에 대해 알아보자. Blocking VS Non-blocking 블럭/논블럭은 간단히 말해서 호출된 함수가 호출한 함수에게 제어권을 건네주는 유무의 차이라고 볼 수 있다. 함수 A, B가 있고, A 안에서 B를 호출했다고 가정해보자. 이때 호출한 함수는 A고, 호출된 함수는 B가 된다. 현재 B가 호출되면서 B는 자신의 일을 진행해야 한다. (제어권이 B에게 주어진 상황) Blocking : 함수 B는 내 할 일을 다 마칠 때까지 제어권을 가지고 있는다. A는 B가 다 마칠 때까지 기다려야 한다. Non-blocking : 함수 B는 할 일을 마치지 않았어도 A에게 제어권을 바로 넘겨준다. A는 B를 기다리면서도 다른 일을 진행할 수 있다. 즉, 호출된 함수에서 일을 시작할 때..

CS/네트워크 2022.10.28

OSI 7계층 VS TCP/IP 4계층

OSI 7계층 모델과 TCP/IP 4계층 모델 계층 모델은 네트워크에서 사용되는 통신 프로토콜의 집합으로 계층들은 프로토콜의 네트워킹 범위에 따라 4개(or 7개)의 추상화 계층으로 구성된다. 이 계층들은 특정 계층이 변경되었을 때 다른 계층이 영향을 받지 않도록 설계되었다. ex) TCP를 UDP로 변경했다고 해서 인터넷 웹 브라우저를 다시 설치해야 하는 것은 아니듯 유연한 설계 * 프로토콜: 통신을 하기 위한 규칙 * 네트워킹: 기기와 기기가 망을 구성하여 데이터를 주고받는 것 이런 네트워크 통신 모델은 왜 나오게 됐을까? 예전에 표준화가 되어 있지 않아 같은 회사의 컴퓨터(제품)끼리만 통신이 가능하고 케이블을 연결하는 커넥터도 회사별로 달라 곤란했다. 그래서 공통으로 사용할 수 있는 표준 규격을 정..

CS/네트워크 2022.10.27

동기화

https://daily-studygo.tistory.com/12 프로세스와 스레드 프로그램과 프로세스 프로그램은 특정 작업을 실행할 수 있는 명령어 모음으로 디스크에 저장된 파일이다. 프로세스는 디스크로부터 메모리에 적재되어 실행되고 있는 프로그램으로 CPU의 할당 daily-studygo.tistory.com 이전에 위의 블로그에서 멀티 스레딩의 경우 스레드가 공유 자원에 동시에 접근했을 때 결과가 달라져 문제가 발생할 수 있다고 했다. 문제가 발생하지 않게 멀티스레드 환경에서 여러 스레드가 동시에 공유 자원에 접근할 때, 의도한 대로 동작(Thread-Safe)하게 해줘야 한다. Thead-Safe가 가능하게 하는 동기화 기법에 대해 알아보자. 동기화를 설명하기 위해 알아야 할 개념에 대해 짚고 넘..

CS/운영체제 2022.10.25

데드락

https://daily-studygo.tistory.com/18 동기화 https://daily-studygo.tistory.com/12 프로세스와 스레드 프로그램과 프로세스 프로그램은 특정 작업을 실행할 수 있는 명령어 모음으로 디스크에 저장된 파일이다. 프로세스는 디스크로부터 메모리에 daily-studygo.tistory.com 데드락(DeadLock, 교착 상태) 두 개 이상의 프로세스나 스레드가 서로 자원을 얻지 못해서 다음 처리를 하지 못하는 상태 무한히 다음 자원을 기다리게 되는 상태를 말한다. 시스템적으로 한정된 자원을 여러 곳에서 사용하려고 할 때 발생한다. (마치, 외나무 다리의 양 끝에서 서로가 비켜주기를 기다리고만 있는 것과 같다.) 데드락이 일어나는 경우 프로세스1과 2가 자원1..

CS/운영체제 2022.10.25