본문 바로가기

분류 전체보기100

You don't know JS yet(2) 2.1 파일은 프로그램입니다.JS에서는 파일 각각이 별도의 프로그램이다.독립적은 .js 파일 여러개를 하나의 프로그램으로서 작동시키는 유일한 방법은전역스코프를 사용해 파일 간 상태를 공유하고 공통으로 사용하는 기능을 접근할 수 있도록 만드는 방법 뿐이다.전역 스코프 (Global Scope)코드 어디서든 접근 가능한 변수 및 함수가 정의되는 범위.var는 window(브라우저)나 global(Node.js)에 등록되지만, let과 const는 해당 블록 스코프JS는 각 모듈을 별도로 처리한다.파일 하나를 제3의 작고 독립적은 프로그램(파일)과 협력해 전체를 작동시키는 고유한 작은 프로그램이다.2.2 값JS에서 값은 크게 원시타입, 객체타입으로 분류 된다.원시 타입 (Primitive Type)값 자체를 .. 2025. 2. 6.
02-5 보조기억장치와 입출력 장치 보조 기억장치오늘날 보조기억장치는 크게 2가지다.하드 디스크 드라이브플래시 메모리 기반 저장장치하드디스크➡ 요약: 플래터가 회전하면 헤드가 데이터를 읽고 쓰고, 스핀들은 이걸 빠르게 돌려줌!스핀들(Spindle) → 플래터를 고속 회전시켜 데이터 접근 속도를 높임.플래터(Platter) → 데이터가 저장되는 디스크(자기디스크)로, 여러 장이 쌓여 있음.헤드(Head) → 플래터 표면에서 데이터를 읽고 쓰는 역할을 함.플래시 메모리전기적인 방식으로 데이터를 읽고 쓰는 반도체 기반의 저장장치 ( USB 메모리, SD카드,SSD )얘네 역할은 2가지임전원이 꺼져도 데이터를 안전하게 보관CPU가 필요로 하는 정보를 조금이라도 빠른 성능으로 메모리에 전달→ 얘네(데이터)들을 빠르고 안전하게 다루는 방법?!RAID.. 2025. 2. 5.
02-4 메모리 RAM전원을 끄면 저장하고 있던 데이터와 명령어가 날아가는 휘발성 저장장치RAM은 임시접근 메모리다.RAM - 임시접근메모리(Random Access Memory)의 약자임의 접근이란? : 저장된 요소에 순차적으로 접근할 필요 X → 임의 위치로 곧장 접근 OK순차 접근이란? : 1,~100번까지 접근1. DRAM (Dynamic RAM)동적인 말 그대로 데이터가 동적으로 변하는(사라지는 특성을 의미)시간이 지나면 저장된 데이터가 점차 사라지는 램이다.데이터 소멸을 막기 위해 일정 주기로 데이터를 다시 저장해야 한다.소비 전력 good , 저렴 , 집적도가 높음2.SRAM(Static RAM)DRAM과 달리 저장된 데이터가 변하지 않는 RAM을 의미한다.비휘발성이란 말은 아님. 전원 공급되지 않으면 내용.. 2025. 2. 5.
02-3 CPU 레지스터CPU안에 있는 작은 임시 저장장치CPU안엔 다양한 레스터들이 있고 각기 다른 이름과 역할이 있다.레지스터에 저장된 값만 잘 관찰해도 비교적 낮은 수준의 프로그램이 어떻게 작동하는지 파악 가능디버깅 도구는?WinDbg(윈도우 운영체제)gdb(리눅스, 맥) CPU의 주요 레지스터1. 프로그램 카운터 (Program Counter, PC)CPU가 다음에 어디로 가야하는지 기억하는 네비게이션CPU가 다음에 실행할 명령어의 주소를 저장하는 레지스터보통 메모리 주소를 저장하고 있다가, CPU가 명령어를 실행하면 다음 명령어의 주소로 자동 증가하거나, 분기 명령어가 실행되면 특정한 주소로 점프하게 된다.2. 명령어 레지스터 (Instruction Register, IR)현재 CPU가 실행할 명령어를 임시로 .. 2025. 2. 5.
Node.js 교과서 PART2 (2) 화살표 함수var는 let,const에 의해 대체가 쌉가능.그치만 화살표함수는 함수선언문(function(){}) 을 완벽하게 대체할 수 없다.{} return이 같이 나오면 생략 가능함.function add1(x,y){    return x+y}const add2 = (x,y) => {return x+y}const add2 = (x,y) => x+yconst add2 = (x,y) => x+y객체를 리턴하는 경우엔 소괄호가 필수다.엔진이 헷갈려버려잉const obj = (x,y) => ({x,y})기존 function이 안사라진 이유는 this 떄문이다.var relationship1 = {    name: 'minho'    friends : ['minsoo','mindo','mini']    lo.. 2025. 1. 28.
You don't know JS yet(1.5~1.8) 1.5 하위 호환성과 상위 호환성JS를 지탱하는 기본 원칙 중 하나는 하위 호환성 보장이다.그런데 많은 개발자들이 하위호환성을 잘 모르고 상위호환성 개념과 혼동하기도 한다. 1. 하위호환성(Backward Compatibility)정의: 새로운 버전의 시스템이나 소프트웨어가 이전 버전과 호환되는 능력.특징:기존 코드나 기능이 새로운 환경에서도 문제 없이 작동함.사용자 입장에서 업데이트 시 추가 작업이 거의 없음.예시: JS는 과거에 작성된 코드가 최신 브라우저에서도 작동하도록 설계됨.2. 상위호환성(Forward Compatibility)정의: 현재 버전의 시스템이나 소프트웨어가 미래의 버전과 호환되는 능력.특징:미래의 기능이나 표준을 대비해 설계됨.보통은 제한적이며, 완벽한 구현이 어려움.예시: 새로운.. 2025. 1. 23.