Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
119 changes: 116 additions & 3 deletions CS/Development/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
- [REST API](#REST-API)
- [MVC 패턴](#MVC-Pattern)
- [쿠키와 세션](#Cookie-vs-Session)
- [캐시](#캐시(Cache))

- [캐시](#캐시)
- [컴퓨터 구성 요소](#컴퓨터-구성-요소)


[Up](#part-1-1-Development) / [back](https://github.com/codenee/CS-Study)
Expand Down Expand Up @@ -192,7 +192,7 @@ Hyper Text Transfer Protocol
* 만료기간을 정할 수 있지만, 브라우저가 종료되면 만료기간에 상관없이 삭제된다.


## 캐시(Cache)
## 캐시
캐시는 웹페이지 요소를 저장하기 위한 임시 저장소이고,쿠키와 세션은 정보를 저장하기 위해 사용됩니다. </br>
캐시는 웹페이지를 빠르게 랜더링할 수 있도록 도와주고, 쿠키와 세션은 사용자의 인증을 도와줍니다. </br>
- 이미지, 비디오, 오디오, css, js파일 등 데이터나 값을 미리 복사해 놓는 리소스 파일들의 임시 저장소
Expand All @@ -213,6 +213,119 @@ Hyper Text Transfer Protocol

</br>

## 컴퓨터 구성 요소
CPU, RAM, HDD, SSD, Cache Memory, Register ,NIC </br>
>주기억 장치(메인메모리) : RAM </br> 보조기억 장치 : HDD, SSD

> HDD는 자기적 방식 </br> SSD는 전기적 방식

### CPU
Central Processing Unit 중앙 처리 장치 </br>
연산 작업! </br>
컴퓨터의 뇌, 컴퓨터의 다른 부품들과 신호를 주고 받으면서 시스템 전체를 제어하는 역할 </br>
CPU는 원래 한번에 하나의 작업만 처리할 수 있다(여러 프로그램 중 1개만 처리하는 것이라는 말이 아님) </br>
CPU가 하나여도 프로그램을 여러 개를 다룰 수 있다. </br>
다만, 여러 프로그램에서 다수의 작업 요청이 들어오면 한 번에 처리하지 않고 하나씩 수행한다. </br>
CPU의 계산 속도가 워낙 빠르고 중요도에 따라 작업 순서를 정해서 처리하기 때문에 프로그램 여러 개를 실행해도 속도가 느리다는 것을 느낄 수 없다. </br>
(CPU가 많은 계산을 해야하는 그래픽 작업이나 3D고사양 게임을 하면서 동시에 다른 작업들을 하면 느려짐을 느낄 수 있다) </br>

#### 레지스터
cpu안에서 연산을 처리하기 위하여 데이터를 저장하는 공간. </br>
메모리 계층의 최상위 위치. </br>
가장 빠른 속도로 접근 가능한 메모리. </br>
데이터와 명령어를 저장하는 역할. </br>
대부분의 현대 프로세서는 메인 메모리에서 레지스터로 데이터를 옮겨와 데이터를 처리한 후 그 내용을 다시 레지스터에서 메인메모리(RAM)로 저장하는 "로드-스토어"설계를 사용 </br>

### 캐시 메모리
CPU와 별도로 있는 공간이며, 메인 메모리와 CPU간의 속도 차이를 극복하기 위한 것. </br>
저장 공간이 작고 비용이 비싼 대신 빠른 성능을 제공한다. </br>
캐시 메모리는 CPU내에서 빠르게 일을 처리하려고 자체적으로 필요한 내용들을 기억하는 역할. </br>
캐시는 반응 속도가 빠른 SRAM(Static Random Access Memory) 로, 주소가 키로 주어지면 해당 공간에 즉시 접근할 수 있다. </br>
하드웨어 설계 상 DRAM은 SRAM보다 느리다. </br>
캐시는 블록으로 구성되어 있는데 각각의 블록은 데이터를 담고 있으며, 블록의 개수와 블록의 크기가 캐시의 크기를 결정한다. </br>
주소가 키로 주어졌을 때 그 공간에 즉시 접근할 수 있다는 것은 캐시가 하드웨어로 구현한 해시 테이블과 같다는 의미이다. </br>
캐시가 빠른 이유는 자주 사용되는 데이터만을 담아두기도 하지만, 해시 테이블의 시간 복잡도가 O(1)정도로 빠르기 때문이기도 하다. </br>

### RAM
Random Access Memory </br>
컴퓨터의 단기 기억 장치 </br>
프로그램이 실행되려면 해당 프로그램이 복사되어 메모리에 적재되어야 한다(메모리에 적재된 프로그램을 프로세스라 한다.) </br>
Random Access 이름에 의미가 있다. </br>
RAM에 저장된 어느 데이터든 접근 시간이 동일하다. </br>
RAM은 DRAM과 SRAM이 있는데 주기억장치는 DRAM을 의미한다. </br>
RAM은 저장된 데이터를 순차적이 아닌 임의의 순서로 액세스할 수 있는 데이터 저장소이다. </br>
다른 유형의 메모리 디바이스(HDD 등)는 기계적 설계상의 제한으로 미리 정해진 순서로만 데이터를 액세스한다. </br>

- 휘발성 데이터의 특성을 가지는데 왜 사용할까? </br>
1초에 몇십억 번의 연산을 하는 CPU가 필요한 데이터를 찾기에는 하드디스크가 너무 느리기 때문이다. </br>
하드디스크에 저장된 자주 사용하는 데이터(프로그램) 등을 RAM으로 옮겨 사용한다. </br>
CPU가 데이터를 빠르게 처리하는 것을 도와주는 역할이다. </br>


#### CPU와 RAM의 관계
컴퓨터에서 프로그램을 실행하면 CPU에 필요한 데이터를 요청한다. </br>
RAM은 저장장치에서 요청받은 데이터를 불러오고 CPU는 RAM으로 부터 이를 받아 계산을 수행한다. </br>
그래서 컴퓨터가 느릴때는 CPU를 업그레이드하기 보단 RAM을 업그레이드하는 편이 나을 때가 있다. </br>
RAM을 업그레이드하면 CPU가 계산에 필요한 데이터를 얻는 속도가 빨라져서 컴퓨터의 전체적인 실행 속도가 빨라지기 때문이다. </br>


### HDD
Hard Disk Drive </br>
하드디스크는 비휘발성, 순차 접근이 가능한 컴퓨터의 보조 기억장치이다. </br>
HDD는 정보를 저장하는 플래터와 정보를 찾는 헤드로 구성되어 있다. </br>
헤드가 플래터의 정보를 읽어 컴퓨터에 전달하거나 컴퓨터가 보내는 신호를 플래터에 저장하게 된다. </br>
플래터는 자성물질로 되어있어, 내부의 작은 자석이 정렬되어 있으면 1, 정렬되어 있지 않아 자기 신호를 받을 수 없는 경우 0으로 표현한다. </br>
그리고 헤드는 0과 1의 디지털 신호를 자기적인 방식으로 기록하거나 읽게된다. </br>

### SSD
Solid State Drive : 고체(반도체) 상태 저장소 </br>
반도체의 트랜지스터의 전기적 성질, 전류를 흐르게 하거나 차단하는 '스위치'방식을 이용한다. </br>
전기 신호가 가해지면 SSD셀에서는 전자가 저장되고, 이를 기준으로 전류를 통제함으로써 디지털 신호를 표현한다. </br>
이 기술은 USB으로 상용화되었는데, 대용량 USB가 SSD이다. </br>



#### HDD의 한계와 SSD의 발전
HDD는 디스크 조각 모음을 정기적으로 해줘야한다. </br>
정보가 여기저기 흩어져 있는 경우, 디스크를 돌리는 과정에서 시간이 불필요하게 낭비될 수 있다. </br>
조각난 정보들을 한곳에 모아 디스크의 한쪽으로 배열하면 헤드가 정보를 찾는데 걸리는 시간을 줄일 수 있다. </br>
SSD는 전기적인 신호를 이용해 데이터를 파악하기 때문에 디스크를 돌리거나 하는 등 번거로운 작업이 없다. </br>
그렇기에 정보를 읽고 쓰는 속도가 HDD보다 훨씬 빠르다. </br>
SSD의 경우 '조각 모음'을 할 필요가 없다. </br>
분산된 파일들을 읽으려면 직접 돌려야하는 HDD와 달리, 전체 파일을 한 번에 읽을 수 있기 때문이다. </br>
이러한 이유로, 컴퓨터 부팅 드라이브에는 SSD가 사용되고 가격이 저렴한 HDD는 보조 저장매체로 사용된다. </br>


#### SSD와 낸드플래시
낸드플래시는 SSD에 사용되는 부품이다. </br>
낸드플래시에 정보를 저장할 수 있는 단위를 '셀'이라고 한다. </br>
최대한 많은 용량을 저장하기 위해서는 단위 면적당 셀을 많이 포함해야 한다. </br>
문제는 셀을 너무 많이 직접시키면, 전기적인 간섭이 심해지고 부품의 수명이 떨어지게 된다. </br>
이러한 문제를 해결하고자 낸드플래시는 3차원으로 구현된다. </br>
평면 기판이 아니라 원기둥을 여러 개 세우는 방식이다. </br>
셀을 원기둥으로 설계. </br>
건물을 세우듯 층을 더 올릴 수 있으면 간섭을 피하는 동시에 셀 개수도 늘릴 수 있다. </br>
이러한 기술이 고도화되면서 SSD용량은 증가하고, 가격은 내려가게 되었다. </br>

### NIC
network interface controller </br>
네트워크 어댑터, 이더넷 어댑터, 이더넷 카드, ethernet controller, LAN Card 라고도 불린다. </br>
컴퓨터를 네트워크에 연결할 수 있게 해주는 하드웨어 구성 요소이다( 네트워크 안에서 컴퓨터간 신호를 주고받는 데 쓰임) </br>
- NIC의 기능
- Serialization : 전기적 신호를 데이터 신호 형태로 또는 그 반대로 변환함
- Mac Address : 받은 패킷의 도착지 주소가 자신의 MAC주소가 아니면 폐기하고, 맞으면 시스템 내부에서 처리함
- Flow control : 데이터 유실 방지를 위하여 데이터를 받지 못할 때에는 상대방에게 통신 중지를 요청할 수 있음

> 자세한 설명
>> https://code-space.tistory.com/392


</br>

[Up](#part-1-1-Development)

</br>



<!--
Expand Down