전체 글 142

Multiplexed I/O - poll()

poll() 은 select()의 여러가지 부족한 부분들을 해결해 주며 select() 에 비해서 우수하다. 1. 사용자가 (highest-number fd + 1) 을 인자로 전달할 필요가 없다. 2. large-valued file descriptor 들에 대해서 좀더 효율적이다. 3. 단일 구조체 배열로 fd 집합을 정환ㄱ한 크기로 생성할 수 있다. 4. 입력 (events 필드)과 출력(revents 필드)이 분리되어 있어서, 변경없이, 배열을 재사용할 수 있다. 하지만 select()는 여전이 사용되고 있는데 이유는 아래와 같다. 1. 매우 간편하고, 몇몇 Unix 시스템은 poll() 지원하지 않는다. 2. 좀더 좋은 timeout 처리 능력을 제공한다. int poll(struct pollf..

Linux_system 2022.09.18

Multiplexed I/O - select()

단일 thread 프로그램에서, 동시에 여러가지 입출력 장치를 처리하고자 할 때 사용하는 매커니즘 이다. Multiplexed I/O 다중 file descriptor 들을 동시에 block 되도록 한다. Block 되어 있는 fd들중에 하나가 읽기나 쓰기 준비가 되면 block 상태에서 해제되는 신호를 보낸다. Multiplexed I/O는 다음과 같은 방식으로 동작한다. 1. file descriptor 들 중에서 하나가 입출력 준비 되었을 때 알려줌. 2. 하나 이상의 file descriptor가 준비될 때 까지 sleep 함 3. blocking 없이, 입출력 준비된 모든 file descriptor들을 제어함 5. 단계 1로 되돌아 가서, 다시 시작함. select() 함수의 경우, Multi..

Linux_system 2022.09.18

node.js 로 linux shell script 실행하기

Ubuntu Linux 에 node.js 를 설치하고, 환경을 만듭니다. https://full-stack-developer.tistory.com/3?category=888454 Express 설치 설정 Express 는 Node.js 위에서 돌아가는 Framework로 쉽게 node.js based web server 를 만들수 있도록 많은 기능들을 제공한다. 전세계 적으로 많은 회사 들에서 Express 를 사용하고 있다. command prompt 를 열고.. full-stack-developer.tistory.com project_root /app.js 를 생성하고 아래와 같이 코딩합니다. const express = require('express') const app = express() //e..

web_fullstack 2022.09.15

QT

https://wikidocs.net/21849 PyQt5 01. 소개 (Introduction) - PyQt5 툴킷의 기본적인 기능들에 대해 다룹니다. - 제공되는 예제 코드들은 파이썬3으로 작성되고 Windows, macOS 환경에서 테스트되었습니다. # ... wikidocs.net https://webnautes.tistory.com/1509 Ubuntu 20.04에 QT 설치하기 Ubuntu 20.04에 QT5 를 설치하는 방법을 다룹니다. 2021. 8. 17 최초작성 우선 g++ 컴파일러가 필요하며 추가로 make를 설치해야 합니다. $ sudo apt-get install build-essential make QT WIKI에서 확인해보니 다음처럼 webnautes.tistory.com ht..

Linux_system 2022.09.07

서버와 클라이언트

클라이언트는 요청을 보내는 주체로 - 웹브라우저 - 모바일 앱 서버는 네트워크를 통해 클라이언트에 정보 혹은 서비스를 제공하는 컴퓨터 - 웹페이지, 웹사잍, 앱 등을 저장한 컴퓨터 웹 프로그래밍이란, HTTP 프로토콜로 통신하는 클라이언트와 서버를 개발하는 것 HTTP 요청 - Method 1. Get : Server로 부터 data를 받을 때 사용한다. 2. Post : Server로 요청을 수행하거나, file 을 송부할 때 사용한다.

web_fullstack 2022.08.20

netplan 고정 IP 설정시, 서브넷 마스크 작성법

snetmask 255.255.255.0 게 어떻게 24가 되는가? netmask 를 모두 2진수로 변경한 다음 , 왼쪽에서 부터 1이 모두 몇개인지 쓴다. 예) 255.255.255.0 = 11111111.11111111.11111111.00000000 = 8 + 8 + 8 + 0 = 24 255.255.254.0 = 11111111.11111111.11111110.0 = 8+8+7+0 = 23 ## 참조 ## netplan 설정하는 방법: https://blog.dalso.org/article/ubuntu-20-04-lts-nework Ubuntu 20.04 LTS 네트워크 연결하기.(고정IP 할당) - 달소씨의 하루 Connection failed Activation of network connec..

Linux_system 2022.08.19

User ID/Group ID

ls -l 로 출력 되는 항목을 보면 , 다음과 같이 카테고리를 나눌 수 있다. ben@ben-ubuntu-server:~/share/apue_github/apue/ben$ ls -l total 180 -rw-rw-r-- 1 ben ben 21 Jun 15 08:14 data -rwxrwxr-x 1 ben ben 17632 Jun 17 02:26 fig1_3 -rw-rw-r-- 1 ben ben 397 Jun 15 07:21 fig1_3.c 1) 파일 유형. '-' 는 일반파일, 'd'는 디렉토리, 'b' 는 블록 디바이스, 'c'는 문자 디바이스, 'I'는 링크를 뜻한다. 2) 허가권 'r' 은 read able , 'w' 는 write able , 'x' sms execute able 이다. 3자리씩..

Linux_system 2022.08.19