본문 바로가기

Computer Science30

[HTTP] GET과 POST의 차이 GET 리소스 조회를 위한 메서드. 서버에 전달하고 싶은 데이터는 query(쿼리 파라미터 or 쿼리 스트링)를 통해서 전달한다. 다음과 같은 형태 GET /search?q=hello&hl=ko HTTP/1.1 Host: www.google.com 특징 리소스 조회가 목적이다. 데이터를 헤더에 쿼리 스트링으로 전달한다. 따라서 대용량 데이터를 보내기에 적절하지 않으며 보안에도 취약하다. POST 방식보다 빠르다. 브라우저에 캐싱이 가능하기 때문에 같은 요청의 경우 서버로 보내지 않고 캐싱된 정보를 보내준다. 이는 GET의 멱등성 때문이기도 하다. 멱등성이란 같은 연산을 여러 번 적용하더라도 결과가 달라지지 않는 성질을 말하는데, GET은 POST와 달리 멱등성을 가지고 있기 때문에 이같은 방식이 가능하다.. 2021. 7. 8.
검색창에 www.google.com을 검색하면 어떤 일이 일어날까? 웹의 전체적인 동작 과정을 이해하기 위해 공부한 내용을 정리한 글입니다. 전체적인 과정을 이해하는 것이 목적이므로 생략된 부분이 많습니다. 이론적이고 정확한 지식을 원하시는 분은 반드시 관련 전문 서적을 참조해주세요. 인터넷의 동작 과정 웹의 동작 과정을 이해하기 위해서는 우선 인터넷의 동작 과정부터 이해해야 합니다. '인터넷'하면 익스플로러나 크롬 아이콘의 이미지를 떠올리는 사람이 있다면 우선 웹과 인터넷의 개념을 분리할 필요가 있습니다. 인터넷과 웹의 관계는 너무 밀접해서 마치 인터넷과 웹이 같은 개념인 것처럼 느껴지지만 인터넷과 웹은 엄연히 다른 개념입니다. 인터넷은 1960년대에서 70년대 사이에 탄생했지만, 웹은 20여년 정도가 흐른 뒤인 1990년대에 탄생했습니다. 인터넷은 세상의 모든 컴퓨터.. 2021. 7. 8.
[OS] 교착상태 (Deadlock) 교착상태(Deadlock)란? 정상적인 시스템에서 프로세스는 요청 → 사용 → 방출 순서로 자원을 사용한다. 요청: 프로세스는 자원을 요청한다. 요청이 즉시 처리되지 않는 경우(ex. 다른 프로세스가 해당 자원을 사용 중인 경우) 프로세스는 자원을 얻을 때까지 대기해야 한다. 사용: 자원에 대한 작업을 실행한다. 방출: 자원을 방출한다. 자원의 요청과 방출은 시스템 콜이다. 예시로는 디바이스의 request()와 release(), 파일의 open() 과 close(), 메모리의 allocate()와 free() 등이 있다. OS가 관리하지 않는 자원의 요청과 방출은 세마포어에 대한 wait() & signal() 또는 뮤텍스 락의 획득과 방출을 통해서 이루어질 수 있다. 커널이 관리하는 자원을 프로세스.. 2021. 7. 7.
[OS] 세마포어 (Semaphore) 동기화 방법에는 여러 가지가 있으며 하드웨어적으로 해결하는 방법과 소프트웨어적으로 해결하는 방법으로 나뉩니다. 여기서는 소프트웨어적 해결 방안 중 하나인 세마포어에 대해 알아보겠습니다. 세마포어는 동기화 문제 해결을 위해 네덜란드의 컴퓨터 과학자 에츠허르 다익스트라(Edsger Wybe Dijkstra)가 제안한 소프트웨어 도구입니다. 추상적인 설명보다는 세마포어를 직접 사용하면서 차근차근 알아가봅시다. 세마포어의 구조는 한 개의 정수형 변수와 두 개의 동작으로 구성되어 있습니다. 두 개의 동작은 다음과 같이 불립니다. P = Proberen(test) = wait = acquire V = Verhogen(increment) = signal = release Proberen&Verhogen은 네덜란드어이.. 2021. 7. 7.
[OS] CPU 스케줄링과 스케줄링 알고리즘 CPU scheduling CPU 스케줄링(Scheduling)이란 어떤 프로세스가 CPU를 점유할지를 결정하는 것을 말한다. CPU 스케줄링의 목적은 시스템을 효율적이고 빠르고 공정(fair)하게 만드는 것이다. CPU 스케줄링은 다음과 같은 기준으로 평가될 수 있다. CPU 이용률(CPU Utilization): 단위는 % 처리율(Throughput): 시간 당 몇 개의 작업을 처리하는가? (Jobs/sec) 반환시간(Turnaround Time): 하나의 프로세스가 작업을 시작하고부터 종료할 때까지 걸린 시간 (sec) 대기시간(Waiting Time): 레디 큐에서 기다린 시간 (sec) 응답시간(Response Time): (보통 대화형 시스템에서) 사용자가 요청을 한 시점부터 응답이 나올 때까.. 2021. 4. 12.
[OS] 프로세스란? (프로세스와 프로세스 관리) 프로세스란? Program vs Process 프로그램 그 자체로는 아무 일도 할 수 없다. 프로그램은 그저 하드디스크에 저장되어 있는 하나의 파일, 즉 수동적인 존재일 뿐이다. 프로그램이 사용자에게 유용한 기능을 제공하기 위해서는 메모리에 로드되어서 프로그램 카운터(PC) 및 관련 자원의 집합을 가진 능동적인 존재로서 동작해야한다. 예를 들어 바탕화면에 있는 Word 프로그램은 그 자체로는 아무 의미가 없다. 우리가 마우스를 올려서 더블클릭을 하고 실행이 되어서, 흰 바탕에 커서가 깜빡거리는 순간 유용한 무언가가 되는 것이다. 그래서 프로세스는 비공식적으로 실행 중인 프로그램(Program in execution)이라고 불린다. 프로그램이 하나의 프로세스가 되는 과정은 다음과 같다. 사용자가 프로그램을.. 2021. 4. 11.