일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- softeer
- 코딩교육봉사
- kotlin
- C++
- 백준
- 백준알고리즘
- programmers
- SW봉사
- java
- 문제풀이
- SQL
- 코틀린
- 백준 알고리즘
- BFS
- 코딩봉사
- 회고
- 프로그래머스
- 스프링
- 1과목
- python
- 정보처리산업기사
- 공부일지
- 파이썬
- 데이터베이스
- 소프티어
- CJ UNIT
- MYSQL
- 알고리즘
- 자바
- 시나공
- Today
- Total
목록CS (12)
JIE0025
✅ 비관적 락 ?DB관리에서 사용하는 기술 중 하나이다. 충돌이 발생할 것 같으니 조치를 취하자. 간단하게 설명하면 어떤 이용자 A 가 데이터를 Read/Write할 때, 미리 락(Lock)을 걸어서 다른 사용자들은 데이터를 동시에 수정 할 수 없게 만드는 것이다. 모든 트랜잭션은 충돌이 발생한다는 것을 가정하고, 우선 락을 거는 방법DB의 Lock 기능을 이용한다. 트랜잭션을 커밋하기 전, 데이터 수정 시점에 트랙잭션 충돌을 감지할 수 있다.Lock획득까지 트랜잭션이 대기하기 때문에 Timeout을 설정할 수 있다. ✅ 언제 비관적 락을 사용하는가?- 같은 요청에 대한 충돌 가능성이 높을 때 사용한다. - 데이터의 무결성이 중요할때 사용한다. ✍️ Example 01은행의 계좌 이체 시스템을 생각해보자..
강민철 - 혼자 공부하는 컴퓨터구조 운영체제 책을 읽으며 개인적으로 정리한 내용입니다. 목차 교착 상태란 식사하는 철학자 문제 자원할당 그래프 교착 상태 발생 조건 교착 상태 해결 방법 교착 상태 예방 교착 상태 회피 교착 상태 검출 후 회복 ✅ 교착 상태란 2개 이상의 프로세스가 서로 갖고 있는 자원을 서로 기다리는 상황이 될 수 있다. 이때 어떤 프로세스도 더 이상 진행할 수 없는 상태가 되고, 이것이 교착상태이다. ⏺ 식사하는 철학자 문제 철학자 5명이 동그란 식탁에 앉아있다. 식사는 두개의 포크를 이용해야 먹을 수 있다. 철학자의 식사 순서 왼쪽 포크가 사용가능하면 집어든다. 오른쪽 포크가 사용가능하면 집어든다 두 포크를 모두 집어들면 특정시간동안 식사를 한다. 식사가 끝나면 오른쪽 포크를 내려놓..
강민철 - 혼자 공부하는 컴퓨터구조 운영체제 책을 읽으며 개인적으로 정리한 내용입니다. 목차 동기화란 동기화의 의미 생산자와 소비자 문제 공유 자원과 임계 구역 동기화기법 뮤텍스 락 세마포 모니터 ✅ 동기화란 프로세스는 동시에 실행되면서도, 서로 협력하며 영향을 준다. 이때 실행 순서와 자원의 일관성을 보장해야해서 "동기화"되어야한다. ⏺ 동기화의 의미 프로세스들 사이의 수행 시기를 맞추는 것 1) 실행 순서 제어 - 프로세스를 올바른 순서대로 실행하기 만약 Writer와 Reader 프로세스가 동시에 실행되고 있다. 이때 Book.txt 에 Writer가 어떤값을 저장하려 하는데 만약 Reader가 먼저 읽어버리면 안된다. Book.txt에 값이 존재한다 는 조건이 만족되어야만 Reader는 실행을 이..
강민철 - 혼자 공부하는 컴퓨터구조 운영체제 책을 읽으며 개인적으로 정리한 내용입니다. 목차 CPU 스케줄링 개요 프로세스 우선순위 스케줄링 큐 선점형과 비선점형 스케줄링 CPU 스케줄링 알고리즘 알고리즘의 종류 ✅ CPU 스케줄링 개요 모든 프로세스는 먼저 CPU를 사용하고 싶어한다. 프로세스들에게 공정하고 합리적으로 CPU자원을 할당하기 위해 운영체제(OS)가 CPU를 배분하는데 이것이 CPU스케줄링이다. ⏺ 프로세스 우선순위 프로세스에는 우선순위가 존재한다. OS는 우선순위가 높은 프로세스를 먼저 처리해준다. 우선순위가 높은 프로세스 입출력 작업이 많은 프로세스 입출력 작업이 많은 프로세스는 먼저 실행하면 더 효율적이다. 🤔 왜? 대부분의 프로세스는 CPU와 입출력장치를 모두 사용하는데, 이때 ..
강민철 - 혼자 공부하는 컴퓨터구조 운영체제 책을 읽으며 개인적으로 정리한 내용입니다. 목차 프로세스 개요 프로세스 직접 확인하기 프로세스 제어 블록 문맥 교환 프로세스의 메모리 영역 프로세스 상태와 계층 구조 프로세스 상태 프로세스 계층 구조 프로세스 생성 기법 스레드 프로세스와 스레드 멀티프로세스와 멀티스레드 ✅ 프로세스 개요 프로세스 : 실행중인 프로그램 보조기억장치에 저장된 프로그램을 메모리에 적재하고, 실행하면 프로그램은 프로세스가 된다. (프로세스를 생성한다고 표현) ⏺ 프로세스 직접 확인하기 컴퓨터 부팅 순간부터 수많은 프로세스가 실행된다. 윈도우의 작업관리자나 유닉스계열의 ps 명령어로 확인 가능하다 ✔️ 포그라운드 프로세스 (사용자가 볼 수 있는) 앞에서 실행되는 프로세스 ✔️ 백그라운드..
강민철 - 혼자 공부하는 컴퓨터구조 운영체제 책을 읽으며 개인적으로 정리한 내용입니다. CPU의 작동 원리 ALU와 제어장치 ALU 제어장치 레지스터 반드시 알아야 할 레지스터 특정 레지스터를 이용한 주소 지정 방식 (1) : 스택 주소 지정 방식 특정 레지스터를 이용한 주소 지정 방식 (2) : 변위 주소 지정 방식 상용화된 CPU 속 레지스터 및 주소 지정 방식 명령어 사이클과 인터럽트 명령어 사이클 인터럽트 예외의 종류 ✅ ALU와 제어장치 CPU는 메모리에 저장된 명령어를 읽고, 해석하고, 실행하는 장치였다. CPU 내부에는 ALU (계산담당), 제어장치 (명령어읽고해석), 레지스터(작은임시저장장치)가 존재했다. ⏺ ALU ALU는 계산하는 부품이다. 따라서 피연산자와 연산자 정보가 필요하다. 레..
강민철 - 혼자 공부하는 컴퓨터구조 운영체제 책을 읽으며 개인적으로 정리한 내용입니다. 목차 소스코드와 명령어 고급 언어와 저급 언어 컴파일 언어와 인터프리터 언어 목적파일 vs 실행파일 명령어의 구조 연산 코드와 오퍼랜드 주소 지정 방식 ✅ 소스코드와 명령어 우리가 작성한 소스코드는 컴퓨터 내부에서 명령어로 변환된다. 프로그래밍 언어는 어떻게 명령어가 되어 실행될까? ⏺ 고급 언어와 저급 언어 고급 언어 : 사람을 위한 언어 -대부분의 프로그래밍 언어 저급 언어 : 컴퓨터가 이해하고 실행 할 수 있는 언어 우리가 고급언어로 작성한 코드는 반드시 저급언어(명령어)로 변환되어야한다. 저급언어는 기계어, 어셈블리어가 있다. 기계어 : 0과 1의 명령어 비트로 이루어진 언어 컴퓨터만을 위해 만들어진 언어라서 ..
강민철 - 혼자 공부하는 컴퓨터구조 운영체제 책을 읽으며 개인적으로 정리한 내용입니다. 목차 0과 1로 숫자를 표현하는 방법 0과 1로 문자를 표현하는 방법 ✅ 0과 1로 숫자를 표현하는 방법 컴퓨터는 0과 1만 이해할 수 있다. 그렇다면 8, 100 등의 숫자는 어떻게 인식하는걸까? ⏺ 정보 단위 비트 : 컴퓨터가 이해하는 가장 작은 정보 단위 (0과 1을 나타냄) 바이트 : 8개의 비트를 묶은 단위 킬로바이트, 메가바이트, 기가바이트, 테라바이트는 이전 단위를1000개를 묶어 표현한 단위이다. ⏺ 2진법 0과 1로 모든 숫자를 표현하는 방법 숫자가 1을 넘어가는 시점에 자리올림을 한다. ((십진법은 0~9까지 표현하고, 9를 넘어가는 시점에 올림을 하는것)) 컴퓨터에게 십진수를 알려주기 위해 - 십진..
1. 컴퓨터는 데이터와 명령어를 이해한다. 1+ 2 = 3 (데이터) 1과 (데이터) 2를 : 더해라 (명령어) 2. 컴퓨터의 4가지 부품 중앙처리장치 CPU 주기억장치 Main Memory 보조기억장치 입출력장치 I/O Device ✅ 큰 그림 그리기 메인보드가 존재하고, 메인보드 내부에 시스템 버스가 있다. CPU, 메모리는 메인보드 내부에 존재하며, 시스템버스와 연결되어 있다. 보조기억장치와 입출력장치는 메인보드 외부에 존재하며, 시스템버스와 연결되어있다. CPU에는 ALU(산술 논리 연산 장치) , 제어장치 , 레지스터가 존재한다. 1. 메모리 컴퓨터가 이해하는 정보는 명령어, 데이터인데 메모리는 현재 실행되는 명령어와 데이터가 저장되는 곳이다. ((프로그램 실행을 위해선 반드시 메모리에 저장되어..
Inflearn 김영한 - 모든 개발자를 위한 HTTP 웹 기본 지식 강의 커리큘럼을 학습 후 개인적으로 공부한 내용입니다. HTTP 기본 모든 것이 HTTP 클라이언트 서버 구조 Stateful, Stateless 비 연결성(connectionless) HTTP 메시지 ✅ 모든 것이 HTTP HTTP (HyperText Transfer Protocol) :원래는 html과 같은 hypertext를 전송하기 위해 만들어진 프로토콜 모든 것을 HTTP프로토콜에 담아서 전송을 한다. 통신하는 거의 모든 형태의 데이터를 HTTP를 사용해서 전송한다! ⏺ HTTP 역사 버젼에 따라 HTTP/1.1에 대부분의 기능이 들어있고, 2와 3은 성능개선에 초점이 맞춰져 있다. 우리가 계속 보게될 버젼은 1997년의 HT..