CS (23) 썸네일형 리스트형 DNS 동작원리 DNS 는 Domain Name System이다. DNS는 사람이 읽을 수 있는 도메인 이름을 머신이 읽을 수 있는 IP주소로 변환한다. 스마트폰이나 노트북부터 대규모 소매 웹 사이트의 컨텐츠를 서비스하는 서버에 이르기까지 인터넷상의 모든 컴퓨터는 숫자를 사용하여 서로를 찾고 통신한다. 이러한 숫자를 IP주소라고 한다. 웹 브라우저를 열고 웹 사이트로 이동할 때는 긴 숫자를 기억해 입력할 필요가 없다. 그 대신, example.com 과 같은 도메인 이름을 입력해도 원하는 웹 사이트로 갈 수 있다. Amazon Route 53 과 같은 DNS 서비스는 전 세계에 배포된 서비스로, example.com 과 같이 사람이 읽을 수 있는 이름을 192.0.2.1과 같은 숫자 IP주소로 변환하여 컴퓨터가 서로 통.. 교착상태 ( DeadLock ) OS 🌙 교착 상태란 프로세스들의 집합이 더 이상 진행을 못하고 영구적으로 블록되어 있는 상태로 정의된다. 교착 상태는 시스템 자원에 대한 경쟁 도중에 발생할 수도 있고 프로세스 간 통신 도중에 발생할 수도 있다. 집합 내의 한 프로세스가 특정 사건의 발생을 기다리며 대기하고 있고, 이 사건이 집합 내의 다른 블록된 프로세스에 의해 발생될 수 있을 때 이 프로세스의 집합은 교착상태가 된다. 교착 상태가 영구적인 이유는 기다리던 사건이 결코 발생하지 않기 때문이다. 교착 상태는 두 개 이상의 프로세스들이 서로 충돌되는 자원 요구를 할 때 발생한다. 교착상태( DeadLock 조건 ) 상호 배제 ( mutual exclusion ) 조건 한 순간에 한 프로세스만이 자원을 사용할 수 있다. 즉 한 프로세스에 의해 점유.. 뮤텍스(Mutex)와 세마포어(Semaphore)의 차이💁♂️ 뮤텍스 ( Mutex ) 뮤텍스란 MUTual EXclusion 으로 우리말로 해석할 경우 ' 상호 배제 ' 라는 뜻이다. Critical Section 을 가진 Thread들의 running time 이 서로 겹치지 않게, 각각 단독으로 실행되게 하는 기술이다. 만약 어느 Thread에서 Critical Section을 실행하고 있으면 다른 Thread들은 그 Critical Section에 접근할 수 없고 앞의 Thread가 Critical Section을 벗어나기를 기다려야 한다! - 공유된 자원의 데이터를 여러 스레드가 접근하는 것을 막는 것. - 다중 프로세스들의 공유 리소스에 대한 접근을 조율하기 위해 Synchronized 또는 lock 을 사용한다. - 뮤텍스 객체를 두 스레드가 동시에 사.. 프로세스 vs 스레드💻 프로그램 ( Program ) 어떤 작업을 위해 실행할 수 있는 파일을 의미한다. 프로세스 ( Process ) 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램을 의미한다. - 메모리에 올라와 실행되고 있는 프로그램의 인스턴스 ( 독립적인 개체 ) - 운영체제로부터 시스템 자원을 할당받는 작업의 단위 - 동적인 개념으로는 실행된 프로그램을 의미한다. 할당 받는 시스템 자원 - CPU 시간 - 운영되기 위해 필요한 주소 공간 - Code, Data, Stack, Heap 의 구조로 되어있는 독립된 메모리 영역 특징 - 프로세스는 각각 독립된 메모리 영역 ( Code, Data, Stack, Heap의 구조) 를 할당받는다. - 기본적으로 프로세스는 최소 1개의 스레드(메인 스레드)를 가지고 있다. - .. Fisher's Linear Discriminant Analysis Fisher's linear discriminant 는 데이터를 여러 변수들의 선형결합으로 표현하였을 때, 서로 다른 그룹을 잘 구분할 수 있게 해 주는 coefficient 를 찾는 방법이다. d차원 상의 데이터 집합을 선형 결합으로 표현하였을 때, 속한 클래스의 구분이 가장 용이한 1차원 공간으로 프로젝션하는 방법으로 데이터를 분석하는 기법이다. 1차원으로 프로젝션해야 하는 특성상 복잡하게 분산 된 데이터에 대한 구분이 용이하지 않은 단점이 있다. Index ( 인덱스 ) RDBMS에서 검색 속도를 높이기 위한 기술 데이터베이스에서 조회 및 검색을 더 빠르게 할 수 있는 방법/기술 혹은 이에 쓰이는 자료구조 자체를 의미하기도 한다. 자주 조회되는 Column 에 대한 Index Table 을 따로 만들어 SELECT 문이 들어왔을 때, Index 테이블에 있는 값들로 결과 값을 조회해 온다. 그래서 Index를 잘 사용한다면 "검색" 연산을 실행했을 때, 성능을 올릴 수 있게 된다. 테이블의 칼럼을 색인화한다. ( 마치 두꺼운 책의 목차와 같다고 생각하면 편하다. ) 데이터베이스 안의 레코드를 처음부터 풀스캔하지 않고, B+ Tree로 구성된 구조에서 Index 파일 검색으로 속도를 향상시키는 기술 B+ 트리 알고리즘 리프 노드에는 실제 데이터가 저장된다. 리프노드까지의 .. Transaction ( 트랜잭션 ) 데이터베이스의 상태를 변화시키기 위해 수행하는 작업 단위 상태 변화란 SQL질의어를 통해 DB에 접근하는 것을 말한다. ( SELECT, INSERT, DELETE, UPDATE ) 작업 단위란 많은 SQL 명령문들을 사람이 정하는 기준에 따라 정하는 것이다. 작업단위를 정의하는 것. 더보기 예시) 사용자 A가 사용자 B에게 만원을 송금한다. 이때 DB 작업 1. 사용자 A의 계좌에서 만원을 차감한다 : UPDATE 문을 사용해 사용자 A의 잔고를 변경 2. 사용자 B의 계좌에 만원을 추가한다 : UPDATE 문을 사용해 사용자 B의 잔고를 변경 현재 작업 단위 : 출금 UPDATE문 + 입금 UPDATE문 → 이를 통틀어 하나의 트랜잭션이라고 한다. - 위 두 쿼리문 모두 성공적으로 완료되어야만 "하나.. SQL vs NoSQL SQL ( 관계형 DB ) SQL을 사용하면 RDBMS에서 데이터를 저장, 수정, 삭제 및 검색 할 수 있음. 관계형 데이터베이스에는 핵심적인 두 가지 특징이 있다. 1. 데이터는 정해진 데이터 스키마에 따라 테이블에 저장된다. 2. 데이터는 관계를 통해 여러 테이블에 분산된다. 데이터는 테이블에 레코드로 저장되는데, 각 테이블마다 명확하게 정의된 구조가 있다. 해당 구조는 필드의 이름과 데이터 유형으로 정의된다. 따라서, 스키마를 준수하지 않은 레코드는 테이블에 추가할 수 없다. 즉 스키마를 수정하지 않는 이상은 정해진 구조에 맞는 레코드만 추가가 가능한 것이 특징이다. 하나의 테이블에서 중복 없이 하나의 데이터만을 관리하기 때문에 다른 테이블에서 부정확한 데이터를 다룰 위험이 없어지는 장점이 있다. .. 이전 1 2 3 다음