
컴퓨터에서 워드로 문서작업을 하면서 동시에 유튜브로 음악을 재생해서 들을 수도 있다. 그러면서 동시에 카카오톡으로 채팅을 할 수도 있는데 우리는 이를 통해 컴퓨터가 여러 일을 동시에 수행하고 있음을 알 수 있다. 어떻게 CPU 코어 수보다 많은 작업을 멀티태스킹 하는 걸까? 프로세스와 스레드의 개념을 알아야 이 질문에 답할 수 있다. 프로세스먼저 프로그램이란 어떤 일을 수행하기 위해 만들어진 명령 모음이다. 다른 관점에서 보면 명령 모음이 파일로 빌드되어 보조 기억 장치에 저장되어 있는 정적인 상태라고 할 수 있다. 우리가 프로그램 실행 명령을 내리면 CPU는 보조 기억 장치에서 꺼내 메인 메모리에 올려놓고 코드를 해석하며 작업을 시작한다. 이처럼 프로그램이 메인 메모리로 올라와 실행되고 있는 상태를 ..

데몬 (Daemon)의 어원데몬은 사용자가 직접적으로 제어하지 않고, 백그라운드에서 돌면서 여러 작업을 하는 프로그램을 말한다. 사용자의 요청을 기다리고 있다가 요청이 발생하면 이에 적절히 대응하는 리스너와 같은 역할을 하고 메모리에 상주하면서 특정 요청이 오면 즉시 대응 할 수 있도록 대기중인 프로세스를 말한다. 데몬 단어의 어원데몬는 악마나 유령을 뜻한다.유령은 걷지 않고 항상 떠 있기 때문에 백그라운드에서 조용하게 항상 수행되는 프로그램을 데몬 프로그램이라 부른다. 데몬은 항상 돌아가고 있어야 하는 웹 서버에 적합하기 때문에 주로 서버에서 사용된다. 대표적으로 Apache 웹서버의 httpd가 있으며 이외에도 유닉스(리눅스) 운영체제에서 데몬임을 나타내기 위해 끝에 'd'가 붙는다. (ex. i..

EC2 프리티어를 사용하던 중 메모리 부족 현상으로 프로세스 강제 종료 현상을 겪었다. Swap Memory 할당으로 문제를 해결했지만, 메모리에 대한 지식이 부족하다고 느껴 따로 정리해보려 한다. 메모리(Memory)현재 실행되는 프로그램의 명령어와 데이터를 저장하는 부품이다. 즉, 프로그램이 실행되려면 반드시 메모리에 저장되어 있어야 한다. 이때 컴퓨터가 빠르게 작동하기 위해서는 메모리 속 명령어와 데이터가 중구난방으로 저장되어 있으면 안 된다. 그래서 메모리에는 저장된 값에 빠르고 효율적으로 접근하기 위해 주소(address)라는 개념이 사용된다. 정리프로그램이 실행되기 위해서는 반드시 메모리에 저장되어 있어야 한다.메모리는 현재 실행되는 프로그램의 명령어와 데이터를 저장한다.메모리에 저장된 값..

로그인과 회원가입을 구현할 때 알아야 할 중요한 개념 중 하나가 인증과 인가이다. 하지만 둘의 개념은 혼동하기 쉽기 때문에 간단한 예시와 함께 이해해 보려고 한다. 1. 인증(Authentication) vs 인가(Authorization)인증과 인가 서비스를 제공하는 authO에 둘의 개념이 잘 나와 있다. 1. 인증(Authentication)인증은 사용자의 신원을 확인하는 것이다. 두 가지 예시를 보자. 은행 창구에 가서 돈을 인출하려고 하면 직원은 신원을 확인하기 위해 신분증을 요구한다. 비행기에 탑승하기 전에도 여권을 통해 신원을 확인해야만 비행기에 탑승할 수 있다. 위 예시 모두 우리의 신원을 확인하기 위해 어떤 절차를 걸치며 이를 인증이라고 한다. 2. 인가(Authorization) 인가..

팀 미팅 시간에 캐시(cache)에 대해 팀원분과 얘기를 나누게 됐다. 데일리 퀴즈에서 나왔던 문제를 cache를 사용해서 푸는 방법과 리액트의 Virtual DOM이 일종의 cache라는 것을 알게됐는데, 여러 가지들을 알게돼서 너무 재밌었다ㅋㅋㅋ 그래서 오늘은 cache에 대한 내용을 주제로 글을 작성하려 한다. 1. 캐시(cache)란?cache는 자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 장소를 말한다. 아래 그림은 저장공간의 계층 구조를 나타낸 그림인데, 그림을 보면 캐시는 저장공간이 작고 비용이 비싼 대신 빠른 성능을 제공한다. 캐시는 다음과 같은 경우에 사용하면 좋다. 1. 동일한 API 데이터를 빠르게 제공해야 할 때 위의 경우 다음과 같은 예시를 들 수 있다.온라인 상점의 제품..

1. 렌더링이란? HTML, CSS, 자바스크립트 등 개발자가 작성한 문서가 브라우저에서 출력되는 과정을 말한다. 2. 클라이언트 사이드 렌더링(CSR)클라이언트인 브라우저가 렌더링을 처리하는 방식이다. 즉, 서버에서 받은 데이터를 통해 클라이언트인 브라우저가 화면(View)를 그리는 주체가 되는 것이다. 2.1. CSR의 동작 과정(1) : 초기 화면 수행사용자가 홈페이지를 접속한 경우(최초 접속) 클라이언트는 이를 확인하고 서버로 요청한다.서버는 빈 페이지(HTML, CSS)를 클라이언트에게 전달한다. (해당 페이지에는 JS 링크가 포함되어 있다.)전달받은 클라이언트에서 해당 화면을 그려주고 스크립트를 다운로드하여서 최종적인 화면을 사용자에게 보여준다. (해당 부분에서 사용자에게 보여준 뒤 JS를 로..
C에서는 정수나 문자열 외에도 다양한 데이터 타입이 정의되어 있다. 또한 각 타입에 맞는 형식 지정자를 통해 적절한 포맷으로 출력하고, 다양한 연산자를 통해 조건문을 설정하거나 데이터 값을 계산할 수 있다. 데이터 타입 아래 목록은 변수의 데이터 타입으로 사용할 수 있는 것들이다. bool: 불리언 표현, (예) True, False, 1, 0, yes, no char: 문자 하나 (예) 'a', 'Z', '?' string: 문자열 int: 특정 크기 또는 특정 비트까지의 정수 (예) 5, 28, -3, 0 long: 더 큰 크기의 정수 float: 부동소수점을 갖는 실수 (예) 3.14, 0.0, -28.56 double: 부동소수점을 포함한 더 큰 실수 * int는 대략 40억까지 셀 수 있기 때문..
목차 1. 증감 연산자 2. 후위 연산자 (Postfix Operator) 3. 전위 연산자 (Prefix Operator) 1. 증감연산자 증가연산자 ++ 감소연산자 -- 로 나뉜다. 전위 ++n 와 후위 n++ 로 나뉜다. 증감 연산자만 단독으로 사용할 때는 큰 차이가 없지만 다른 변수에 할당할 때는 위치에 큰 차이가 난다. 2. 후위 연산자 (Postfix Operator) n++; n--; #include int main() { int num1 = 2; int num2 = 2; int num3; int num4; num3 = num1++; // num1의 값을 num3에 할당한 뒤 num1의 값을 1 증가시킴 num4 = num2--; // num2의 값을 num4에 할당한 뒤 num2의 값을 1..
C는 오래된 언어라 저장하고자 하는 변수의 종류를 꼭 알려주어야 한다. counter라는 변수에 숫자를 저장해보자 int counter = 0; 여기서 int 는 변수가 정수(integer)라는 것을 알려주는 것이고, counter는 변수의 이름, 0은 그 값에 0을 저장(초기화)하는 것이다. 또한 코드의 마지막에 세미콜론(;)을 붙여주어야 한다. 여기서의 등호(=)는 같다의 의미가 아닌, 오른쪽에 있는 값을 왼쪽에 할당한다는 의미이다. 변수의 값을 1씩 증가시켜보자 counter = counter + 1; 위 코드는 counter에 1을 더한 값을 다시 counter에 저장(할당)한다는 의미가 된다. 이를 더 간단하게 아래 두 가지 방식으로 수행할 수 도 있다. counter += 1; counter+..
C는 오래된 언어이기 때문에 변수가 저장하는 데이터의 종류를 아주 정확하게 명시해줘야 한다. 만약 저장하고자 하는 값의 종류가 문자열(string)이라면 컴퓨터에게 이를 알려야 한다. 이때 string을 형식 지정자라고 하며 형식지정자는 string 이외에도 여러가지 종류가 있다. *형식 지정자 모음 형식지정자 -> 표현하는것 -> 대응되는 자료형 %d -> 10진수 정수 (4바이트) -> int %ld -> 10진수 정수 (8바이트) -> long %f -> 실수형 (4바이트) -> float %lf -> 실수형 (8바이트) -> double %c -> 문자 -> char %s -> 문자열 -> char* %o -> 8진수 -> int %x -> 16진수 -> int %p -> 주소값 -> void* ..
- Total
- Today
- Yesterday
- hydrationboundary
- 리액트
- arguments
- 제어 컴포넌트
- html
- 객체
- 유사배열객체
- react
- CSS
- GitHub
- 배열
- 취업까지달린다
- javascript
- map
- rest parameter
- 코드잇 스프린트
- 비제어 컴포넌트
- 동기
- Target
- 스프린트프론트엔드6기
- tanstackquery
- Next.js
- js
- 비동기
- currentTarget
- innerhtml
- 프론트엔드
- Git
- 중급 프로젝트
- 코드잇스프린트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |