1. 프로세스(Process)란 ? 개념과 특징 정리프로세스(Process)는 실행 중인 프로그램을 의미하며 운영체제에 의해 독립된 메모리 공간(Code, Data, Heap, Stack) 을 가지고 동작합니다.각각은 서로 격리된 구조이기 때문에 다른 프로세스는 직접 접근할 수 없습니다.영역이 따로 존재하기에 동작 또한 기존 프로세스와 별도로 동작한다.2. 스레드(Thread)란? 개념과 특징 정리프로세스 내의 실행되는 흐름이다1개의 프로세스는 1개 이상의 스레드를 가질 수 있고 2개 이상인 경우 멀티스레드라고 부른다. 같은 프로세스의 스레드끼리는 코드, 데이터, 힙 영역을 공유하지만, 스택은 독립적으로 가진다.공유에 대해서 속도가 빠르지만 충돌(동기화)이 발생 할 수도 있다 .3. 프로세스와 스레드 비..
1. 스택(Stack) 이란? 개념과 특징 정리스택(Stack)은 가장 나중에 들어간 데이터가 가장 먼저 나오는 구조로, LIFO(Last In, First Out) 방식입니다.(대학이나 이론 설명에서 접시 설거지에 비유해서 설명을 많이 하는데 가장 마지막에 올린 접시를 가장 먼저 닦을 수 밖에 없는 구조이기 때문에 그렇다)연산의 경우 push (입력), pop (출력), peek (다음 출력으로 나오게 될 값) 을 많이 사용한다 .stack = []stack.append(1)stack.append(2)stack.append(3)stack.append(4)print(f"출력된 값 : {stack.pop()}")2. 큐(Queue) 란? 개념과 특징 정리큐(Queue) 는 입력으로 들어가는 데이터는 뒷부분..
1. 배열이란 ? 개념과 특징 정리배열의 경우 처음에 선언 시에 크기까지 같이 선언을 하기 때문에 크기가 고정적이며중간 값에 대한 삭제 수정등이 발생 할 경우 해당 데이터 뒤에 있는 데이터들을 앞으로 당겨야 하는 과정에서 시간이 오래걸림예시 : [1,2,3,4,5] -> (3삭제 시 ) [1,2,x,4,5] -> [1,2,4,5] 앞으로 당겨줘야하므로 시간 걸림동일 자료형 + 메모리 구조가 연속적 공간임 -> 인덱스(0번째 , 1번째)를 통해 빠르게 값을 찾을 수 있음 (그러므로 키 값을 지정할 수 없음)2. 리스트란 ? 개념과 특징 정리리스트의 경우 리스트 선언만 진행 (크기에 대한 선언을 하지 않음 -> 크기가 가변)중간 값이 삭제나 수정 등이 발생해도 해당 값과 연결된 부분만 잘라가기 떄문에 앞으로..
프로젝트가 끝나고 쉬고있는 와중에백엔드 부분 하시던 부장급 개발자분이 이번에 리액트를 처음 하셔서 공부를 하시다가 이거 어떻게 하냐 질문을 했는데CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.이런 에러가 떠있는걸 보고"어? 이건 리액트가 아니라 백엔드에서 고치셔야 하는데요 ? ..."대충 설명을 드렸는데도 이해를 못 하셔서 그냥 스프링 쪽 코드를 작성해서 보내드렸다..CORS (Cr..
useMemo (Memoization)최초로 계산하였을 때의 값을 메모리에 저장하고 동일한 계산에 대해서 각자 계산하는게 아닌 첫 번째 계산한 후 저장한 메모리에서 가져옴-> 불필요한 연산을 방지해줌(연산 줄임)import { useMemo, useReducer, useState } from "react";function Exam() { const [count, setCount] = useState(0); const [value, setValue] = useState(1); // 복잡한 연산 const expensiveCalculation = (num) => { console.log("⚡ 계산 중..."); let result = num * 2; for (let i = 0; i ..
useReducer기존에 컴포넌트 내부에서 상태 관리 코드를 컴포넌트 외부에서도 할 수 있게 해주는 기능 여러개의 상태, 객체, 로직을 한꺼번에 관리하거나 코드를 분리할 때 많이 쓰게 됩니다. 특징 중 하나는 일반적으로 가독성을 위해 switch 문을 많이 씁니다. (if문 써도 무관) import { useReducer } from "react";function counterReducer(state, action) { switch (action.type) { case "INCREMENT": return state + 1; case "DECREMENT": return state - 1; case "RESET": return 0; ..