본문 바로가기

공뷰3

ECMAScript 연산자의 동작 - 덧셈과 곱셈 연산(+, -, *, /, %) 모던 자바스크립트의 암묵적 타입 변환 파트를 읽던 중에 궁금해졌다. + ECMA 사양에는 다음처럼 서술되어 있습니다. + 연산자는 문자열을 합치거나 숫자의 덧셈을 수행한다고 합니다. 그리고 연산 결과는 EvaluateString...을 반환한다고 하는데, 자세히 살펴보겠습니다. lref는 왼쪽 피연산자의 평가 결과고, lval은 그것이 참조하고 있는 값을 의미합니다. r은 오른쪽이겠죠? 그리고 ApplyString...을 반환한다고 하는데, 들어가 보겠습니다. 길게 적혀있지만 사실 단순합니다. 우선, 8번에 적힌 테이블에 있는 연산자에 대해서만 이후 과정을 진행한다고 합니다. + 연산은 T:add라는 이름으로 포함되어 있습니다. 양쪽 피연산자를 primitive 타입으로 변환합니다. 이때, 한쪽이라도 S.. 2023. 4. 19.
OSTEP - 0. 개요 OSTEP 한글 번역본을 읽으면서 공부한 내용을 정리한 글입니다. (https://pages.cs.wisc.edu/~remzi/OSTEP/Korean/) 운영체제의 3가지 원칙은 가상화(virtualization), 병행성(concurrency), 영속성(persitence)이다. 폰 노이만 구조 프로그램이 하는 일은 명령어를 실행하는 것이다. 명령어를 초당 수 억번 메모리로부터 fetch하고, decode하고, execute한다. 간략화했지만, 아래 동작을 프로그램이 끝날 때까지 반복한다. PC(Program Counter)에 저장된 주소를 읽어서 그 주소가 가리키는 메모리 공간에 접근하여 명령어를 읽어 들이고 레지스터에 저장한다. 레지스터에 저장된 명령어를 CPU 내부의 decoder로 해석하여 어떤.. 2023. 4. 1.
package.json과 package-lock.json의 차이(+ npm install과 npm ci의 차이) 당신은 이제까지 작성한 package.json의 개수를 일일이 기억하는가? 저는 늘 npm에게 맡겼기 때문에 기억하지 못합니다. 알아서 잘하겠거니 하고 큰 관심을 갖지 않았습니다. 하지만 노드 개발자가 package.json조차 제대로 알지 못하는 것은 어불성설. 이 기회에 package-lock.json과 함께 알아보려고 합니다. package.json 어떤 기술을 공부하는 데에는 공식 문서만한 것이 없습니다. package.json을 알아보기 위해 npm docs에 들어가면 다음과 같은 화면이 반겨줍니다. 우리가 필요한 것은 dependencies 항목이고, 그중 중요한 것 몇 가지만 살펴보겠습니다. dependencies Dependencies are specified in a simple obje.. 2023. 3. 24.