본문 바로가기

전체 글14

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.
(리메이크)카카오톡 학식 챗봇을 만들어보자 - 1. 채널 생성과 챗봇 연결 이전 글 2023.03.23 - [프로젝트/슈밥] - (리메이크)카카오톡 학식 챗봇을 만들어보자 - 0. 개요 챗봇을 만들기로 했으면 우선 카카오톡 채널을 생성해야 합니다. 하지만 그 전에 챗봇 사용을 위한 OBT 신청부터 먼저 진행하는 것이 좋습니다. 왜냐하면 챗봇을 신청하고 사용 가능하기까지 2~3일의 시간이 걸리기 때문입니다. 저는 신청이 한 번 반려되어 1주일이 걸렸습니다. 가능한 한 빨리 하는 게 좋겠죠? 저는 예전에 이미 신청을 했기 때문에 재현이 불가능합니다.. 카카오 API 문서에 잘 설명되어 있으니 아래 링크를 참고해서 신청하시면 됩니다. https://i.kakao.com/docs/getting-started-setup#%EC%B9%B4%EC%B9%B4%EC%98%A4-%EA%B3%84.. 2023. 3. 26.
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.