본문 바로가기
728x90

전체 글203

[Node.js] 싱글스레드 싱글 스레드란? 스레드가 하나라는 것을 의미합니다. ⇒ 우리가 작성한 자바스크립트 코드가 동시에 실행될 수 없는 이유가 된다. 스레드를 이해하기 위한 프로세스와 스레드의 차이 프로세스: 운영체제에서 할당하는 작업 단위(노드나 웹 브라우저 같은 프로그램). 프로세스 간에는 메모리 등의 자원을 공유하지 않는다. 스레드: 프로세스 내에서 실행되는 흐름의 단위. 프로세스는 스레드를 여러 개 생성해 여러 작업을 동시에 처리할 수 있다. 스레드들은 부모 프로세스의 자원을 공유한다. 같은 주소의 메모리에 접근 가능하므로 데이터를 공유할 수 있습니다. “노드는 싱글 스레드 입니다?!” 하지만 엄밀히 말하면 싱글 스레드로 동작하지는 않습니다. 노드를 실행하면 먼저 프로세스가 하나 생성됩니다. 그리고 그 프로세스에서도 스.. 2022. 12. 23.
[Node.js] 논블로킹 I/O 이벤트 루프(https://bellsilver7.tistory.com/315)를 잘 활용하면 오래 걸리는 작업을 효율적으로 처리할 수 있습니다. 우리가 작성한 자바스크립트 코드는 동시에 실행될 수 없습니다. 하지만 파일 시스템 접근(파일 읽기, 쓰기, 생성 등)이나 네트워크 요청 같은 I/O(입출력) 작업은 동시에 처리될 수 있습니다. 이런 작업은 논블로킹 방식으로 처리하는 방법을 제공합니다. 논블로킹이란? 이전 작업이 완료될 때까지 대기하지 않고 실행함을 뜻합니다. 블로킹과 논블로킹 const fs = require('fs'); const data = fs.readFileSync('/file.md'); // 파일을 읽을 때까지 여기서 블로킹됩니다. console.log(data); moreWork();.. 2022. 12. 22.
[VSCode] code . 안될 때 EACCES: permission denied, unlink 'usr/local/bin/code' EACCES: permission denied, unlink 'usr/local/bin/code' 터미널에서 code . 명령으로 vscode 를 실행하려고 할 때 위와 같은 문구의 알림창이 뜨거나 아래와 같이 permission denied: code 가 뜬다면 잘 오셨습니다. 해결 방법은 bin 디렉토리에 설정된 code PATH를 지우고 다시 등록하면 됩니다. 1. bin 경로의 code PATH 삭제 $ cd /user/local/bin $ sudo rm -rf code 2. code PATH 등록 vscode를 실행하고 command + shift + p 단축키로 팔레트를 열어 'install code'를 검색합니다. 아래 이미지와 일치하는 항목을 클릭해주면 됩니다. 2022. 12. 21.
[MacOS] CapsLock 한/영 전환 딜레이 해결하기 맥에서 caps lock 키로 한/영 전환이 잘 안되는 경우가 있습니다. 글자가 씹히는(?) 상황도 발생합니다. 그래서 이전에 사용하던 cmd + space 로 단축키를 변경해서 사용하시는 분들도 종종 있죠. 저는 caps lock 키를 그대로 사용해 보기 위해 아래와 같은 방법을 적용했습니다. 1. Karabiner-Elements 설치 $ brew install --cast karabiner-elements 저는 터미널에서 brew로 설치 했고 설치가 완료되면 위의 이미지처럼 설치 완료 문구가 나타납니다. https://karabiner-elements.pqrs.org/ 사이트에서 직접 설치하셔도 됩니다. 2. 실행 Spotlight로 앱을 실행합니다. Spotlight를 사용하지 않으시면 finde.. 2022. 12. 21.
[Node.js] 이벤트 기반 "이벤트 기반이란? 이벤트가 발생할 때 미리 지정해둔 작업을 수행하는 방식을 말합니다." 이벤트 리스너에는 콜백(callback) 함수를 등록합니다. 그리고 시스템에서 이벤트가 발생할 때 콜백 함수를 호출하게 됩니다. 이벤트가 완료되면 다음 이벤트가 발생할 때까지 대기하게 됩니다. 여러 이벤트가 동시에 발생하면 어떤 순서로 콜백 함수를 호출할지 이벤트 루프에서 결정합니다. function first() { second(); console.log('첫 번째'); } function second() { third(); console.log('두 번째'); } function third() { console.log('세 번째'); } first(); 위 예제 코드를 실행하면 아래와 같이 함수들이 호출 스택에 .. 2022. 12. 20.
Shell Script 만들고 실행하기 1. shell script 파일 생성하기 $ touch example_script.sh 2. echo 작성하기 $ vi example_script.sh echo 'Hello World!' 3. 실행하기 $ /bin/bash example_script.sh 2022. 12. 19.
728x90