분류 전체보기
-
[OS] 프로세스 동기화운영체제 2023. 4. 1. 13:24
프로세스 동기화동시다발적으로 실행되는 프로세스들은 공동의 목적을 올바르게 수행하기 위해 서로 협력하며 영향을 주고 받기도 합니다. 이렇게 협력하여 실행되는 프로세스들을 실행 순서와 자원의 일관성을 보장해야 하기에 반드시 동기화(synchronization)되어야 합니다. 오늘은 동기화의 개념에 대해 알아보고, 프로세스를 동기화하지 않을 경우 발생할 수 있는 문제들을 통해 동기화가 필요한 이유를 알아볼거예요 🧐 동기화의 의미프로세스 동기화란 프로세스들 사이의 수행 시기를 맞추는 것을 말합니다. 여기서 수행 시기를 맞춘다는 것의 의미는 크게 아래 두 가지를 나타냅니다. 실행 순서 제어: 프로세스를 올바른 순서대로 실행하기상호 배제: 동시에 접근해서는 안 되는 자원에 하나의 프로세스만 접근하게 하기 🍊 실행 ..
-
[React] 리액트 생명주기 메서드 LifeCycle MethodJavaScript/React 2023. 3. 29. 23:17
리액트에서 컴포넌트의 라이프 사이클(생명주기)은 총 세 가지입니다. 마운트(mount) 업데이트(update) 언마운트(unmount) 각각에 대해 알아볼게요 🧐 🍊 마운트 페이지에 컴포넌트가 나타나는 것을 마운트(mount)라고 합니다. 마운트(mount)시에 호출하는 메서드 constructor - 컴포넌트를 새로 만들 때마다 호출되는 클래스 생성자 메서드 getDerivedStateFromProps - props에 있는 값을 state에 동기화하는 메서드 render - UI를 렌더링하는 메서드 componentDidMount - 컴포넌트가 웹 브라우저상에 나타난 후 호출하는 메서드 🍊 업데이트 컴포넌트를 업데이트 하는 경우는 아래 네 가지입니다. 1. props가 바뀔 경우 2. state가 바뀔..
-
[React] React Query와 React Suspense 사용하기JavaScript/React 2023. 3. 28. 17:52
React Query를 알아보자 캡스톤을 진행하던 중에 리액트 쿼리에 대해 공부하게 되었어요. 아직 디자인이 안나와서 본격적인 개발하기 전이라 필요한 공부를 하고 있어요. 아무튼아무튼 리액트 쿼리에 대해서 알아보자구요 🧐 🍊 React-query 이해하기 쿼리(query)를 이용하면 promise 기반 메소드(get, post 등)와 함께 사용하여 서버에서 데이터를 가져올 수 있습니다. 서버의 데이터를 수정할 경우는 mutation을 사용하도록 합니다. 설치하기 $ npm i @tanstack/react-query # or $ pnpm add @tanstack/react-query # or $ yarn add @tanstack/react-query 먼저 react-qeury를 설치해주고 아래처럼 설정해줍..
-
[React] 상태 관리 라이브러리 Recoil 이해하기JavaScript/React 2023. 3. 27. 13:34
오늘은 Recoil을 알아볼건데요, Recoil은 Facebook에서 출시한 React 스러운 상태관리 라이브러리입니다. Recoil 이해하기 recoil은 react의 상태 관리 라이브러리 중 하나입니다. recoil을 사용하면 atoms(공유 state)에서 selectors(순수 함수)를 거쳐 React 컴포넌트로 내려가는 data-flow-graph를 만들 수 있습니다. Atoms란? atoms는 (컴포넌트가 구독할 수 있는) state의 단위입니다. selectors는 atoms의 상태값을 동기 또는 비동기 방식을 통해 변환합니다. atom이 업데이트되면 각각의 구독된 컴포넌트는 새로운 값을 반영하여 다시 렌더링됩니다. Atoms 생성하기 Atoms는 atom 함수를 사용해 생성합니다. cons..
-
[OS] CPU 스케줄링 알고리즘의 종류운영체제 2023. 3. 26. 12:36
CPU 스케줄링 알고리즘은 매우 다양해서 운영체제 저마다 서로 다른 스케줄링 알고리즘을 사용하고 있어요. 오늘은 각 스케줄링 알고리즘을 통해 프로세스들을 스케줄링 하는 실질적인 방법을 알아봅시당.🧐 스케줄링 알고리즘의 종류 🧶 선입 선처리 스케줄링 FCFS(First Come First Served) 스케줄링이라고도 부름 단순히 준비 큐에 삽입된 순서대로 처리하는 비선점형 스케줄링 방식 때때로 비효율적인 호위효과가 발생함 🙋🏻♀️ 호위효과가 뭐죠? 예를 들어, 17ms 동안 CPU를 이용하는 프로세스 A, 5ms 동안 CPU를 이용하는 프로세스 B, 2ms 동안 CPU를 이용하는 프로세스 C가 순서대로 있다면 C는 고작 2ms를 실행하기 위해 22ms(17ms+5ms)라는 긴 시간을 기다려야만 하는데,..
-
[OS] CPU 스케줄링이란? | 선점형 스케줄링과 비선점형 스케줄링운영체제 2023. 3. 25. 09:40
운영체제가 프로세스들에게 CPU 자원을 배분하는 것을 CPU 스케줄링이라고 합니다. CPU 스케줄링은 컴퓨터 성능과도 직결되는 중요한 문제입니다. 프로세스 우선순위 우선순위가 높은 프로세스란 빨리 처리해야 하는 프로세스를 의미합니다. 대표적으로 비디오 재생이나 디스크 백업 작업 등 입출력 작업이 많은 프로세스가 있습니다. 이를 입출력 집중 프로세스라고 합니다. 그리고 복잡한 수학 연산, 컴파일, 그래픽 처리 작업 등 CPU 작업이 많은 프로세스를 CPU 집중 프로세스라고 합니다. 스케줄링 큐 운영체제는 프로세스들에 줄을 서서 기다리도록 요구합니다. CPU를 사용할 프로세스들과, 메모리에 적재될 프로세스들, 특정 입출력장치를 사용할 프로세스들을 모두 줄 세웁니다. 그리고 운영체제는 이 줄을 스케줄링 큐(s..
-
[React] Story book 리액트 스토리북JavaScript/Storybook 2023. 3. 23. 11:03
🗒 story book이란? story book이란, UI 컴포넌트를 독립적으로 분리해 개별적으로 관리하고 테스트할 수 있도록 도와주는 도구입니다. story book 템플릿 사용해보기 # 스토리북 템플릿 clone하기 $ npx degit chromaui/intro-storybook-react-template taskbox $ cd taskbox # dependencies 설치하기 $ yarn story book으로 Task 컴포넌트 생성하기 title – task를 설명해주는 문자열 state - 현재 어떤 task가 목록에 있으며, 선택되어 있는지의 여부 먼저 src/components/Task.js와 src/components/Task.stories.js의 두 파일을 생성합니다. 📁 src/com..
-
[OS] 스레드와 멀티프로세스, 멀티스레드운영체제 2023. 3. 19. 13:10
오늘은 스레드에 대해서 공부해 볼 겁니당🤨. 스레드는 프로세스를 구성하는 실행의 흐름 단위인데, 정확한 의미와 멀티스레드와 멀티프로세스의 차이도 알아봅시당 🧐스레드란?프로세스를 구성하는 실행의 흐름 단위하나의 프로세스는 여러 개의 스레드를 가질 수 있음스레드를 이용하면 하나의 프로세스에서 여러 부문을 동시에 실행할 수 있음 프로세스와 스레드🧲 단일 스레드 프로세스프로세스가 하나의 실행 흐름을 가지고 한 번에 하나의 부분만 실행되는 프로세스 🧲 멀티스레드 프로세스스레드라는 개념이 도입된 후, 하나의 프로세스가 여러 일을 동시에 처리하게 된 프로세스 🧲 스레드의 구성스레드 ID프로그램 카운터 및 레지스터 값스택 프로세스의 스레드들은 실행에 필요한 최소한의 정보(프로그램 카운터를 포함한 레지스터, 스택)만을 ..