프로세스 메모리에 올라와 실행되고 있는 프로그램의 인스턴스 특징 운영체제로부터 독립된 메모리 영역을 할당받는다. 다른 프로세스의 자원에 접근하지 않음! 프로세스들은 독립적이기 때문에 통신하기 위해 IPC를 사용해야 한다. 프로세스는 최소 1개의 쓰레드(메인 쓰레드)를 가지고 있다. 문제점 프로세스 생성에 큰 오버헤드가 있다. (프로세스를 생성할 때 많은 시간이 소요됨) 프로세스 컨텍스트 스위칭의 비효율성, 오버헤드가 큼 프로세스 사이에 통신이 어렵다는 점 (IPC 사용해야 함) 쓰레드 프로세스 내에서 할당받은 자원을 이용해 동작하는 실행 단위 출현 목적 프로세스보다 크기가 작은 실행 단위 필요 프로세스의 생성 및 소멸에 따른 오버헤드 감소 빠른 컨텍스트 스위칭 프로세스들의 통신 시간, 방법 어려움 해소 ..
프로세스 내 작업단위를 의미하는 스레드는 두 가지 종류로 나뉜다. 커널 수준 스레드와 사용자 수준의 스레드 💡 생성 주체가 누구냐에 따라 구분된다! 커널 수준 스레드 커널 레벨에서 생성되는 스레드로 커널이 스레드와 관련된 모든 작업을 관리하는 방식이다. 사용자 수준 스레드와 커널 수준 스레드가 1대1로 매핑된다. 장점 커널이 각 스레드들을 개별적으로 관리할 수 있으므로, 동일한 프로세스에서 할당된 여러개의 스레드들 중 한 스레드가 대기상태가 되더라도, 다른 스레드들은 실행시킬 수 있다. 커널이 직접 제공해 주기 때문에 안정성과 다양한 기능이 제공된다. 단점 커널이 직접 스케줄링하고 실행하기 때문에 커널의 관리 지원을 많이 받을 수 있지만, 그만큼 오버헤드가 늘어난다. 유저 모드에서 커널 모드로의 전환이 ..
Method 1. GET: 리소스 조회 GET method는 클라이언트가 서버에게 정보를 요청할 때 사용되는 method이다. GET을 통한 요청은 URL 주소 끝에 key-value 쌍으로 parameter를 포함하여 전송을 하는데, 이 부분을 Query String 이라고 부른다. GET의 중요한 특징 중 하나는 캐시가 가능하다는 것이다. 한 번 서버에 GET 요청을 한 적이 있다면 브라우저가 그 결과를 저장해 둔다. 이후 동일 한 요청은 브라우저에 저장된 값으로 가져올 수 있다. 2. POST: 요청 데이터 처리(주로 생성) POST method는 클라이언트가 body를 통해 전달한 데이터를 서버가 처리하도록 요청하는 method이다. 서버는 POST 메시지를 받으면 꼭 리소스를 등록하는 것만 아니..
인증과 인가 인증(authentication)은 사용자가 누구인지 확인하는 절차이다. 회원가입과 로그인 과정이 인증의 대표적인 예시이다. 인가(authorization)은 사용자가 요청하는 것에 대한 권한이 있는지를 확인하는 절차이다. 세션을 통한 인증, 인가(auth)의 절차는 다음과 같다. 클라이언트가 로그인을 하면 서버는 회원정보를 대조하여 인증을 한다.(authentication) 회원 정보(클라이언트 정보)를 세션저장소에 생성하고 session ID를 발급한다. http response header 쿠키에 발급한 session ID를 담아서 보낸다. 클라이언트에서는 session ID를 쿠키 저장소에 저장하고 이후에 http request를 보낼 때마다 쿠키에 session ID를 맏아서 보낸다..
쿠키와 세션 쿠키 클라리언트(브라우저) 로컬에 key-value 쌍을 저장되는 데이터 팡리이다. 유효시간 내에서는 브라우저가 종료되어도 계속 유지된다. 세션 브라우저가 종료되거나, 서버에서 해당 세션을 삭제할 수 있기 때문에 쿠키보다 보안성이 좋다. 또한 서버에 데이터를 저장하므로 서버 용량이 허용하는 한에서 제한 없이 데이터를 저장할 수 있다는 장점이 있지만 서버의 부하가 커진다는 단점이 될 수 있다. 쿠키와 세션을 사용하는 이유: HTTP의 connectionless, stateless 클라리언트가 요청을 했을 때 그 요청에 맞는 응답을 보낸 후 연결을 끊고, 서버는 클라이언트에 대한 상태 정보를 유지하지 않기 때문에 알 수 없게 된다. 쿠키(cookie) 쿠키의 생성과 저장은 구현에 따라 다르지만 ..
브라우저를 열어 주소창에 www.naver.com을 을 입력한다. (www.naver.com)는 도메인 네임으로 되어있기 때문에 DNS에 도메인을 검색하기 위한 요청을 보낸다. DNS는 일련의 과정을 거친 후 (www.naver.com)에 대응하는 ip 주소를 응답으로 돌려준다. 받은 ip 주소를 사용하여 TCP 통신을 통해 해당 ip 서버에 요청을 보낸다. 요청을 받은 서버(www.naver.com)는 요청 내용에 대한 일련의 처리 과정을 거쳐 응답 메시지를 만든다. 응답메시지를 TCP 통신을 통해 다시 클라이언트에게 전송한다. 브라우저는 받은 응답메시지를 HTTP 프로토콜을 사용하여 웹페이지를 구성하며 사용자에게 Naver 화면을 보여준다. 웹 동작 방식 유저가 브라우저에서 url을 입력하면 http..