본문 바로가기

이것저것 스터디📚/CS 스터디

(30)
교착상태 교착상태(Dead Lock) - 교착상태란 두 개 이상의 프로세스가 자원을 점유한 상태에서 서로 점유한 자원을 서로에게 요구하고 있어서 그 프로세스들이 무한정으로 기다리고 있는 상태를 말한다. * 교착상태의 발생 조건 4가지 - 교착 상태가 발생하기 위해서는 4가지의 조건이 있고 이 중의 하나라도 만족하지 않으면 교착상태는 발생하지 않는다. 1. 상호 배재(Mutual Exclusion) - 한 리소스는 한 번에 하나의 프로세스만이 사용할 수 있어야 하고, 사용중인 자원을 다른 프로세스가 사용하려면 요청한 자원이 해제될 때까지 기다려야 한다. 2. 점유와 대기(Hold and Wait) - 자원을 최소한 하나 보유하고, 다른 프로세스에 할당된 자원을 추가로 점유하기 위해 대기하는 프로세스가 존재해야 한다..
프로세스와 스레드 프로세스(Process) - 프로세스란 실행중인 프로그램으로 디스크로부터 메모리에 적재되어 CPU의 할당을 받을 수 있는 것을 말한다. - 운영체제로부터 주소 공간, 파일, 메모리 등을 할당 받는다. - 프로세스 스택 : 함수의 매개변수, 복귀 주소와 로컬 변수 같은 임시자료를 갖는다. - 데이터 섹션 : 전역변수들을 수록 - 프로세스는 실행중에 동적으로 할당되는 메모리인 힙을 포함한다. PCB(Process Control Block) - PCB란 운영체제가 프로세스를 제어하기 위해 정보를 저장해 놓는 곳으로, 프로세스의 상태 정보를 저장하는 구조체이며 프로세스 상태 관리와 문맥교환(Context Switcing)을 위해 필요하다. - 프로세스는 프로세서에 의해 수행되는 프로그램 단위로 현재 실행 중이거..
HTTP 대신 HTTPS를 사용해야하는 이유 HSTS(HTTP Strict Transport Security) - Web Site에 접속할 때, 강제적으로 HTTPS Protocol로만 접속하게 하는 기능이다. - 즉, HTTPS Protocol을 지원하는 웹 사이트에서 HTTPS Protocol만을 사용해서 통신할 수 있음을, 접속하고자 하는 브라우저에게 알려주고 브라우저에게 HTTPS Protocol만 사용하도록 강제하는 기능이다. - 이는 해커와 같은 공격자가 중간자공격을 하여 중간에 Proxy Server를 두고, 사용자와는 HTTP 통신을 하고 실제 웹 사이트와는 HTTPS 통신을 해도 사용자는 이를 인식하지 못하며, 사용자와 실제 웹 사이트가 주고 받는 모든 정보는 공격자에게 노출되게 된다. 이를 SSL Stripping 공격이라고 하며..
API GATEWAY - API GATEWAY : 서비스로 전달되는 모든 API 요청의 관문(Gateway)역할을 하는 서버이다. - API GATEWAY를 통해 시스템의 아키텍처를 내부로 숨기고 외부의 요청에 대한 응답만을 적절한 형태로 응답한다. - 즉, 클라이언트는 내부 구조의 아키텍처를 알 필요 없이 서로 약속한 형태의 API 요청만을 서버로 보내면 된다. * 장점 - 클라이언트의 요청을 일괄적으로 처리 : 클라이언트 애플리케이션은 하나의 진입점(API GATEWAY)만 알면되기 때문에 여러 개의 서비스를 호출할 필요가 없기 때문에 클라이언트 애플리케이션의 코드가 단순화되고, 유지보수가 용이해진다. - 전체 시스템의 부하를 분산 시키는 로드 밸런서의 역할 : 서버 뒷단에 있는 여러 서비스로의 API 요청을 로드 밸런싱..
REST API - REST API : REST를 기반으로 만들어진 API를 말한다. 1. REST(Representational State Transfer)란? - REST는 자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것을 의미한다. - HTTP URI(Uniform Resource Identifier)를 통해 자원을 명시하고 - HTTP Method(POST, GET, PUT, DELETE, PATCH 등)를 통해 - 해당 자원(URI)에 대한 CRUD(Create, Read, Update, Delete) Operation을 적용하는 것을 의미한다. 2. REST 구성 1) 자원(Resource) : HTTP URI 2) 자원에 대한 행위(Verb) : HTTP Method 3) 자원에 대한 행위의 ..
AJAX란? 1. AJAX(Asynchronous Javascript And XML) - 비동기식 자바스크립트와 xml의 약자 - 자바스크립트를 이용해 서버와 브라우저가 비동기 방식으로 데이터를 교환할 수 있는 통신 기능 - JSON이나 XML 형태로 필요한 데이터만 받아 갱신하기 때문에 웹 페이지 전체를 다시 로딩하지 않고도, 웹 페이지의 일부분만을 갱싱할 수 있다. - Ajax의 가장 핵심적인 구성 요소는 XMLHttpRequest 객체이며, 이는 웹 브라우저가 서버와 데이터를 교환할 때 사용된다. * 서버와는 다음과 같은 형태의 데이터를 주고 받을 수 있다. - JSON - XML - HTML - 텍스트 파일 등 * Ajax 장점 - 웹페이지의 속도향상 : 페이지 전체가 아닌 필요한 부분만 업데이트할 수 있기 ..
웹 서버와 WAS(Web Application Server) 1. 웹 서버(Web Server) - 웹 서버는 클라이언트(사용자)가 브라우저 주소창에 url을 입력하여 어떤 페이지를 요청하게 되면 http 요청을 받아들여 HTML 문서, CSS, 이미지, 파일 등과 같은 정적인 콘텐츠를 사용자에게 전달해주는 역할을 한다. - 웹 서버는 저장된 웹 리소스들을 클라이언트로 전달하고, 클라이언트로부터 콘텐츠를 전달받아 저장하거나 처리한다. - 만약 사용자로부터 동적인 요청이 들어왔을 때 해당 요청을 웹 서버 자체적으로 처리하기 어렵기 때문에 해당 요청을 WAS에게 요청한다. - 대표적인 웹 서버 종류 : Apache, Nginx 등 2. WAS(Web Application Server) - WAS는 웹 애플리케이션과 서버 환경을 만들어 동작시키는 기능을 제공하는 소프트..
CORS란 무엇인가? 1. CORS(Cross-Origin Resource Sharing) - CORS는 출처가 다른 자원들을 공유한다는 뜻으로, 한 출처에 있는 자원에서 다른 출처에 있는 자원에 접근하도록 하는 개념이다. - 즉, 교차 출처 리소스 공유(CORS)는 추가 HTTP 헤더를 사용하여, 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있도록 권한을 부여하도록 브라우저에 알려주는 체제이다. - 브라우저에서는 보안적인 이유로 cross-origin HTTP 요청들을 제한하는데, cross-origin 요청을 하려면 서버의 동의가 필요하다. 만약 서버가 동의한다면 브라우저에서 요청을 허락하고, 동의하지 않으면 브라우저에서 거절한다. - 이렇게 허락을 구하고 거절하는 매커니즘을 HTTP-h..