OS

Operating System

컴퓨터 시스템의 자원을 효율적으로 관리하기 위한 환경을 제공하는 프로그램

추가정의 : 컴퓨터의 하드웨어를 관리

CPU, 메모리, 네트워크 등을 관리하는 운영체제의 성능이 컴퓨터의 성능을 좌우한다.

 

Linux

컴퓨터 운영체제 중 하나로 유닉스 운영체제를 기반으로 만들어짐

특징

다중 사용자 , 다중 작업 스레드를 지원

pc용 OS보다 안정적이고 보안측면에서도 pc의 OS보다 우수하다.

다양한 네트워킹, 기술을 제공하고, 주로 서버용 OS로 사용한다.

 

URL(Uniform Resource Locater)

네트워크 상에서 자원이 어디 있는지를 알려주기 위한 규약

쉽게 말해 주소창에 입력하는 웹사이트 주소이다.

예시 : https://www.google.com:443/search/howsearchworks/?fg=1

https는 통신 방법

ww.wgoogle.com은 도메인

443은 포트번호

/search/howsearchworks/?fg=1 은 세부 경로

 

활용

현재는 인터넷 주소의 의미를 갖고 있기 때문에 http라는 문구를 붙이지 않아도 도메인 주소로도 충분히 검색이 가능하다.

 

Domain

숫자인 IP를 이해하고 기억하기 쉽도록 문자체계로 이름을 구성한 것.

구성

컴퓨터 이름과 최상위 도메인으로 구성되어 있다. (naver.com)

naver 나 google과 같은 명칭은 컴퓨터의 이름을 의미한다.

 

Name Server

인터넷을 통해서 트래픽을 정리하고 라우팅을 제공한다.

브라우저에 주소를 치면, 사용자가 찾고 싶어하는 웹사이트를 디코딩한다. 그리고 적합한 웹서버 트래픽으로 라우팅을 해준다.

네임서버는 이 과정 사이에서 어떤 웹사이트가 어디에 있는 지와 같은 정보들을 가지고 있다.

 

Sub Domain

메인 도메인을 중심으로 파생되어 생성되는 도메인

여러 사이트를 만들 수 있고, 연결하고자 할 때 독립저긍로 접근할 수 있도록 도와준다.

 

Redirection

 

I/O 재지향

파일이나 프로그램, 명령어 등의 출력을 다른 파일이나 프로그램, 명령어의 표준 입력으로 전송하는 작업

 

리눅스 쉘은 표준 입출력을 파일 형태로 열고 있기 때문에 파일 디스크럽터(파일에 접근할 때 사용하는 추상적인 값)을 할당받는다.

표준 입력(stdin) = 0 키보드

표준 출력(stdout) = 1 모니터

표준 에러(stderr) = 2 모니터  ex) rm rename2.txt 2> error.log 에러라고 하는 정보에 대한 리다이렉션이 된다.

                                       원래는 모니터에 출력되는 에러 메세지였을 것!

이때 0,1,2 가 파일 디스크럽터인데, 이를 이용해 재지향을 할 수 있다.

 

rm rename2.txt 1> result.txt 2> error.log  : 출력하고자 하는 결과가 있으면 1> 에 저장, 에러가 발생함녀 2>에 저장

 

사용법

<file

파일로부터 표준 입력을 받도록 redirection

ex ) cat .... 은 원래 키보드의 입력을 받지만 cat < file은 파일의 입력을 받도록 리다이렉션 되는 것 

 

> file

표준 출력을 파일로 redirection

파일이 없으면 새로 만들고, 파일이 있으면 덮어쓴다.

ex ) ls -l > result.txt : ls - l 의 데이터를 result.txt 파일에 출력하도록 한다.  즉 result.txt파일에 저장됨

 

ex ) head -n1 < linux.txt > one.txt

1. 표준 입력에 대한 리다이렉션  head -n1 < linux.txt

2. 그 처리 결과를 one.txt로 저장하도록 하는 것

 

>>file

표준 출력을 파일로  redirection

파일이 없으면 새로 만들거, 파일이 있으면 끝에 덧붙인다.(append)의 역할

파일을 결합할 수도 있다! 

ex) ls -al >> result.txt : result.txt 파일에 ls -al내용을 뒤에 덧댄다.

<< 여러개의 입력을 하나로 합친다! 

 

2>&1

표준에러를 표준 출력으로 redirection

표준 에러도 표준 출력의 자격으로 보내진다.

 

HTTP 리다이렉트(Redirect)

웹 상에서 특정 작업을 다시 지시하는 작업

 

1. 브라우저가 특정 페이지를 서버에 요청하면,

2. 서버는 해당 페이지가 아닌, 다른 URL로 가도록 브라우저에게 그 페이지를 반환한다.

3. 브라우저는 반환받은 페이지로 다시 서버에 요청하면서 그 페이지로 이동하게 된다.

 

리다이렉트는 HTTP 표준으로 정의되어 있다. 응답 상태코드 302 (클라이언트가 요청한 리소스가 Location 헤더에 주어진 URL에 일시적으로 이동되었음을 의미한다.) 를 보내고 헤더에 Location 값으로 리다이렉트 되어야 할 주소를 설정해 리턴한다.

 

예시 : 마이페이지를 조회하고 싶은데 로그인이 되어있지 않다면 마이페이지로 이동하지 않고 로그인 창으로 이동하는 것이 리다이렉트!

 

DB

RDBMS

관계형 데이터베이스를 수정하고 관리하는 SW

KEY와 VALUE로 이루어져 있으며 이들의 관계를 표현할 수 있다.

관계들은 일대일, 일대다, 다대다 등 다양한 관계의 표현이 가능하다.

특징

모든 데이터를 2차원으로 표현할 수 있다.

컬럼과 같은 형태로 다차원 표현이 가능하다.

탐색이 빠르고 사용하기에도 용이하다. 그리고 확장성이 뛰어나다는 장점이 있다.

 

SQL

SQL 문법의 종류 3가지

DDL

데이터 정의 언어 Data Definition Language

테이블이나 관계의 구조를 생성하는데 사용한다.

CREATE - 새로운 데이터베이스 관계 View, 인덱스, 저장 프로시저(특정한 로직을 처리하기만 하고 결과 값을 반환하지 않음) 만들기

예시  : CREATE TABLE 'Stories' ('story_id' varchar(50) NOT NULL, PRIMARY KEY ('story_id'))

DROP - 이미 존재하는 데이터베이스 관계, 뷰, 인덱스, 저장 프로시저를 삭제한다. 테이블 전체를 삭제한다.

예시 : DROP TABLE Stories

ALTER  - 이미 존재하는 데이터베이스 개체에 대한 변경, RENAME의 역할을 한다.

예시 : alter table Storiies add 컬럼명, 자료형(자료형길이) 제약조건

TRUNCATE - 관계에서 데이터를 제거한다.

삭제 후 용량이 줄어든다. 테이블이 삭제되지는 않는다. 삭제 후 되돌릴 수 없다.

TRUNCATE TABLE Stories;

 

*뷰(View)란 데이터베이스에 존재하는 가상 테이블. 실제 테이블처럼 행과 열을 가지고 있지만, 실제로 데이터를 저장하고 있지는 않다. 어려운 쿼리문을 조회해야 할 때 뷰를 사용해 필요한 필드만 조회할 수 있다.

 

DML

데이터 조작 언어 Data Manipulation Language

테이블에 데이터 검색, 삽입, 수정, 삭제하는 데 사용하며 SELECT, UPDATE, DELETE, INSERT 문 등이 있다.

SELECT - 검색(질의)

예시 : SELECT * FROM User

INSERT - 삽입(등록)

예시 : INSERT INTO User (userIdx) VALUES ("SUYEON")

UPDATE - 업데이트(수정)

예시 : update 테이블명 set 컬럼명="수정값" where="수정할 데이터의 primary key나 값"

DELETE - 삭제

원하는 데이터에만 삭제가 가능하다. 잘못 삭제한 경우에도 되돌릴 수 있다.

예시 : delete from 테이블명 where="삭제할 데이터의 primary key나 값"

 

DCL

데이터 제어 언어 Data Control Language

데이터의 사용 권한을 관리하는데 사용하며 GRANT, REVOKE 문 등이 있다.

GRANT - 특정 데이터베이스 사용자에게 특정 작업에 대한 수행 권한을 부여한다.

예시 : GRANT SELECT ON 학생 TO KIM

REVOKE - 특정 데이터베이스 사용자에게 특정 작업에 대한 수행 권한을 박탈 or 회수한다.

예시 : REVOKE SELECT UPDATE FROM KIM

 

권한

CONNECT - 데이터베이스 or 스키마에 연결하는 권한.

SELECT, INSERT, UPDATE, DELETE

USAGE - 스키마 또는 함수와 같은 DB 개체를 사용할 수 있는 권한

 

DB 용어

스키마

데이터 베이스의 구조와 제약조건에 관해 명세를 기술한 것

개체의 특성을 나타내는 속성(Attribute), 개체(Entity), 관계(Relation)에 대한 정의와 제약 조건을 기술한 것

특징

1) 데이터 사전에 저장된다. 데이터 항목들에 대한 정보를 지정한 중앙 저장소

2) 특정 데이터의 모델을 이용해서 만들어진다.

3) 시간에 따라 불변한다.

4) 데이터의 구조적 특성을 의미한다.

5) 인스턴스에 의해 규정된다.

 

종류

1, 개념스키마

데이터베이스의 전체적인 논리적 구조(조직체 전체의 입장)

특징

접근 권한 및 무결성 규칙에 관한 명세를 정의한다.

데이터베이스당 하나만 존재한다.

 

2. 내부스키마

물리적인 저장장치 입장에서 DB가 저장되는 방법을 기술한 것

구체적으로 스키마를 디스크 기억장치에 물리적으로 구현하기 위한 방법을 기술한 것. 주로 저장될 내부레코드 형식,물리적 순서, 인덱스의 유/무 등을 기술한다. 그러나 DB는 내부 스키마에 의해서 곧바로 구현되는 것이 아니라 내부 스키마에 기술한 내용에 따라 운영체제의 파일시스템에 의해 물리적 저장장치에 기록된다. 실무적으로 내부 스키마에 의해 DB의 실행 속도가 결정적으로 영향을 받기 떄문에 DB의 구축 목적에 따라 내부 스키마를 결정해야할 필요가 있다.

 

특징

  • 데이터베이스의 물리적 저장구조를 정의
  • 데이터의 실제 저장방법을 기술
  • 물리적인 저장장치와 밀접한 계층
  • 시스템 프로그래머나 시스템 설계자가 보는 관점의 스키마

3. 외부스키마 = 서브스키마  / 사용자 뷰

사용자나 응용 프로그래머가 개인의 입장에서 필요한 db의 논리적 구조를 정의

 

특징

  • 실세계에 존재하는 데이터들을 어떤 형식구조, 배치 화면을 통해 사용자에게 보여줄 것인지를 고민한다.
  • 전체 데이터 베이스의 한 논리적 부분이 서브스키마
  • 하나의 db에 여러개의 외부스키마가 존재가능 & 하나의 외부스키마를 여러 개의 응용프로그램이나 사용자가 공유할 수 있다.
  • 같은 db에 대해서도 외부 스키마가 있기 때문에 서로 다른 관점을 정의할 수 있다.
  • 일반 사용자는 질의어를 db에 쉽게 사용할 수 있다.

 

유일성과 최소성

유일성

하나의 키값으로 튜플을 유일하게 식별할 수 있는 성질

주민등록번호처럼 다른 데이터와 중복될 수 없고 반드시 구분될 수 있는 성질을 의미한다.

 

최소성

최소한의 속성들로만 키를 구성하는 성질

주민등록번호, 이름 나이로 튜플이 구성되어 있다면, 이름과 나이는 없어도 주민번호로 데이터를 구분할 수 있다. 이 경우 이름과 나이는 생략될 수 있고 고유의 구분 가능한 데이터만 남길 수 있다는 것이 최소성의 특징이다. 반면, 주민등록번호가 삭제되 채로 데이터를 바라보면 중복되는 데이터가 발생할 수 있어 최소성을 만족한다고 하기는 어렵다.

 

슈퍼키 : 각 행을 유일하게 식별할 수 있는 하나 혹은 그 이상의 속성들의 집합

주로 유일성을 만족하는 특성의 키를 의미한다.

대체키 : 후보키가 두개 이상인 경우 그중 하나를 기본키로 지정하고 남은 후보키를 대체키라고 한다.

후보키 : 각 행을 유일하게 식별할 수 있는 최소한의 속성들의 집합

유일성과 최소성을 모두 만족해야만 하는 키이다.

기본키 : 후보키들중에서 하나를 선택한 키로, 마찬가지로 최소성과 유일성을 만족하는 속성

기본키는 null값을 가질 수 없고, 중복되지 않는다.

외래키 : 테이블이 다른 테이블의 데이터를 참조하여 테이블의 관계를 연결하는 것이다. 데이터를 조회하기 쉽다.

 

복사했습니다!