From 49bc52228253b9f814249e255e71c3f062bc3a7e Mon Sep 17 00:00:00 2001 From: Jonghyeok Lee Date: Mon, 18 Mar 2024 05:16:20 +0900 Subject: [PATCH 1/2] no message --- ...44\355\212\270\354\233\214\355\201\254.md" | 40 +++++++++++++ ...60\353\262\240\354\235\264\354\212\244.md" | 36 +++++++++++ ...64\354\230\201\354\262\264\354\240\234.md" | 24 ++++++++ ...0\355\204\260 \352\265\254\354\241\260.md" | 59 +++++++++++++++++++ 4 files changed, 159 insertions(+) create mode 100644 "study/endb1228/8\354\243\274\354\260\250/\353\204\244\355\212\270\354\233\214\355\201\254.md" create mode 100644 "study/endb1228/8\354\243\274\354\260\250/\353\215\260\354\235\264\355\204\260\353\262\240\354\235\264\354\212\244.md" create mode 100644 "study/endb1228/8\354\243\274\354\260\250/\354\232\264\354\230\201\354\262\264\354\240\234.md" create mode 100644 "study/endb1228/8\354\243\274\354\260\250/\354\273\264\355\223\250\355\204\260 \352\265\254\354\241\260.md" diff --git "a/study/endb1228/8\354\243\274\354\260\250/\353\204\244\355\212\270\354\233\214\355\201\254.md" "b/study/endb1228/8\354\243\274\354\260\250/\353\204\244\355\212\270\354\233\214\355\201\254.md" new file mode 100644 index 0000000..f83b636 --- /dev/null +++ "b/study/endb1228/8\354\243\274\354\260\250/\353\204\244\355\212\270\354\233\214\355\201\254.md" @@ -0,0 +1,40 @@ +# 네트워크 + +## RESTful이란 무엇이며, 이것에 대해서 아는대로 설명해보세요. + +--- + +### REST이란? + +REST (**RE**presentational **S**tate **T**ransfer) + +www의 탄생 이후 서버-클라이언트의 사이에서 HTTP로 통신할 때, +균일한 인터페이스를 제공하도록 하기 위해 생겨난 아키텍처 스타일. + +### REST의 특징 + +1. Client-Server architecture + - HTTP를 통해 클라이언트와 서버가 통신하는 형태를 띰. + +2. Statelessness + - 서버는 클라이언트의 상태를 저장하지 않음으로써 서버 부하를 줄여 성능을 향상시킴. + +3. Cacheability + - 클라이언트는 응답을 캐싱하여 성능을 향상시킬 수 있음. + +4. Layered system + - 클라이언트와 서버는 계층적으로 분리되어 있음. + - 클라이언트와 서버는 서로 직접 연결되어 있는지, 중간자를 통해 연결되어 있는지 알지 못 함. + - 클라이언트와 서버 둘 중 하나가 업데이트 되더라도 나머지 하나도 업데이트될 필요는 없음. + +5. Uniform interface + - 통일된 인터페이스를 제공함. + - 다음과 같은 네 가지 제약 조건이 있음. + 1) URI를 통해 리소스를 식별함. + 2) 클라이언트가 데이터를 가공하기에 충분하도록 리소스를 제공해야 함. + 3) 요청/응답을 어떻게 처리해야할지 명확하게 명시해야 함. + 4) HATEOAS: 서버가 응답을 내릴 때, 이후에 수행할 수 있는 동작에 대한 API 목록을 내려주어야 함. + 즉, API의 책임을 전적으로 서버에 위임함. + +6. Code on demand (optional) + - 필요한 경우, 서버는 클라이언트가 실행 가능한 코드를 내려줄 수 있음. diff --git "a/study/endb1228/8\354\243\274\354\260\250/\353\215\260\354\235\264\355\204\260\353\262\240\354\235\264\354\212\244.md" "b/study/endb1228/8\354\243\274\354\260\250/\353\215\260\354\235\264\355\204\260\353\262\240\354\235\264\354\212\244.md" new file mode 100644 index 0000000..6deb5e5 --- /dev/null +++ "b/study/endb1228/8\354\243\274\354\260\250/\353\215\260\354\235\264\355\204\260\353\262\240\354\235\264\354\212\244.md" @@ -0,0 +1,36 @@ +# 데이터베이스 + +## Redis에 대해서, 그리고 Redis와 Memcached의 차이에 대해서 설명해주세요. + +--- + +### Redis란? + +******Remote dictionary server** + +오픈소스 인메모리 key-value DB로, 가장 유명한 NoSQL DB중 하나이다. + +인메모리 DB의 빠른 속도로 세션이나 자주 접근하는 데이터의 캐싱에 사용한다. + +### Redis와 Memcached의 차이 + +Redis와 Memcached는 모두 오픈소스 인메모리 DB로 동일하지만, 다음과 같은 몇 가지 차이점이 있다. + +1. 스레드 + - Redis는 싱글스레드인 반면, Memcached는 멀티스레드를 지원한다. + +2. 백업 및 복구 + - Memcached는 서드파티 툴을 이용해 백업/복구를 수행하나, Redis는 AOF와 같은 방식으로 해당 기능들을 제공한다. + +3. 복제 + - Redis는 DB 복제 기능 역시 기본적으로 제공한다. + +4. 자료구조 + - Redis는 List, set, hash 등의 자료구조도 지원한다. + - Memcached는 각 value는 1MB의 크기 제한이 있으나, Redis는 최대 512MB까지 가능하다. + +5. 트랜잭션 + - Redis는 트랜잭션을 지원한다. + +6. 메시징 + - Redis는 pub/sub 메시징을 지원한다.**** diff --git "a/study/endb1228/8\354\243\274\354\260\250/\354\232\264\354\230\201\354\262\264\354\240\234.md" "b/study/endb1228/8\354\243\274\354\260\250/\354\232\264\354\230\201\354\262\264\354\240\234.md" new file mode 100644 index 0000000..86d4009 --- /dev/null +++ "b/study/endb1228/8\354\243\274\354\260\250/\354\232\264\354\230\201\354\262\264\354\240\234.md" @@ -0,0 +1,24 @@ +# 운영체제 + +## 세마포어와 뮤텍스의 차이에 대해 설명해보세요. + +--- + +### 뮤텍스란? + +**Mut**ual **Ex**clusion + +프로세스가 리소스에 접근할 때, 해당 리소스에 락을 걸어 다른 프로세스가 접근하지 못 하도록 하는 방법. +락을 건 프로세스가 락을 해제하기 전까지는 다른 프로세스가 접근할 수도, 락을 해제할 수도 없다. + +### 세마포어란? + +**Semaphore** + +리소스에 카운터를 설정하고 카운터 수만큼의 프로세스만 접근할 수 있도록 하는 방법. +세마포어는 해당 리소스에 대해`wait()`, `signal()` 함수로 접근을 제어한다. + +어떤 프로세스에서 `wait()`함수를 실행하면 다른 프로세스에서 `signal()`함수가 실행될 때까지 대기한다. +이는 락을 설정/해제하는 주체가 하나의 프로세스인 것과 차이가 있다. + +카운터가 1인 바이너리 세마포어는 뮤텍스와 유사한 역할을 할 수 있다. diff --git "a/study/endb1228/8\354\243\274\354\260\250/\354\273\264\355\223\250\355\204\260 \352\265\254\354\241\260.md" "b/study/endb1228/8\354\243\274\354\260\250/\354\273\264\355\223\250\355\204\260 \352\265\254\354\241\260.md" new file mode 100644 index 0000000..9060492 --- /dev/null +++ "b/study/endb1228/8\354\243\274\354\260\250/\354\273\264\355\223\250\355\204\260 \352\265\254\354\241\260.md" @@ -0,0 +1,59 @@ +# 컴퓨터 구조 + +## 컴퓨터의 구성 요소는? + +--- + +### 컴퓨터의 구성 요소 + +1. 전원 공급 장치 + +2. 메인보드 + - CPU, 메모리 등을 연결하는 인터페이스를 제공. + - 전원 공급 장치로부터 전력을 공급받아 다른 장치에 전달. + - BIOS가 저장되는 공간. + +3. 중앙 처리 장치 (CPU) + - 기계어로 된 명령어를 실행/처리하는 핵심적인 제어 장치. + - 크게 다음과 같이 3가지로 구성된다. + 1. 제어 장치: 명령어를 해석하고 처리 순서를 결정한다. + 2. 산술 논리 장치: 산술/논리 연산을 수행한다. + 3. 레지스터: 데이터를 저장하는 공간이다. 메모리 계층에서 최상단에 위치해 있다. + +4. 입출력 장치 + +5. 주기억 장치 + - RAM (Random Access Memory) + - CPU가 작업할 수 있도록 하는 장치. + - 휘발성. + - random access는 어떤 임의의 주소에 접근하더라도 거의 동일한 시간에 접근이 가능하다는 의미임. + - ROM (Read Only Memory) + - 저장된 데이터를 읽는 것만 가능한 장치. + - 비휘발성. + - ROM 라이터를 통해 데이터 지우고 새로 저장할 수 있음. + +6. 보조 기억 장치 + - SSD, HDD + +### 레지스터의 종류 +- 데이터 레지스터 +- 부동소수점 레지스터 +- 상수 레지스터 +- 주소 레지스터 +- 범용 레지스터 +- 특수 레지스터 +... + +### CMOS? BIOS? UEFI? + +CMOS는 메인보드에 장착되어 메인보드에 연결된 장치들에 대한 정보 등을 저장하는 공간이다. +부팅에 대한 설정이나 오버클럭, BIOS/UEFI에서 설정한 값들을 저장한다. +휘발성 메모리이나, 자체 배터리를 내장하고 있어 배터리가 닳기 전까지는 데이터를 잃지 않는다. + +BIOS는 BIOS ROM이라는 곳에 저장되어 메인보드에 장착된다. +컴퓨터의 펌웨어로 볼 수 있다. + +현대의 컴퓨터는 대부분 BIOS가 아닌 UEFI를 사용하지만, 관습적으로 BIOS라는 용어를 사용한다. + +MBR, GPT, ... + From aa48f97a6eac4bd3cafa2547a50a3411a20d4a7b Mon Sep 17 00:00:00 2001 From: Jonghyeok Lee Date: Mon, 18 Mar 2024 05:16:41 +0900 Subject: [PATCH 2/2] no message --- ...44\355\212\270\354\233\214\355\201\254.md" | 71 +++++++++++++++++++ ...60\353\262\240\354\235\264\354\212\244.md" | 23 ++++++ ...64\354\230\201\354\262\264\354\240\234.md" | 35 +++++++++ ...0\355\204\260 \352\265\254\354\241\260.md" | 23 ++++++ 4 files changed, 152 insertions(+) create mode 100644 "study/endb1228/9\354\243\274\354\260\250/\353\204\244\355\212\270\354\233\214\355\201\254.md" create mode 100644 "study/endb1228/9\354\243\274\354\260\250/\353\215\260\354\235\264\355\204\260\353\262\240\354\235\264\354\212\244.md" create mode 100644 "study/endb1228/9\354\243\274\354\260\250/\354\232\264\354\230\201\354\262\264\354\240\234.md" create mode 100644 "study/endb1228/9\354\243\274\354\260\250/\354\273\264\355\223\250\355\204\260 \352\265\254\354\241\260.md" diff --git "a/study/endb1228/9\354\243\274\354\260\250/\353\204\244\355\212\270\354\233\214\355\201\254.md" "b/study/endb1228/9\354\243\274\354\260\250/\353\204\244\355\212\270\354\233\214\355\201\254.md" new file mode 100644 index 0000000..f57ee87 --- /dev/null +++ "b/study/endb1228/9\354\243\274\354\260\250/\353\204\244\355\212\270\354\233\214\355\201\254.md" @@ -0,0 +1,71 @@ +# 네트워크 + +## CORS란 무엇이며 이것에 대해 설명해보세요. + +--- + +### CORS란? + +CORS (**C**ross-**O**rigin **R**esource **S**haring) + +교차 출처 리소스 공유 + +### 출처(Origin)? + +출처는 `[protocol]://[host]:[port]/XXXX` +에서 `[protocol]://[host]:[port]`부분까지를 가리킨다. + +즉, **출처가 같다**는 것은 `[protocol]://[host]:[port]`까지가 동일하다는 것과 같은 의미이다. + +### SOP란? + +SOP (**S**ame **O**rigin **P**olicy) + +동일 출처 정책은 javascript 코드 상에서 같은 출처에서만 접근할 수 있도록 브라우저에서 제공하는 기본 정책이다. + +### SOP 예외 사항 +- `