본문 바로가기

IT239

운영체제 #1 1. 운영체제의 개념과 역할운영체제(OS)는 하드웨어와 응용 프로그램 사이에서 자원(Resource) 관리자 역할을 한다.주요 자원:CPU (연산 자원)메모리 (휘발성 저장 자원)저장장치 (비휘발성 저장 자원)I/O 장치 (네트워크 카드, 디스크 컨트롤러, USB 등)개발자 관점에서 운영체제는 크게 두 층으로 나눌 수 있다.커널(Kernel): 하드웨어 직접 제어, 자원 관리 로직 포함 (리눅스: kernel/, 윈도우: NT Kernel)유저 공간(User Space): 응용 프로그램, 라이브러리, 셸 등이 실행되는 영역 2. 인터럽트와 커널 진입하드웨어는 CPU와 직접 대화할 수 없고, 대신 인터럽트(Interrupt) 라는 비동기 신호를 통해 이벤트를 알린다.예시: 네트워크 패킷 수신NIC(Netw.. 2025. 8. 14.
[typescript] generic extends 문법 type HandleData = { storageType: StorageType keys: readonly K[]} 위의 코드를 보고 generic을 어떻게 이해 해야할지 알아보았다. Generic 타입 파라미터 K를 선언이고, 두가지 조건을 동시에 설정 1. K extneds stringK는 문자열 타입이어야 한다.즉, K는 'foo' | 'bar' 같은 문자열 리터럴 타입이 될 수 있고 그냥 string일 수 있다.2. = string (기본 타입 설정)generic에 아무 값도 안 넣으면, K는 자동으로 string 타입이 된다.즉, HandleData를 쓸 때 K를 명시하지 않으면 keys는 readonly string[]이 됨정리K는 문자열 계열 타입이어야 하고, 지정하지 않으면 string.. 2025. 8. 14.
[react] CRA 버전 업그레이드 하기 상황react v16.xnode v16.x 최선버전으로 업그레이드npx npm-check-updates -u 저걸 실행하면 eslint가 9.x로 올라가는데 react-script와 충돌이 생겨서 eslint가 정상적으로 작동하지 않는다. eslint 버전 하양eslint 8.x대로 내리고, vscode cmd + p 로 들어가서 eslint server restart 실행 코드 마이그레이션createRoot, useNavigate 등등.. 2025. 8. 12.
declare module '*.json' 의미 declare module '*.json' { const json: any export default json} 핵심 의미TypeScript 컴파일러에게 .json 파일을 임포트할 때 어떤 타입으로 처리하라고 알려주는 ambient module 선언 자세히 풀어보면1. declare module '*.json' { … } 의 의미declare module "" { … } 은 TypeScript에 이런 이름의 모듈을 만났을 때, 아래에 정의된 타입 정보를 사용해라 라고 알려주는 구문입니다. 여기서 *.json 패턴은 확장자가 .json인 모든 파일을 가리킨다. 2. 내부 구조const json: any;export default json; 해당 모듈이 기본(default)으로 하나의 json 값을 갖는.. 2025. 8. 6.
[javascript] import 방식 (named, default) export는 default와 named로 나눌 수 있고, export 방식에 따라 import도 다르게 해야한다. // some-lib.tsexport default function greet() { console.log('Hello');}export function say() { console.log('hello world')} default export 만 불러오는 방법// main.tsimport someLib from './some-lib'; // ✅ someLib는 greet 함수someLib(); // Hello named export 만 불러오는 방법// main.tsimport { say } from './some-lib'; // ✅ someLib는 greet 함수say(); // h.. 2025. 7. 10.
[typescript] esModuleInterop 개념TypeScript의 tsconfig.json 설정 중 하나로, CommonJS 모듈을 ES6 스타일로 불러올 수 있도록 도와주는 옵션 기본적으로 TypeScript는 CommonJS 모듈(module.exports = ...)과 ES6 모듈(export default ...)을 다르게 처리해. 그래서 CommonJS로 작성된 라이브러리를 import x from '패키지'처럼 ES6 스타일로 불러오려면 esModuleInterop: true를 설정해야 오류 없이 사용할 수 있어. // esModuleInterop이 false일 때import * as mkdirp from 'mkdirp';mkdirp.sync('path'); // 이렇게 써야 함// esModuleInterop이 true일 때impo.. 2025. 7. 9.