Programming
유닉스는 프로세스에 다섯 가지 번호를 부여했다. 리눅스도 유닉스 기반이므로, 위와 동일하게 번호를 가진다. PID - 프로세스 식별자 RUID - 실제 사용자 ID EUID - 유효 사용자 ID RGID - 실제 사용자 그룹 ID EGID - 유효 사용자 그룹 ID 사용자 계정관리에 사용 - RUID, RGID 접근 권한 관리에 사용 - EUID, EGID
리눅스 명령어 처리 과정 [ 현재폴더에서 명령어 찾기 ] - 찾는 명령어 있으면, 실행 권한 확인 - 찾는 명령어 없으면, $PATH 확인 [ 실행 권한 확인 ] - 실행 권한 있으면, 사용자ID로 명령어 실행 - 실행 권한 없으면, 명령어 파일의 setuid 확인 [ $PATH에서 명령어 찾기 ] - $PATH에도 없으면, 명령어 실행 실패 ( not found ) [ 명령어 파일 확인 ] - setuid 있으면, 설정된 권한으로 명령어 실행 - setuid 없으면, 명령어 실행 실패 ( not permisson )
Unix란? 여러 프로그램을 동시에 실행하도록 만들어진 운영체제 ( C언어로 만들어졌다. ) Linux란? 기존 Unix에 커널을 추가한 운영체제 ( 커널 - 여러 컴파일러와 도구를 사용 ) 커널 ( kernal ) 하드웨어 제어 ( 파일 입출력, 주변 장치 관리, 프로세스 관리, 통신 관리, 메모리 관리 ) HW, SW를 연결 CPU, 메모리, 보조기억장치의 파일을 Save, Read 쉘 ( shell ) 사용자에게 명령어를 입력받아, 커널을 조작한다 ( bash, sh, csh, zsh )
👉 systemd 란? 리눅스 부팅시, 가장 처음으로 실행되는 프로그램 ( PID1번 ) 시스템을 초기화하고, 환경을 설정해준다. systemd로 프로그램 관리 // 시작 systemctl start 프로그램이름 // 종료 systemctl stop 프로그램이름 // 종료 후 재시작 systemctl restart 프로그램이름 // 종료하지 않고 설정만 로드 systemctl reload 프로그램이름 // 실행중인지 확인 systemctl status 프로그램이름 // 시작 프로그램으로 지정 (부팅시 실행) systemctl enable 프로그램이름 // 시작 프로그램 삭제 systemctl disable 프로그램이름
👉 HTTP 요청 🚩 생김새, 모양 headers: { 'Content-Type': 'application/json' 'method': 'POST', 'mode': 'cors', 'cache': 'no-cache', 'credentials': 'same-origin', 'Authorization': 'Bearer eJfwefnwfewfnfwlalknvo23fdsnewflj' }, body: JSON.stringify({data}) 🚩 Body 클라이언트가, 서버에게 보내는 데이터를 담는 곳 🚩 Headers Body의 데이터를 설명하는 곳 1. Content-type HTTP 요청에 들어가는 body의 타입을 설정한다. // Content-Type : application/x-www-form-url //..
process란? Node.js의 현재 프로세스를 관리하기 위해, 기본적으로 제공되는 객체 현재 작업 디렉토리 가져오기 process.cwd()
ip란? 서버의 IP 주소를 알려주는 Node.js 패키지 설치 npm i ip // typescript npm i -D @types/ip 현재 Node.js 실행중인 컴퓨터 v4 ip 반환하기 import {address} from 'ip' function runServer(ip){} runServer(address())
app.json 이란? 엑스포 프로젝트의 설정파일 실제 파일 모습 { "expo": { "name": "bare_project", // slug가 바뀌면, expo가 이를 감지하고 즉시 배포(publish)한다. "slug": "bare_project", "version": "1.0.0", "assetBundlePatterns": ["**/*"], "ios": { // plist 파일설정을 추가하는 부분 "infoPlist": { "NSCameraUsageDescription": "Allow $(PRODUCT_NAME) to use the camera", "NSMicrophoneUsageDescription": "Allow $(PRODUCT_NAME) to use the microphone" } } } }
nvm으로 Node.js 16 lts 설치 nvm install 16 Node.js 16 lts 사용 ( expo 명령어 사용시 ) // 현재 expo는 node.js 17미만의 버전만 지원한다. nvm use 16 expo 프로젝트 생성 expo init ch9_1 // 4번째 bare workflow 선택 Typescript 설정 파일 생성 tsconfig.json Typescript 파일로 변경 App.js >> App.tsx expo start 로, Typescript 필수 라이브러리 내려받기 expo start 설치 패키지 ( template 사용시 ) expo install react-native-gesture-handler react-native-paper faker@5.5.3 moment ..