Computer Science
프로세스 상태 (Process State) new (생성 상태) 프로세스를 생성 중인 상태. PCB를 할당받은 상태 ready (준비 상태) 자신의 차례를 기다리고 있는 상태. 많은 프로세스들이 ready상태에서 자신의 차례를 기다린다. 이때 os는 실행 상태로 전환할 프로세스를 선택하는데 이 작업을 스케줄링이라 한다. CPU의 할당을 받으면 실행 상태가 되는데 준비 상태인 프로세스가 실행 상태로 전환되는 것을 디스패치(Dispatch)라고 한다. running (실행 상태) CPU의 할당을 받아서 실행하는 상태. waiting (대기 상태) 입출력 작업이나 다른 이벤트가 발생하여 완료 인터럽트를 받을 때까지 기다리는 상태 running -> ready - cpu를 할당받아 실행 중인 running 상태..
환경 : ec2 (ubuntu 18.04), spring boot, nginx/1.14.0(ubuntu), certbot으로 domain https 인증서 발급 certbot https 인증서 발급 참고 블로그 https://junho85.pe.kr/2048 - sudo mkdir /var/log/nginx/proxy/ # log, error 파일용 디렉토리 - sudo vi /etc/nginx/proxy_params 아래 코드 작성 proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header ..
데이터베이스 생성 - CREATE DATABASE [DB이름] CREATE DATABASE mydb; 데이터베이스 사용 - USE [DB이름] USE mydb; 데이터베이스 삭제 - DROP DATABASE [DB이름] DROP DATABASE mydb; 테이블 생성 - CREATE TABLE [tb이름] ([column name] [type], [column name] [type],...) CREATE TABLE tb( id int, name varchar(255) ); 테이블 삭제 - DROP TABLE [tb이름] DROP TABLE tb; 테이블 컬럼 추가 - ALTER TABLE [tb이름] ADD [column name] [type] ALTER TABLE tb ADD age int; 테이블 컬..
데이터베이스 (Database) 데이터베이스는 데이터들의 집합이다. 데이터베이스는 관계형 데이터베이스와 비관계형 데이터베이스로 구분해서 설명할 수 있다. 관계형 데이터베이스는 SQL을 기반으로 한 데이터베이스이고 비관계형 데이터베이스는 NoSQL을 기반으로 한 데이터베이스이다. SQL과 NoSQL은 만들어진 방식, 저장하는 정보의 종류, 저장하는 방법 등에 차이가 있다. SQL (Structed Query Language) - 관계형 데이터베이스 관계형 데이터베이스는 SQL을 기반으로 행과 열로 이루어진 테이블에 데이터를 저장한다. 정해진 테이블의 구조에 맞추어 데이터를 저장하고 테이블 간 관계를 맺는다. 테이블의 구조가 정해져 있기 때문에 데이터를 테이블의 구조에 맞춰서 저장하지 않으면 저장할 수 없다..
URI (Uniform Resource Identifier) URI는 URL(Uniform Resource Locator), URN(Uniform Resource Name)을 포함한다. URL, URN은 항상 성립하지만 반대는 성립하지 않는다. Uniform : 리소스를 식별하기 위한 통일된 방식 Resource : 리소스 Identifier : 구분하기 위한 식별자 이름에서 알 수 있듯이 URI는 리소스에 접근하기 위해 필요한 정보이다. URL (Uniform Resource Locator) URL은 리소스가 위치한 정보를 나타낸다. scheme://[host][:port]/[path][query] https://www.google.com:443/search?q=hello scheme : 주로 응용 계..
HTTP HTTP(Hyper Text Transfer Protocol)은 웹 상에서 서버 및 클라이언트 간의 데이터를 주고받기 위한 응용 계층(Application Layer)의 프로토콜로 초기엔 하이퍼 텍스트 형식의 데이터를 주고받았고 현재엔 이미지, 비디오 등 거의 모든 형식의 데이터를 주고받을 수 있게 되었다. 실제로 위와 같이 브라우저에서 확인해보면 HTTP를 사용해서 데이터들을 받는 것을 볼 수 있다. HTTP의 특징 1. 클라이언트 - 서버 (Client - Server) 구조 Request Response 구조 클라이언트는 서버에 요청을 보내고 대기하면 서버는 요청에 대한 결과를 만들어서 응답해준다. 2. 무상태 (Stateless) HTTP 통신에서 서버는 클라이언트의 상태를 보존하지 않는..
전송 계층 (Transport Layer) 네트워크 계층에서는 데이터가 정확하게 목적지까지 도달할 수 있도록 최적의 경로와 대상 IP를 찾아서 전달해준다. 하지만 전송계층보다 아래쪽에 있는 계층들은 데이터가 제대로 잘 전달되었는지 확인하지 않는다. 패킷을 분할해서 전달하는 상황을 생각해보자. 전송계층이 없다면 수신자 입장에선 정확한 데이터인지, 모든 패킷이 도착했는지 알 수 있는 방법이 없다. 전송계층은 위와 같은 상황이 발생하지 않도록 도달한 데이터 손상이 있는지 확인해서 재전송을 요청하기도 하고 무작위로 도착한 분할된 데이터 조각들을 재조립해서 애플리케이션에 전달해준다. 정리하면 전송 계층은 데이터의 오류를 검증하고 순차적으로 잘 전달해주는 서비스를 제공한다. TCP(Transmission Contr..
IP 주소 (IP Address) 군대에 있는 친구에게 택배를 보내야 하면 친구가 있는 부대의 주소를 알아야 보낼 수 있다. 인터넷에선 이 주소와 같은 개념이 IP 주소이다. 우리가 많이 사용하는 IP Version 4의 주소는 네 개의 10진수로 나타내고 있지만 사실은 8비트씩 네 개인 32bit로 표현된다. 숫자 사이의 점(dot)을 각 바이트들을 옥텟(octet)이라고 하고 왼쪽부터 차례로 1 옥텟, 2 옥텟, 3 옥텟, 4 옥텟이라고 부름 여기서 IP 주소는 네트워크 id(Network Id), 호스트 id(Host id) 두 가지 파트로 나뉜다. 네트워크 파트는 IP 주소가 어느 네트워크에 속해있는지 알 수 있는 주소이고 호스트 파트는 네트워크에 안에 속해 있는 기기가 할당받는 주소이다. 네트워..
프로토콜 (Protocol) 컴퓨터와 컴퓨터 사이, 또는 한 장치와 다른 장치 사이에서 데이터를 원활히 주고받기 위하여 약속한 여러 가지 규약. 인터넷 프로토콜 슈트 (Internet Protocol Suite)는 인터넷에서 컴퓨터들이 서로 정보를 주고받는 데 쓰이는 프로토콜의 모음이다. 이 모음은 다른 컴퓨터나 운영체제, 회선 간의 통신이 가능하게 해 주고, 인터넷이 처음 시작하던 시기에 정의되어 현재까지 표준으로 사용하고 있는 TCP(Transmission Control Protocol)와 IP(Internet Protocol)에서 가져와 TCP/IP라고 부르고 이는 OSI 7 계층 모델을 기반으로 단순화한 것이다. 1 계층 - Network Interface OSI 모델의 물리 계층과 데이터 링크 ..