세마포어(Semaphore)와 뮤텍스(Mutex) 동기화 도구인 세마포어(Semaphore)와 뮤텍스(Mutex) 공유된 자원에 여러 프로세스가 동시에 접근하면서 문제가 발생할 수 있다. 이러한 문제를 해결하기 위하여 공유된 자원의 데이터는 한 번에 하나의 프로세스만 접근할 수 있도록 제한을 두는 동기화 방식을 취해야한다. 동기화 도구에는 대표적으로 세마포어(Semaphore)와 뮤텍스(Mutex)가 있으며 이 두 방식은 모두 공유된 자원의 데이터를 여러 프로세스 또는 스레드가 접근하는 것을 막는 역할을 한다. 임계 영역(Critical Section) 멀티 프로세스 환경에서 둘 이상의 프로세스가 동시에 접근해서는 안되는 공유자원의 코드 영역이다. 즉 여러 프로세스가 동일한 자원을 동시에 참조하여 값이 ..
트랜잭션(Transaction) 트랜잭션(Transaction; TX) 란 ? 트랜잭션(Transaction)은 데이터 베이스 상태를 변환시키는 하나의 논리적 기능 수행 단위이다. 즉 한번에 수행되어야 할 일련의 연산을 의미한다(Unit Of Work in Database Language). * 데이터베이스의 상태를 변화시킨다는 의미 ? 질의어(SQL: SELECT, INSERT, DELETE, UPDATE)를 통해 데이터베이스에 접근하는 것을 의미한다. * 작업의 단위? 많은 SQL 명령문들을 사람이 정하는 기준에 따라 정하는 것을 의미한다. 예시) 사용자 A가 사용자 B에게 만원을 송금한다. [DB 작업] 1. 사용자 A의 계좌에서 만원을 차감한다: UPDATE 문을 사용해 사용자 A의 잔고를 변경한..
이진탐색트리(Binary Search Tree) 이진탐색 트리에서 원소 삭제 1. 키(Key)를 이용해서 노드를 찾는다. 해당 키의 노드가 없으면, 삭제할 것도 없다. 찾은 노드의 부모 노드도 알고 있어야 한다. 2. 찾은 노드를 제거하고도 이진탐색 트리 성질을 만족하도록 트리의 구조를 정리한다. 인터페이스의 설계 ✔ 입력 : 키(Key) ✔ 출력: 삭제한 경우 True, 해당 키의 노드가 없는 경우 False class BinarySearchTree: def remove(self, key): node, parent = self.lookup(key) if node: ... return True else: return False 이진탐색 트리 구조의 유지 삭제되는 노드가, 1. 말단(leaf) 노드인 경우..
PCB(Process Control Block) Process Metadata 프로세스는 컴퓨터에서 연속적으로 실행되고 있는 동적인 상태의 컴퓨터 프로그램, 즉 하나의 작업 단위이다. 프로세스는 여러가지 특징을 가지고 있는데 이러한 특징을 Process Metadata 라고 한다. 이 메타데이터는 프로세스가 생성되면 PCB(Process Control Block)에 저장된다. 이러한 메타 데이터를 통해 CPU는 각 프로세스를 구분할 수 있고, 이를 통해 프로세스가 여러 개일 때 전부 관리할 수 있다. 이렇게 프로세스 여러 개를 CPU 스케쥴링을 통해 관리하는 것을 Process Management 라고 한다. ※Process Metadata - process-id : 새로운 프로세스에 시스템이 할당해주는..
인덱스(Index) 인덱스(index) 란 ? 인덱스는 데이터베이스 테이블에 대한 검색 속도를 높여주는 자료구조이다. 만약 우리가 책에서 원하는 내용을 찾는다고 하면, 책의 모든 페이지를 찾아보는 것은 오랜 시간이 걸린다. 그렇기 때문에 책의 저자들은 책의 맨 앞 또는 맨 뒤에 색인을 추가하는데, 데이터베이스의 인덱스는 책의 색인과 같다. 특정 컬럼에 인덱스를 생성하면, 해당 컬럼의 데이터들을 정렬하여 별도의 메모리 공간에 데이터의 물리적 주소와 함께 저장된다. 즉 데이터베이스 테이블의 컬럼을 색인화 하게 되며 검색 시 해당 테이블의 레코드를 Full scan 하는 것이 아니라 색인화 되어있는 Index 파일을 검색하여 검색 속도를 빠르게 한다. 인덱스(Index)의 원리 인덱스를 해당 컬럼에 주게 되면..
SQL Injection(SQL 삽입 공격) SQL Injection(SQL 삽입 또는 SQL 주입)은 악의적인 사용자가 보안상의 취약점을 이용하여 클라이언트의 입력 값을 조작하여 서버의 데이터베이스를 공격할 수 있는 공격방식을 말한다. 이러한 Injection 계열의 취약점들은 테스트를 통해 발견하기는 힘들지만 스캐닝툴이나 코드 검증절차를 거치면 보통 쉽게 발견되기 때문에 탐지하기에는 쉬운편이다. 보안회사 Imperva 가 2012년에 발표한 내용을 따르면 월 평균 4회가량의 SQL Injection 공격이 일어난다고 한다. OWASP 에서도 수년 동안 Injection 기법이 보안 위협 1순위로 분류되었던 만큼 각별한 주의가 필요하다. 공격 방법 방법 1. 인증 우회 보통 아이디와 패스워드를 입력하는..
ARM(Advanced RISC Machine; 진보된 RISC 기기) ARM은 Advanced RISC Machine의 약자로 RISC라는 명령어 체계를 사용하는 CPU체계의 한 형식을 말한다. 저전력을 사용하도록 설계하여 ARM CPU는 모바일 시장에서 뚜렷한 강세를 보이며 주로 사물인터넷이나 모바일 안드로이드, 랩탑 등과 같은 임베디드 시스템에서 사용된다. ARM의 가장 큰 특징은 저전력과 단순화 된 CPU 명령체계(RISC 설계의 특징)이다. ISA(Instruction Set Architecture) 개발자들은 보통 high-level language로 코드를 작성한다. 하지만 컴퓨터가 이해하기 위해서는 어셈블러(high-level language → assembly language)와 컴파일러..
* 이전 포스트에 이어지는 내용입니다 [네트워크] HTTP & HTTPS 개요 HTTP(Hyper Text Transfer Protocol) : - No Data Encryption Implemented ! - Stateless system - As an "application layer protocol", HTTP remains focused on presenting the information, but cares.. daily-progress.tistory.com TLS/SSL Handshake 통신을 하는 브라우저와 웹 서버가 서로 암호화 통신을 시작할 수 있도록 신분을 확인하고 필요한 정보를 클라이언트와 서버가 주거니 받거니 하는 과정이 악수와 비슷하여 붙여진 이름이다. CA(Certificate..
- Total
- Today
- Yesterday
- 정렬
- 보험
- 연결리스트활용
- 리스트 복사
- 스터디
- 데이터베이스
- It
- 리스트
- 알고리즘
- 운영체제
- https
- 자바
- 프로세스 주소공간
- Greedy sort
- 이차 리스트
- 코드업 기초
- 자료구조와알고리즘 23강
- 파이썬
- CS.
- 리스트2
- CS
- SW
- 이진탐색
- 리스트함축
- 완전탐색
- 네트워크
- 프로그래머스강의
- 자료구조
- CS 스터디
- 프로그래머스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |