분류 전체보기
-
OS - Context Switching 이론 공부운영체제 2022. 3. 17. 16:37
Context Switching이란? CPU는 한번에 하나의 프로세스만 처리할 수 있다. CPU 자원을 공유해서 여러 프로세스가 쓰기 위해서는 context swtiching 과정이 필요하다. 여러 프로세스를 처리해야 하는 상황에서 현재 진행중인 Task(프로세스, 스레드)의 상태를 PCB(Process Control Block)에 저장하고 다음에 진행할 Task의 상태값을 읽어 적용하는 과정을 context switching이라고 한다. 다른 프로세스에게 CPU 자원을 할당해 작업을 수행하는 과정을 말한다. PCB(Process Control Block)란? 프로세스 제어 블록이란 특정한 프로세스에 대해 관리할 필요가 있는 정보를 포함하고 있는 운영체제 커널의 자료구조이다. kernal space에 유..
-
WSL home directory 변경wsl 2022. 2. 11. 18:00
/mnt/하위 디렉토리들은 wsl를 사용할때 통신하는데에 오래 걸려 반응이 느리다는 것이다. 따라서 npm 반응속도를 높이기 위해 /mnt/c/....에 있던 홈 디렉토리를 변경하기로 했다. 하지만 그 과정이 순탄하지 않았다. npm 느림 포스트에서 언급했지만 좀 더 자세히 기록해볼까 한다. WSL 홈 디렉토리 변경 usermod 사용 구글링하여 홈 디렉토리를 변경하는 방법을 찾아보았다. 보아하니 user마다 홈 디렉토리가 다르고 그것을 바꿔주는 과정이었다. $ usermod -d /newhome/username username 이 명령어를 사용하면 username이라는 사용자의 홈 디렉토리를 /newhome/username로 바꾸는 것이다. 하지만 역시 한번에 먹히면 재미가 없나보다. usermod: ..
-
[npm] wsl2에서 npm 명령어의 반응이 느림 - 해결!node.js 2022. 2. 10. 21:54
npm 명령어 반응이 느리다. 혼자 node.js 공부를 하면서 npm을 사용할 일이 생기기 마련이었다. $ npm init npm init을 했는데 명령 수행까지 한 3~4초나 소요되는 것이다. -verbose 옵션을 주고 처리시간을 봤는데 처리하는데 실질적인 시간을 얼마 안걸리고, 명령어가 처음 실행되는 시간이 무척 오래걸렸다. 참을 수 없어서 이유를 찾아보다가 뜻밖에 장소에서 이유를 찾을 수 있었다. https://docs.microsoft.com/ko-kr/windows/dev-environment/javascript/react-on-wsl Linux용 Windows 하위 시스템에 React 설치 WSL(Linux용 Windows 하위 시스템)에 React를 설치하고 React 구성 요소와 cre..
-
[Node.js] http 서버 생성 - http.createServer() 함수node.js 2022. 2. 5. 23:19
node.js에서 http 서버 만들기 http.createServer() 함수로 request를 받고 response할 수 있는 서버(http.server) 객체를 만든다. http.createServer의 인자로 있는 callback 함수는 request, response를 인자로 하고 있으며 각각 요청과 응답에 관한 정보를 가지고 있다. 전체 코드 const http = require("http"); let app = http.createServer(function (request, response) { //응답 url const _url = request.url; //URL 객체 생성 - url의 정보를 object 형식으로 보여준다. const test_url = new URL(_url, "ht..
-
[npm] pm2 관련 자주쓰는 명령어node.js 2022. 2. 4. 22:29
PM2??? PM2 is a daemon process manager that will help you manage and keep your application online 24/7 pm2는 npm에서 설치할 수 있는 패키지로, 우리의 애플리케이션을 모니터링해주는 데몬형식의 프로세스 매니저이다. 쉽게 말하면 우리가 node.js에서 실행시키는 프로그램(프로세스)를 관리해주는 툴이라고 볼 수 있다. 여러 기능들이 있지만, 가장 유용하게 쓰이는 것은 개발할때 코드를 수정할 때마다 node 런타임을 껐다가 다시 켰어야 했는데, 이 pm2는 코드 수정을 감지하고 자동으로 수정된 코드로 다시 프로세스를 실행시켜줘서, 직접 껐다 켰다 할 필요가 없다는 것이다. 또, 예기치 않게 프로세스가 종료되었을때, pm2가 ..
-
Kafka streams로 kafka 내부 데이터 처리Kafka 2022. 1. 13. 14:16
Kafka streams Kafka Streams는 Stream API로 구축된 애플리케이션이고, 브로커와 별도로 구성된다. //Stream API : 컬렉션, 배열등의 저장 요소를 하나씩 참조하며 함수형 인터페이스(람다식)를 적용하며 반복적으로 처리할 수 있도록 해주는 기능 kafka 내부에서 메시지 파이프라인을 구성한다고 생각할 수 있다. 따라서 브로커의 특정 토픽을 구독하여 일련의 로직을 처리한 뒤에, 다시 다른 토픽으로 publish한다. 쉽게 말하면 kafka내부에 있는 데이터에 가공처리한 후 다시 다른 토픽이나 같은 토픽으로 넣어주는 역할을 한다. Kafka streams는 라이브러리로 제공되기 때문에 단순히 main 함수 내에서도 구현이 가능하고, 특정한 프레임워크에 종속되지 않을 수 있다...
-
Kafka connect로 kafka와 여러 서비스 연결하기Kafka 2022. 1. 12. 12:30
Kafka connect??? kafka connect는 kafka와 다른 데이터 시스템 사이에 데이터를 스트리밍해주는 오픈소스 툴이다. kafka connect는 쉽고 간단하게 메시지 파이프를 구성하도록 도와준다. 데이터베이스 전체를 읽을 수 있고, metrics 정보도 모을 수 있다. kafka connect 구성 connector connect 내부의 실제 메시지 파이프라인 connect에 connector를 구성할 땐 connect에 connector 관련 설정을 전달하면 됨 구성된 connector는 주기적으로 메시지를 확인하고, 새로운 메시지가 있으면 파이프라인을 통해 흘려 보낸다. Source connector 외부 애플리케이션에서 kafka로 데이터를 가져오는 역할 외부 애플리케이션 -> ..
-
Kubernetes 위에 kafka 구축 - strimziKafka 2022. 1. 11. 10:32
Kafka를 수동으로 운영하려면 수많은 구성 요소를 꼼꼼히 설정해야 하므로 일이 매우 복잡해진다. Strimzi에서 제공하는 오퍼레이터를 사용하여 Apache Kafka 설정을 순조롭게 원활히 배포한다. strimzi github page https://github.com/strimzi/strimzi-kafka-operator GitHub - strimzi/strimzi-kafka-operator: Apache Kafka running on Kubernetes Apache Kafka running on Kubernetes. Contribute to strimzi/strimzi-kafka-operator development by creating an account on GitHub. github.com ..