![](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/bTGRx6/btsL5ZNRrd4/7qimPbihY35SxQkNIYtBk1/img.png)
포트포워딩이란?포트 포워딩이란 간단히 말해 Port를 Forwarding(전달) 해주는 것 이다.특정한 포트로 들어오는 데이터 패킷을 다른 포트로 바꿔서 다시 전송해주는 작업이다. 포트포워딩은 왜 해야할까?인터넷을 사용할 때 공유기(라우터)는 하나의 공인 IP 주소만을 가지고 있다. 하지만 이 공유기에 연결된 여러 기기들 (컴퓨터, 스마트폰, 서버 등)은 각각 사설 IP를 가지고 있다. 따라서 외부에서 서버나 서비스에 접근하려고 할 때 공유기는 어떤 내부 기기로 요청을 전달해야 할 지 알 수 없기 때문에 포트포워딩을 해주어야 한다. 만약 집에서 웹 서버를 운영하고 있다고 해보자. 이 서버는 사설 IP를 사용하고 8080 포트에서 실행되고 있다. 외부에서 이 서버를 사용하는 사이트에 접속해서 요청을..
![](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/bStd2c/btsL0WDBZYU/Zydva7ngUkzkuTsd1G0160/img.png)
나는 보통 어떤 페이지를 개발해야 할 때,(여기서는 멤버 페이지를 개발한다고 가정하겠다) Header 컴포넌트에 대한 파일명을 지을 때 MemberHeader.tsx가 아니라 Header.tsx로 짓는 편이다. MemberHeader.tsx로 짓다보면 일관성을 위해 MemberList, MemberListItem 등 계속해서 Member라는 접두사를 붙여줘야 하기 때문이다.또 members/_components/Header.tsx vscode 상단에 보면 이렇게 폴더구조로 어떤 페이지의 Header인지 이해할 수 있기 때문에 간결하게 작성해왔다. 그런데 문득.. 프로젝트 규모가 큰 경우는 내가 사용하는 방법이 그닥 좋은 방법은 아닐 거라는 생각이 든다. 확실히 저 경로를 보고 컨텍스트를 파악하는 것 보..
프로젝트를 위해 aws로 서버를 처음 구축했다.실수로 인한 과금이 걱정되면서도 이런 환경 덕분에 오히려 CS 공부를 시작하게 된 계기가 되었다. CS가 중요하다는 말은 익히 들어왔기에 작년에는 면접을 위한 CS 전공지식 노트 책으로 스터디를 진행했었다. 하지만 당시에는 내용이 잘 와닿지 않았고, 단순 암기라도 해야하나 고민했던 기억이 난다. 이후에 aws 서버를 직접 운영하면서 '아, 이래서 이런 개념이 필요했구나'하면서 깨닫게 되었다. 특히 백엔드 CI/CD workflows를 작성하고 테스트하는 과정에서 다양한 오류를 겪었는데 이 과정에서 왜 개발자에게 CS에 대한 지식이 필요한지, 또 요구되는지 체감하게 됐다. 그래서 요새는 관련 지식들을 찾아보며 공부중이다. 사실 CS에 대한 목마름은 계속 있어왔..
![](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)라고 한다. 운영체제는 커널 영역에 적재되어 사용자 영역에 적재된 프로그램들에 자원을 할당하고 이들..
- Total
- Today
- Yesterday
- map
- innerhtml
- 코드잇스프린트
- arguments
- javascript
- react
- 유사배열객체
- Git
- 비동기
- Target
- Next.js
- GitHub
- 배열
- 리액트
- 코드잇 스프린트
- js
- 프론트엔드
- 취업까지달린다
- 제어 컴포넌트
- 중급 프로젝트
- 객체
- currentTarget
- hydrationboundary
- 스프린트프론트엔드6기
- tanstackquery
- rest parameter
- CSS
- 동기
- 비제어 컴포넌트
- html
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |