정리
-
실습과 그림으로 배우는 리눅스 구조 1장 정리운영체제 2022. 10. 29. 11:21
정리 리눅스의 중요한 역할은 디바이스를 조작하는 일이다. 디바이스 드라이버를 통해서만 프로세스가 디바이스를 조작할 수 있다. 리눅스는 디바이스의 종류가 같으면 같은 인터페이스로 조작한다. CPU는 프로세스가 직접 하드웨어에 접근하는 것을 차단한다. CPU에는 사용자 모드와 커널 모드가 있다. 사용자 모드로 처리하는 경우 일반적인 프로세스 처리 커널 모드로 처리하는 경우 디바이스 드라이버에 접근하는 경우 프로세스 관리 시스템 프로세스 스케줄링 메모리 관리 시스템 프로세스가 커널 모드의 기능을 사용하기 위해서는 시스템 콜을 통해 커널에 요청을 한다. 커널은 CPU, 메모리 등의 자원을 관리하며, 각 프로세스에 적절히 분배한다. 프로세스 스케줄러는 CPU 자원을 관리한다. 메모리 관리 시스템은 메모리 자원을 ..
-
Vagrant 시작하기Ansible 2021. 8. 18. 23:11
1. vagrant sample code 만들기 vagrant init 2. vagrantfile 수정하기 vagrantfile에서 다음과 같이 수정하여 centos/7를 사용하기로 한다. config.vm.box = "centos/7" 공유 디렉토리는 사용하지 않을 것이므로 다음과 같이 변경해준다. config.vm.synced_folder ".", "/vagrant", disabled: true (현재 디렉토리와 원격지의 /vagrant를 마운트하여 사용하지 않을 것이다) 3. vagrant의 필요한 확장팩을 설치 vagrant plugin install vagrant-vbguest 만약 마운트 에러가 발생한다면 더 낮은 버전을 사용해보자. vagrant plugin uninstall vagrant-..
-
Nodejs: socket.io 모듈 사용 정리Nodejs 2021. 8. 16. 00:38
1. frontend 코드 GitHub - sjoh0704/My-Javascript-Note: This repo is for learning Javascript This repo is for learning Javascript. Contribute to sjoh0704/My-Javascript-Note development by creating an account on GitHub. github.com 2. socketio 사용하기 GitHub - sjoh0704/My-Javascript-Note: This repo is for learning Javascript This repo is for learning Javascript. Contribute to sjoh0704/My-Javascript-Note..
-
Nodejs: Mysql사용을 위한 Sequelize 설정Nodejs 2021. 8. 10. 17:00
이번 포스팅은 Mysql사용을 위한 Sequelize 설정에 대해 다룬다. (mysql 서버 세팅은 생략한다) 1. 필요한 모듈 설치 sequelize, mysql2, sequelize-cli를 설치한다. sequelize-cli는 npx sequelize 커맨드를 사용하여 mysql을 다루기 위함이다. npm i sequelize mysql2 -S npm i sequelize-cli -D 2. Sequelize 사용 준비 다음 커맨드를 통해 sequelize를 사용할 환경을 갖춘다. npx sequelize init 커맨드를 실행하면 다음과 같은 내용들이 추가된다. 1) models 폴더에 index.js 생성. 이는 sequelize 모델을 편리하게 사용할 수 있도록 해준다. 2) config 폴더에..
-
NAT Instance port-forwardingAWS 2021. 8. 1. 14:46
1. NAT 인스턴스 생성 NAT Instance AMI 이용하여 public subnet에 NAT Instance 생성. 보안 그룹 - All Traffic으로 세팅. 작업 - 네트워킹 - 소스/대상 확인 변경 - disable routing table 세팅은 NAT Gateway 세팅할 때와 동일 2. 포트 포워딩 iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 30000 -j DNAT --to 10.0.1.69:30000 NAT Instance의 30000포트로 들어온 경우, 10.0.1.69:30000으로 라우팅 3. NAT 테이블 확인 iptables -nL -t nat
-
K8S command와 argsK8S 2021. 6. 15. 19:11
Dockerfile의 CMD, ENTRYPOINT와 K8S의 command, args를 비교함으로써 yaml 파일에서 command와 args의 역할을 알아보자. Dockerfile의 CMD와 ENTRYPOINT에 대해서 잘 모른다면 다음을 참고 Dockerfile CMD vs ENTRYPOINT Dockerfile을 이용해서 ubnutu image를 빌드하고 컨테이너가 시작되자마자 sleep 5라는 커맨드를 실행하고 싶다. 이때는 dockerfile에서 CMD sleep 5 라고 지정해주면 컨테이너가 시작하자마자 sleep 5가 실행된 seungjuitmemo.tistory.com 위 도커파일을 통해서 만들어진 ubuntu-sleeper 이미지는 컨테이너가 실행되자 마자 sleep 5 커맨드가 실행된다..
-
Python: 클래스, 멀티스레딩, 멀티프로세싱(Class, Multi threading, Multi Processing) 참고Python 2021. 4. 3. 00:45
class Line: def __init__(self, length): self.length = length def __del__(self): print("{}길이의 선 삭제".format(self.length)) def __repr__(self): return str(self.length) def __add__(self, other): return self.length + other.length def __lt__(self, other): return self.length < other.length def __eq__(self, other): return self.length == other.length def __getattr__(self, item): pri..
-
클라우드: 쿠버네티스 디플로이먼트(Deployment) 실습하기K8S 2021. 2. 14. 11:04
네트워크: 쿠버네티스 레플리카셋(Replica Set) 실습하기 우선 포드는 기본적으로 여러 개의 컨테이너를 추상화하여 하나의 어플리케이션으로 동작한다. 외부 사용자가 어플리케이션으로 요청을 보내면 쿠버네티스에서는 이러한 요청을 동일한 여러 seungjuitmemo.tistory.com 앞서 레플리카셋을 yaml파일로 작성하고 이를 이용해서 레플리카셋을 만들었다. 하지만 실제 쿠버네티스 운영에서는 레플리카셋과 포드의 정보를 정의하는 디플로이먼트(Deployment)라는 오브젝트를 yaml파일에 정의하여 사용한다. 디플로이먼트는 레플리카 셋의 상위 오브젝트이기 때문에 디플로이먼트를 생성하면 해당 디플로이먼트에 대응하는 레플리카셋도 함께 생성된다. 다음 yaml 파일을 이용해서 디플로이먼트에 대해서 알아보자..