We will find a way, we always have.

-interstellar

Computer Science 51

[DB] 트랜잭션

트랜잭션 이해 트랜잭션 - 개념 이해 트랜잭션은 데이터베이스의 작업 단위이다. ACID 트랜잭션이 안전하게 수행된다는 것을 보장하기 위해서는 ACID가 만족해야 한다. Atomicity(원자성): 설정된 트랜잭션 범위 안의 내용들이 마치 하나의 작업처럼 모두 성공하거나 모두 실패해야 한다. Consistency(일관성): 모든 트랜잭션은 일관성 있는 DB 상태를 유지해야 한다. 트랜잭션은 DB에서 정한 무결성 제약 조건을 항상 만족해야 한다. Isolation(독립성): 여러 트랜잭션이 있을 때, 각각의 트랜잭션은 다른 트랜잭션의 연산에 끼어들지 못하고 독립적이다. Durability(영구성): 트랜잭션이 성공했다면 그 결과가 항상 기록되어야 한다. 문제가 발생하여도 DB 로그 등을 사용해서 성공한 트랜..

[OS] IPC (Inter Process Communication)

IPC (Inter Process Communication) IPC는 Inter Process Communication의 약자로 프로세스 간의 통신을 의미한다. 프로세스는 각각 독립적으로 실행되기 때문에 이들간의 통신은 커널 영역에서 IPC 설비를 이용해야 한다. 반대로 스레드는 다른 스레드들과 메모리공간과 자원을 공유하기에 프로세스 통신보다 구현이 쉽다. IPC 종류 파이프 Pipe 초기 UNIX 시스템의 IPC 기법으로 메시지 전달 방식의 일종 파일 I/O를 통해 프로세스 간 데이터를 주고 받는다. FIFO 구조를 갖는다. 파이프 생성 시 두 개의 파일 디스크립터(read, write) 가 return 된다. 파이프는 두 개의 프로세스에 대해 단방향 통신을 지원한다. 통신을 위한 메모리공간(버퍼)를 ..

[네트워크] HTTP 응답코드

HTTP 응답 코드 HTTP 응답 코드는 클라이언트의 요청에 대한 서버에서 반환되는 코드를 말한다. 응답 코드를 통해서 요청 결과에 대한 정보를 알 수 있다. 응답 코드는 5개의 분류로 구분된다. 1xx (정보 전달) : 1로 시작하는 응답코드는 서버가 요청을 받았고, 클라이언트는 작업을 진행하라는 의미. HTTP/1.0 이후 거의 쓰이지 않는다. 2xx (성공) : 요청이 서버에서 정상적으로 수신되었음을 나타낸다. 200 OK : 요청이 성공했음을 나타내는 응답 코드. 201 Created : 요청이 성공했고, 자원이 생성되었음을 나타내는 응답 코드. 주로 POST, PUT 요청에 대한 결과. 202 Accepted : 요청은 성공했으나, 서버가 아직 요청을 완료하지 못함. 3xx (리다이렉션) : 클..

[DB] 뷰

뷰 (View) 물리적인 테이블을 근거한 논리적인 가상 테이블이다. 테이블에는 데이터가 있지만 뷰에는 데이터가 없고 SQL만 저장되어 있다. 조인문 사용의 최소화로 사용상의 편의성을 최대화 한다. 뷰 사용시 장단점 장점 논리적 데이터 독립성을 제공한다. 동일 데이터에 대해 동시에 여러 사용자의 상이한 응용이나 요구를 지원한다. 복잡하고 긴 쿼리문의 접근을 단순화시킨다. 접근 제어를 통한 자동 보안을 제공한다. 단점 독립적인 인덱스를 가질 수 없다. ALTER VIEW 문을 사용할 수 없다. 즉, 뷰의 정의를 변경할 수 없다. 뷰로 구성된 내용에 대한 삽입, 갱신, 연산에 제약이 따른다. 뷰 문법 뷰 정의문 --문법-- CREATE VIEW 뷰이름[(속성이름[,속성이름])]AS SELECT문; --고객 테..

[데이터베이스] 정규화 (이상현상, 함수적 종속성, 1NF, 2NF, 3NF, BCNF)

DB 정규화 (Normalization) 데이터 중복과 삽입, 수정, 이상 현상을 최소화하기 위해 일련의 정규형에 따라 관계형 DB를 구성하는 과정 제일 처음 초기 테이블이 있고 순차적으로 정규형을 만족시키도록 테이블 구조를 조정하는 과정 정규형(normal form, NF)이란 정규화 되기 위해 준수해야하는 규칙 1NF 부터 BCNF 까지는 함수적 종속성과 키(Key)만으로 정의되는 정규화 일반적으로 3NF까지 도달하면 정규화 성립 이상현상 (Anomaly) 이상현상이란 데이터 중복으로 인한 부작용을 말한다. 삽입 이상 (Insertion Anomaly): 데이터를 삽입하는데 불필요한 속성도 함께 추가해야하는 경우 기본키가 {Student_id, Course_id} 인 경우 Course를 수강하지 않는..

[네트워크] TCP와 UDP

TCP와 UDPTCP와 UDP는 OSI 7계층 중 전송 계층에서 사용되는 프로토콜로 포트 번호로 패킷을 전달하는 애플리케이션을 식별한다. TCPTCP(Transmission Control Protocol)는 데이터를 세그먼트(Segment) 단위로 쪼개어 신뢰성을 기반한 통신을 제공한다. TCP의 헤더TCP의 헤더 크기는 최저 20바이트로, 송수신지의 번호 뿐만 아니라 데이터 검증 및 순서 확인을 위한 정보등을 포함하고 있다. 송신지/수신지 포트 번호 UDP의 포트 번호와 마찬가지로 애플리케이션의 식별에 사용되는 숫자이다. 시퀀스 번호 시퀀스 번호는 TCP 세그먼트를 올바른 순서로 정렬하기 위해 사용되는 필드이다. 송신 측 단말은 애플리케이션에서 받은 데이터의 각 바이트에 대해 초기 시퀀스 번호(ISN,..

[OS] Introduction to Oprerating Systems

운영체제 Operating System 운영체제는 H/W 위에 설치되어 사용자 혹은 S/W 와 연결시켜주는 역할을 한다. OS의 역할 프로세서, 기억장치, I/O 등을 효율적으로 관리 사용자 및 OS 자신의 보호 프로세스, 파일, 메시지 관리 OS의 주 역할은 자원을 효율적으로 관리하는 것이다. 이때 효율적이란 형평성을 고려하고 성능을 최적화 한다는 의미이다. OS의 분류 동시 작업 가능 여부 단일 작업 (Single Tasking): 하나의 프로그램(프로세스)만 실행이 가능하고, 하나가 끝날 때까지 다른 작업은 wait 상태에 있다. ex) MS-DOS 다중 작업 (Multi Tasking): 동시에 두 개 이상의 프로그램(프로세스) 실행이 가능하고, 명령이 끝나기 전에 다른 명령 수행이 가능하다. e..

[네트워크] 네트워크 구성

네트워크 형태 (LAN, MAN, WAN) 네트워크는 거리와 크기에 따라 통신망을 구분한다. LAN(Local Area Network) (근거리 네트워크)은 범위가 건물 안이나 특정 지역인 네트워크로 유선 케이블, 적외선 링크, 무선 송수신기등을 이용하여 통신한다. 집이나 빌딩 안에 있는 사무실 등 지리적으로 제한된 곳에서 컴퓨터와 프린터, 스캐너 등을 연결할 수 있는 네트워크가 LAN이다. MAN(Metropolitan Area Network) 은 LAN보다는 더 넓은 범위의 네트워크이다. 도시와 도시를 연결해주고 ISP(인터넷 서비스 제공 업체) 역할을 수행할 수 있다. 한국의 ISP는 SK telecom, LG U+, KT 가 있다. WAN(World Area Network) (광역 네트워크)는 L..

[네트워크] What is Network?

네트워크란? 네트워크의 사전적 정의는 '모뎀이나 LAN, 케이블, 무선 매체 등 통신 설비를 갖춘 컴퓨터로 서로 연결하는 조직이나 체계, 통신망'이다. 즉 통신 설비로 두 대 이상의 컴퓨터를 서로 연결한 것을 말한다. 조금 추상화 해보면 네트워크란 노드(Node)와 링크(Link)가 서로 연결되어 있으며 서로 정보나 데이터를 공유하는 집합을 말하는 것이다. 여기서 노드는 서버, 라우터, 스위치 등과 같은 네트워크 장치이고, 이들을 연결시키는 것은 유무선 링크이다. 그럼 컴퓨터들은 어떻게 정보나 데이터를 주고 받을까? 컴퓨터간 데이터를 주고 받을 때는 데이터를 패킷(Packet)단위로 쪼개서 주고 받는다. 큰 그림을 퍼즐조각처럼 쪼개서 옮기는 것처럼 용량이 큰 데이터들을 패킷으로 분할하여 전송한다. 만약 ..