분류 전체보기
-
[OS] 프로세스 상태와 계층 구조운영체제 2023. 3. 18. 13:41
프로세스는 모두 저마다의 상태가 있습니다. 운영체제는 이런 프로세스의 상태를 PCB에 기록하여 관리합니다. 그리고 대부분의 운영체제는 이처럼 동시에 실행되는 수많은 프로세스를 계층적으로 관리합니다. 프로세스의 상태 프로세스가 가질 수 있는 대표적인 상태는 아래와 같습니다. 🍊 생성 상태 new 프로세스를 생성중인 상태 이제 막 메모리에 적재되어 PCB를 할당받은 상태 🍊 준비 상태 ready CPU의 할당을 기다리는 상태 생성 상태를 거쳐 실행할 준비가 완료된 프로세스는 곧바로 실행되지 않고 준비 상태가 됨 준비 상태인 프로세스가 실행 상태로 전환되는 것을 디스패치(dispatch)라고 함 🍊 실행 상태 running CPU를 할당받아 실행 중인 상태 할당된 시간 동안 CPU 사용이 끝나면 (타이머 인터..
-
[JavaScript] ESLint와 Prettier로 협업하기 [2/2] - Prettier _Mac(맥)JavaScript 2023. 3. 14. 08:44
오늘은 Prettier에 대해서 알아보고 ESLint와는 어떤 차이점이 있는지, 그리고 같이 사용함으로써 얻는 이점을 알아볼게요 🧐 Prettier란? Prettier도 ESLint와 마찬가지로 코드를 예쁘게 정리해주는 도구입니다. 하지만 ESLint와의 차이점은 Prettier는 코드 품질에는 신경을 쓰지 않는다는 것입니다. ESLint와의 차이점 ESLint는 컨벤션 규칙에 어긋나는 것이 있으면 오류로서 알려주지만 고쳐주지는 않습니다. 반면 Prettier는 수정까지 자동으로 이루어지기 때문에 편리합니다. 따라서 ESLint에 코드 포맷을 Prettier로 설정해주면 더 편리하게 사용할 수 있습니다. Prettier와 ESLint 통합하기 ESLint와 prettier를 통합하기 위해 패키지를 설치해..
-
[JavaScript] ESLint와 Prettier로 협업하기 [1/2] - ESLintJavaScript 2023. 3. 13. 13:14
오늘은! 코드를 조금 더 일관되고 예쁘게 작성하기 위한 도구의 사용법을 알아볼 겁니다. 더불어 그러한 기능들을 강제화 및 자동화하여 더 효율적으로 도구를 사용해보려고 합니다. ESLint Prettier ESLint를 배우기 전에 먼저 생각해보기. 린트(lint)가 뭘까요? 🧐 Lint란? 위의 사진처럼 보풀을 제거할 때 사용하는 도구를 린트(lint)라고 합니다. 이런 보풀같은 것들이 코드에도 존재하는데 그런 부수적인 먼지들을 제거하는 도구를 린트(lint) 혹은 린터(linter)라고 합니다. 대표적으로 JSLint, JSHint, ESLint가 있는데 오늘은 ESLint에 대해서 알아볼 겁니다. ⌨️ ESLint 의 기능 두 가지 ESLint는 노드 패키지로 제공되므로 npm 명령어를 사용하기 때문..
-
[OS] 프로세스의 메모리 영역, 정적 할당 영역과 동적 할당 영역운영체제 2023. 3. 12. 13:49
오늘은 프로세스의 메모리 영역에 대해서 배워볼 겁니당.🤨 프로세스는 현재 실행 중인 프로그램을 뜻했죠. 프로세스가 생성되면 커널 영역에는 해당 프로세스의 PCB가 생성됩니다. 그렇다면 사용자 영역에는 프로세스가 어떻게 배치될까요? 하나의 프로세스는 사용자 영역에 크게 코드 영역, 데이터 영역, 힙 영역, 스택 영역으로 나뉘어 저장됩니다. 이 내용은 프로그래밍에 있어서도 매우 중요한 내용입니다. 프로세스가 배치되는 영역들 ⛱️ 코드 영역 코드 영역(code segment)은 텍스트 영역(text segment)이라고도 부릅니다. 코드 영역에는 데이터가 아닌 CPU가 실행할 명령어가 담겨 있기 때문에 쓰기(write)가 금지되어 있습니다. 다시 말해 코드 영역은 읽기 전용(read-only) 공간입니다. ⛱..
-
[OS] 프로세스와 프로세스 제어 블록(PCB), 문맥 교환운영체제 2023. 3. 11. 23:30
오늘은 운영체제에서도 핵심 내용인 프로세스에 대해서 공부할 겁니당. 🧐 프로세스란? 프로세스(process)란 실행 중인 프로그램을 말합니다. 프로그램은 실행되기 전까지는 그저 보조기억장치에 있는 데이터 덩어리일 뿐이지만, 보조기억장치에 저장된 프로그램을 메모리에 적재하고 실행하는 순간부터 프로세스가 됩니다. 프로세스 확인하기 $ ps -ef 터미널에 위 명령어를 입력하면 현재 프로세스를 직접 확인할 수 있습니다. 📍프로세스의 종류 포그라운드 프로세스 : 사용자가 볼 수 있는 공간에서 실행되는 프로세스 백그라운드 프로세스 : 보이지 않는 공간에서 실행되는 프로세스 백그라운드 프로세스 중에서도 사용자와 상호작용하지 않고 정해진 일만 수행하는 백그라운드 프로세스를 데몬 혹은 서비스라고 부릅니다. 데몬(dae..
-
[Redux] 리덕스(Redux) 배우기JavaScript/Redux 2023. 3. 10. 14:33
리덕스(Redux)란? 리덕스(Redux)는 JavaScript 애플리케이션에서 상태(state)를 관리하기 위한 도구입니다. 리덕스는 React와 함께 많이 사용되며, React의 상태 관리를 위한 라이브러리 중 하나입니다. 리덕스의 특징 애플리케이션의 상태를 단일 스토어(store)에 저장 store에서 상태를 변경하거나 조회할 수 있는 메서드를 제공 이를 통해 상태를 예측 가능하게 만듦 애플리케이션의 복잡도를 낮춤 디버깅과 테스팅을 용이하게 함 리덕스의 핵심 원칙은 상태(state)는 읽기 전용이며, 상태를 변경하는 것은 순수 함수(reducers)로만 가능하다는 겁니다. 이를 통해 상태 변경을 추적하고, 애플리케이션에서 일어나는 상태 변화를 예측할 수 있게 됩니다. 리덕스(Redux) 사용하기 리..
-
[OS] 커널, 이중 모드와 시스템 호출, 운영체제 서비스운영체제 2023. 3. 9. 10:02
https://www.kernel.org/ The Linux Kernel Archives www.kernel.org 커널이란 무엇일까 운영체제의 핵심 서비스를 담당하는 부분을 커널kernel이라고 합니다. 여기서 운영체제의 핵심 서비스란, 자원에 접근하고 조작하는 기능, 프로그램이 올바르고 안전하게 실행되게 하는 기능 등을 말합니다. 이중 모드와 시스템 호출 📌 이중 모드 이중 모드(Dual mode)란? • 컴퓨터 시스템의 하드웨어 자원과 프로세스를 보호하기 위한 모드 운영체제는 응용 프로그램이 하드웨어 자원에 직접 접근하는 것을 방지하여 자원을 보호합니다. 만약 응용 프로그램이 CPU, 메모리, 하드 디스크 등에 마음대로 접근하고 조작할 수 있다면 자원이 무질서하게 관리될 것이고, 응용 프로그램이 조..
-
[Django] Python 중 "@@@ could not be resolved" 에러 해결 방법 _Mac파이썬/Django 2023. 3. 5. 17:17
파이썬을 쓰면서 예상치 못한 오류와 맞닥뜨렸다. 분명 사용할 모듈을 제대로 설치했는데 노란색 밑줄과 함께 [모듈명] could not be resolved 라는 경고문이 표시된 것이다. 에러 원인 이런 오류가 생기는 이유는 가상환경을 사용하면서 vscode가(혹은 본인이 사용하는 IDE가) 현재 사용하는 버전의 python 인터프리터 경로를 제대로 잡지 못하기 때문이다. 해결 방법 해결하기 위해서는 vscode에서 명령팔레트를 통해 파이썬 인터프리터를 설정해주면 된다. 1. 인터프리터 경로 입력하기 먼저 vscode 명령 팔레트에 들어간다. 명령 팔레트 단축키 cmd+shift+P Python: 인터프리터 선택 인터프리터 경로 입력 선택 위에서 알아낸 파이썬 인터프리터 경로를 입력한다. 본인의 경로를 모..