CS

    스키마(Schema)

    스키마 스키마라는 단어는 형태 , 모양 , 모양 또는 계획 을 의미 하는 그리스어 skhēma 에서 유래했다. 스키마는 심리학에서 정보 범주와 정보 간의 관계를 구성하는 조직화된 사고 또는 행동 패턴을 설명하는 데 사용된다. 정의 데이터베이스의 구조와 제약조건에 대한 명세를 기술한 것을 의미한다. 데이터베이스에서 데이터 저장을 나타내는 추상적인 디자인을 의미한다. 특징 데이터 사전(= 시스템 카탈로그)에 저장 데이터베이스에 저장되어 있는 모든 데이터 개체들에 대한 정보를 유지, 관리하는 시스템 MySQL 에서는 information_schema 가 데이터 사전을 의미 MySQL 서버 내에 존재하는 DB 의 메타 정보(테이블, 칼럼, 인덱스 등의 스키마 정보)를 모아둔 곳이다. 대부분 읽기전용으로 제공되는..

    교착상태와 기아상태

    교착상태(Deadlock) 교착상태에 대해서 배워보자. 만약에, 프로세스 동기화에 대한 지식이 없다면 해당 링크를 통해서 배우고오자. 교착상태란 Wikipedia - 교착상태란 두 개 이상의 작업이 서로 상대방의 작업이 끝나기 만을 기다리고 있기 때문에 결과적으로 아무것도 완료되지 못하는 상태를 가리킨다. 예를 들어 하나의 사다리가 있고, 두 명의 사람이 각각 사다리의 위쪽과 아래쪽에 있다고 가정한다. 이때 아래에 있는 사람은 위로 올라 가려고 하고, 위에 있는 사람은 아래로 내려오려고 한다면, 두 사람은 서로 상대방이 사다리에서 비켜줄 때까지 하염없이 기다리고 있을 것이고 결과적으로 아무도 사다리를 내려오거나 올라가지 못하게 되듯이, 전산학에서 교착 상태란 다중 프로그래밍 환경에서 흔히 발생할 수 있는..

    TCP/IP Layer 와 Layered Architectures 에 대한 이해

    Layered Architectures Network System 의 Layered Architectures 와 OSI 7 Layer, TCP/IP Layer, TCP 의 연결 과정 및 종료 과정, PORT, IP, UDP 등에 대해서 배우 실 수 있습니다. 인터넷 프로토콜 스택 5 Layer Protocol Stack 다양한 계층의 프로토콜을 모두 합하여 프로토콜 스택이라고 한다. Protocol 프로토콜은 둘 이상의 통신 개체 간에 교환되는 메시지 포맷과 순서뿐 아니라, 메시지의 송수신과 다른 이벤트에 따른 행동들을 정의한다. Ex. 발표자(A)와 발표를 듣는 스터디원 분(O)들 사이에는 어떠한 프로토콜이 존재할까? 발표자 : (프로토콜 설명 중) 질문 있습니까? Others : 네 or 손을 드는 ..

    프로세스 동기화

    프로세스 동기화 프로세스 동기화(Process synchronization)란 프로세스 사이에 동기화를 하는 것을 말한다. 현재는 대부분 쓰레드 기준으로 문맥 교환(Context Switching) 이 일어나기 때문에 쓰레드 동기화(Thread synchronization)라고도 불린다. 프로세스 동기화는 여러 프로세스가 공유하는 자원의 일관성을 유지하는 것이다. 그럼 동기화(Synchronization)는 공유 자원의 일관성을 유지하는 것으로 볼 수 있다. 프로세스 동기화에 대한 시작은 경쟁 상태(Race Condition)와 임계 구역(Critical Section)에 대한 이해부터 시작된다. 경쟁 상태(Race Condition) 경쟁 상태(Race Condition)란 동시에 여러 개의 프로세스 ..

    Interrupt 와 Context Switching

    Interrupt 와 Context Switching System call 운영체제는 커널 모드와 사용자 모드로 나뉘어 구동된다. 운영체제에서 프로그램이 구동되는데 있어 파일을 읽어 오거나, 파일을 쓰거나, 혹은 화면에 메시지를 출력하는 등 많은 부분이 커널 모드를 사용한다. 시스템 콜은 이러한 커널 영역의 기능을 사용자 모드가 사용 가능하게, 즉 프로세스가 하드웨어에 직접 접근해서 필요한 기능을 사용할 수 있게 해준다. 시스템 콜은 프로세스 제어, 파일 조작, 장치 조작, 정보 유지보수, 통신과 보호 이렇게 다섯 가지 유형으로 나눌 수 있다. Interrupt 인터럽트는 CPU 가 프로그램을 실행하고 있을 때, I/O 장치 등에 의해 예외 상황이 발생하여 처리가 필요한 경우에 CPU 에게 처리하도록 알..

    프로세스와 쓰레드

    프로세스(Process)와 쓰레드(Thread) 프로세스와 쓰레드는 정말 중요한 개념이다. 프로세스와 쓰레드를 정확히 이해해야 스프링의 멀티 쓰레드 환경에서 왜 상태값을 갖도록 설계하면 안되는지에 대해 알 수 있다. 특히 프로세스의 메모리 영역(Stack, Heap, Data, Text)과 쓰레드가 프로세스와 공유하지 않는 영역(Stack) 에 대해서 제대로 알아야 한다. 프로그램 명령어, 코드 및 정적인 데이터의 묶음이며 아직 실행되지 않은 상태를 의미 프로세스 실행 중인 프로그램 운영체제로부터 시스템 자원을 할당 받는 작업의 단위 자, 먼저 Operating System 에서의 프로세스와 쓰레드가 어떤 것인지에 대해서 배우고, 그 개념을 자바와 스프링에 접목시켜서 현업에서 동시성 이슈를 어떤식으로 피..