![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/ptCsK/btsMbYImwMA/sDEn5D6To65LVvd8ynhhZk/img.png)
컴퓨터에서 워드로 문서작업을 하면서 동시에 유튜브로 음악을 재생해서 들을 수도 있다. 그러면서 동시에 카카오톡으로 채팅을 할 수도 있는데 우리는 이를 통해 컴퓨터가 여러 일을 동시에 수행하고 있음을 알 수 있다. 어떻게 CPU 코어 수보다 많은 작업을 멀티태스킹 하는 걸까? 프로세스와 스레드의 개념을 알아야 이 질문에 답할 수 있다. 프로세스먼저 프로그램이란 어떤 일을 수행하기 위해 만들어진 명령 모음이다. 다른 관점에서 보면 명령 모음이 파일로 빌드되어 보조 기억 장치에 저장되어 있는 정적인 상태라고 할 수 있다. 우리가 프로그램 실행 명령을 내리면 CPU는 보조 기억 장치에서 꺼내 메인 메모리에 올려놓고 코드를 해석하며 작업을 시작한다. 이처럼 프로그램이 메인 메모리로 올라와 실행되고 있는 상태를 ..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/VXQUX/btsL6X324iN/dPaEe14bPQi8tjTflQIvKK/img.png)
데몬 (Daemon)의 어원데몬은 사용자가 직접적으로 제어하지 않고, 백그라운드에서 돌면서 여러 작업을 하는 프로그램을 말한다. 사용자의 요청을 기다리고 있다가 요청이 발생하면 이에 적절히 대응하는 리스너와 같은 역할을 하고 메모리에 상주하면서 특정 요청이 오면 즉시 대응 할 수 있도록 대기중인 프로세스를 말한다. 데몬 단어의 어원데몬는 악마나 유령을 뜻한다.유령은 걷지 않고 항상 떠 있기 때문에 백그라운드에서 조용하게 항상 수행되는 프로그램을 데몬 프로그램이라 부른다. 데몬은 항상 돌아가고 있어야 하는 웹 서버에 적합하기 때문에 주로 서버에서 사용된다. 대표적으로 Apache 웹서버의 httpd가 있으며 이외에도 유닉스(리눅스) 운영체제에서 데몬임을 나타내기 위해 끝에 'd'가 붙는다. (ex. i..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dyFswF/btsL7TzwIMh/BJFJlU1wcU5lxhsbERFam1/img.png)
CPU컴퓨터의 두뇌이다.메모리에 저장된 명령어를 읽어 들이고 읽어 들인 명령어를 해석하고 실행한다. CPU의 역할과 작동원리먼저 CPU 내부 구성요소를 알아야 한다. 1. 산술논리연산장치쉽게 말해 계산기이다. 계산만을 위해 존재하는 부품이다.컴퓨터 내부에서 수행되는 대부분의 계산은 ALU가 도맡아 수행한다. 2. 레지스터작은 임시 저장 장치이다.프로그램을 실행하는 데 필요한 값들을 임시로 저장하며 CPU 안에는 여러 개의 레지스터가 존재하고 각기 다른 이름과 역할을 가지고 있다. 3. 제어장치제어 신호라는 전기 신호를 보내고 명령어를 해석하는 장치이다.(ex. CPU가 메모리에 저장된 값을 읽고 싶을 땐 메모리를 향해 메모리 읽기라는 제어 신호를 보내고 CPU가 메모리에 어떤 값을 저장하고 싶을 땐 메..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/9AinY/btsL449cBuo/JWPHDlQvZkE5UJYHwfaMcK/img.webp)
사설망(Private Network)과 전용 회선사설망이란 IPv4 대역 중 일부를 Private IP(이하 사설IP)로 지정하여 가정, 기업, 기관 등 근거리 통신망(Local Area Network, 이하 LAN)에서 사용하도록 한 것 이다. 사설망은 사설 IP를 이용해 별도의 네트워크를 구성함으로써 외부 인터넷과 내부 네트워크를 분리하고 외부 인터넷의 접근으로부터 내부 네트워크를 보호 할 수 있다. 따라서 필요한 경우에만 NAT(Network Address Translation)을 이용해 인터넷 통신을 하고 내부에서만 사용되는 데스크톱, 서버, DB 등은 사설 IP를 할당하여 사설망을 구축하는 경우가 많다. 기업의 경우 본사와 지사의 네트워크를 연결하기 위해 전용 회선을 사용하게 되는데(=본사 사설..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bwhXrd/btsL4KQeDsw/LjgWO3kLsK6bi8wU7Xebr0/img.jpg)
IP 주소란? (Internet Protocol Address) 숫자로 구성되어 인터넷에 연결된 장치를 식별하는 역할을 한다.편지를 받으려면 우편함 주소가 필요하듯이 장치와 서버가 정보를 교환하기 위해서는 IP 주소가 필요하다. 예를 들어 구글에 'IP 주소란?'을 검색하는 경우 장치의 IP 주소가 구글 서버에 요청을 전송하게 되고 구글은 IP 주소로 사용자를 식별한 후 요청한 정보를 전송하게 된다. IPv4와 IPv6IP 주소는 프로토콜 버전에 따라 IPv4와 IPv6로 구분된다. 1. IPv4 주소네 부분의 숫자로 구성되어 있고 각 숫자는 x.x.x.x와 같이 점으로 구분된다.또한 각 부분의 숫자는 0에서 255 사이의 숫자로 구성된다. 2. IPv6는 주소숫자와 알파벳이 포함된 16진법으로 구성..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bJq3g7/btsLTaiTqCt/ghbH865ssLOQxDpMBwrzK0/img.png)
운영체제란?프로그램 실행에 마땅히 필요한 요소들을 가리켜 시스템 자원, 혹은 줄여서 자원이라고 한다. 따라서 CPU, 메모리, 보조기억장치, 입출력장치 등과 같은 컴퓨터 부품들은 모두 자원이다. 모든 프로그램은 실행되기 위해 반드시 자원이 필요하다. 여기서 실행할 프로그램에 필요한 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 특별한 프로그램이 바로 운영체제(operating system)이다. 운영체제는 커널 영역(kernel space)라는 공간에 따로 적재되어 실행된다. 커널영역을 제외한 나머지 영역, 사용자가 이용하는 응용 프로그램이 적재되는 영역을 사용자 영역(user space)라고 한다. 운영체제는 커널 영역에 적재되어 사용자 영역에 적재된 프로그램들에 자원을 할당하고 이들..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/GfzIh/btsLP4JL5V5/5kiVaFKdKL2lyLWRnug9w1/img.png)
Swap MemorySwap Memory는 Linux 시스템에서 물리적 RAM이 부족할 때 사용하는 디스크 공간이다.RAM의 확장 개념으로 하드 디스크나 SSD의 일부를 메모리처럼 사용하기 때문에 가상 메모리라고 할 수 있다. Swap Memory가 필요한 이유1. 메모리가 부족한 경우RAM이 가득 찼을 때 시스템이 중단되는 것을 방지할 수 있고, 당장 사용하지 않는 데이터를 Swap으로 이동시켜 실행 중인 프로그램을 계속해서 구동할 수 있다. 2. 비활성 프로세스 관리오랫동안 사용하지 않는 프로세스의 메모리 페이지를 Swap으로 이동시키고, 이를 통해 활성 프로세스를 위한 RAM 공간을 확보할 수 있다. Linux에서 Swap Memory 확인하기아래 명령어를 이용해 사진과 같이 메모리를 확인할..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dzmxIg/btsLQ67gNnS/h0Wl2XgNbJZDGW4oMg3pY0/img.png)
EC2 프리티어를 사용하던 중 메모리 부족 현상으로 프로세스 강제 종료 현상을 겪었다. 구글링으로 문제를 해결했지만, 메모리에 대한 지식이 부족하다고 느껴 따로 정리해보려 한다. 메모리(Memory)현재 실행되는 프로그램의 명령어와 데이터를 저장하는 부품이다. 즉, 프로그램이 실행되려면 반드시 메모리에 저장되어 있어야 한다. 이때 컴퓨터가 빠르게 작동하기 위해서는 메모리 속 명령어와 데이터가 중구난방으로 저장되어 있으면 안 된다. 그래서 메모리에는 저장된 값에 빠르고 효율적으로 접근하기 위해 주소(address)라는 개념이 사용된다. 정리 프로그램이 실행되기 위해서는 반드시 메모리에 저장되어 있어야 한다.메모리는 현재 실행되는 프로그램의 명령어와 데이터를 저장한다.메모리에 저장된 값의 위치는 주소로..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/c8paHs/btsIyKsIjwi/6VOkkVEfDScyjPenQdZ1E0/img.png)
로그인과 회원가입을 구현할 때 알아야 할 중요한 개념 중 하나가 인증과 인가이다. 하지만 둘의 개념은 혼동하기 쉽기 때문에 간단한 예시와 함께 이해해 보려고 한다. 1. 인증(Authentication) vs 인가(Authorization)인증과 인가 서비스를 제공하는 authO에 둘의 개념이 잘 나와 있다. 1. 인증(Authentication)인증은 사용자의 신원을 확인하는 것이다. 두 가지 예시를 보자. 은행 창구에 가서 돈을 인출하려고 하면 직원은 신원을 확인하기 위해 신분증을 요구한다. 비행기에 탑승하기 전에도 여권을 통해 신원을 확인해야만 비행기에 탑승할 수 있다. 위 예시 모두 우리의 신원을 확인하기 위해 어떤 절차를 걸치며 이를 인증이라고 한다. 2. 인가(Authorization) 인가는..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/2OpOn/btsGiQXTNZv/f4N8eHSKesdAKksJhbZrhk/img.png)
팀 미팅 시간에 캐시(cache)에 대해 팀원분과 얘기를 나누게 됐다. 데일리 퀴즈에서 나왔던 문제를 cache를 사용해서 푸는 방법과 리액트의 Virtual DOM이 일종의 cache라는 것을 알게됐는데, 여러 가지들을 알게돼서 너무 재밌었다ㅋㅋㅋ 그래서 오늘은 cache에 대한 내용을 주제로 글을 작성하려 한다. 1. 캐시(cache)란?cache는 자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 장소를 말한다. 아래 그림은 저장공간의 계층 구조를 나타낸 그림인데, 그림을 보면 캐시는 저장공간이 작고 비용이 비싼 대신 빠른 성능을 제공한다. 캐시는 다음과 같은 경우에 사용하면 좋다. 1. 동일한 API 데이터를 빠르게 제공해야 할 때 위의 경우 다음과 같은 예시를 들 수 있다.온라인 상점의 제품..
- Total
- Today
- Yesterday
- 비동기
- 객체
- Git
- react
- innerhtml
- tanstackquery
- 제어 컴포넌트
- 리액트
- rest parameter
- CSS
- javascript
- 취업까지달린다
- Next.js
- 유사배열객체
- 프론트엔드
- js
- 코드잇 스프린트
- map
- hydrationboundary
- 스프린트프론트엔드6기
- 배열
- 중급 프로젝트
- GitHub
- 코드잇스프린트
- 동기
- html
- 비제어 컴포넌트
- Target
- currentTarget
- arguments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |