전체 글 679

[React] 리액트로 간단한 투두리스트 만들기

노마드코더 ReactJS로 영화 웹 서비스 만들기 #7 To Do List import { useState, useEffect } from "react"; function App() { const [toDo, setToDo] = useState(""); const [toDos, setToDos] = useState([]); const onChange = (event) => setToDo(event.target.value); const onSubmit = (event) => { event.preventDefault(); if (toDo === "") { return; } setToDos((currentArray) => [toDo, ...currentArray]); setToDo(""); }; console..

FRONT/REACT 2022.01.07

[React] UseEffect 사용하기(노마드코더 영화 웹서비스 만들기)

import Button from "./Button"; import styles from "./App.module.css"; import { useState, useEffect } from "react"; function App() { const [counter, setValue] = useState(0); const [keyword, setKeyword] = useState(""); const onClick = () => setValue((prev) => prev + 1); const onChange = (event) => setKeyword(event.target.value); useEffect(() => { console.log("I run only once."); }, []); // 처음 rend..

FRONT/REACT 2022.01.06

[Linux] 프로세스 ID

각 프로세스는 프로세스를 구별하는 번호인 프로세스 ID를 갖는다. 각 프로세스는 자신을 생성해준 부모 프로세스가 있다. int getpid( ); // 프로세스의 ID를 리턴한다. int getppid( ); // 부모 프로세스의 ID를 리턴한다. 프로세스는 프로세스 ID 외에 프로세스의 사용자 ID와 그룹 ID를 갖는다. -그 프로세스를 실행시킨 사용자의 ID와 사용자의 그룹 ID -프로세스가 수행할 수 있는 연산을 결정하는 데 사용된다. (프로세스의 권한을 통해 누구의 권한으로 어떤 리소스에 대한 할당 작업을 할것이냐를 결정해야 하는데, 사용자의 아이디로만 결정이 안될수도 있다.) 프로세스의 사용자 ID 실제 사용자 ID(real user ID) 그 프로세스를 실행한 원래 사용자의 사용자 ID로 설정..

DEVOPS/LINUX 2021.12.04

[Linux] 프로그램 실행 시작, 종료

프로그램 실행 시작 exec 시스템을 호출하여 디스크에 있는 실행파일을 주기억장치로 올려 실행시킨다. c 시작 루틴에 명령 줄 인수와 환경 변수 두가지 정보를 전달하고 프로그램을 실행시킨다. c 컴파일러가 프로그램을 컴파일 할 때 메인 함수 말고 별도의 코드를 추가한다. 이것을 c start-up routine이라고 한다. 여기서 exec에서 받은 인자를 가지고 main 함수를 호출한다. 프로그램 종료 프로그램 종료는 정상 종료, 비정상 종료로 나누는데 이것은 커널의 입장에서 논한다. 정상 종료 main() 실행을 마치고 리턴하면 C 시작 루틴은 이 리턴값을 가지고 exit()을 호출 프로그램 내에서 직접 스스로 exit()을 호출 비정상 종료 exit을 부르지 않고 종료하는 것(ex-kill) 시그널에..

DEVOPS/LINUX 2021.12.04

[Linux] 프로세스 명령어(sleep, kill, exit)

sleep 지정된 시간(초)만큼 실행을 중지한다. $ sleep (초) kill 현재 실행중인 프로세스를 강제로 종료한다. $ kill [-시그널] 프로세스번호 exit 쉘을 종료하고 종료코드(exit code)을 부모 프로세스에 전달한다. $ exit [종료코드] exit(0) - 정상적인 종료 exit(1) - 비정상적인 종료(오류 났을 때) 부모 프로세스는 전달된 종료코드를 보고 자식 프로세스가 이 번호로 가지고 종료했다는 것을 알게된다. 커널 입장에서 exit 했다는 것은 이 프로세스가 정상적으로 사용자가 종료했다고 생각한다. 오류라는 것은 프로그래머가 생각하는 논리적인 오류이다. 커널 입장과 프로그래머 입장에서 오류를 판단하는 기준이 다르다.

DEVOPS/LINUX 2021.12.04

[Linux] 프로세스란?(+init프로세스)

프로그램과 프로세스 프로그램이란 실행 파일이다. 실행 파일이 주기억장치에 올라가 실행을 하게 되면 프로세스로 만들어진다. 프로세스란 실행중인 상태의 프로그램을 말한다. 프로그램 자체가 프로그램은 아니다. 하나의 프로그램에서 여러 개의 프로세스를 생성할 수 있다. 각 프로세스를 프로그램의 인스턴스라고 한다. 프로세스를 다른 프로세스가 만든다. 프로세스마다 부모 자식간의 관계가 있는데 만든 프로세스를 부모 프로세스, 만들어진 프로세스를 자식 프로세스라고 부른다. 모든 프로세스는 부모 프로세스를 가진다. ex) 쉘에서 프로세스를 만드는게 가장 흔한 프로세스를 만드는 방법이다. 쉘이라는 프로세스가 vi라는 프로세스를 만든다. 프로세스 각 프로세스는 유일한 프로세스 번호 PID를 갖는다. 사용자는 파일 이름으로 ..

DEVOPS/LINUX 2021.12.04

[Linux] 잠금(lock)

파일 혹은 레코드(파일의 일부 영역) 잠금 -한 프로세스가 그 영역을 읽거나 수정할 때 다른 프로세스의 접근을 제한 -잠금된 영역에 한 번에 하나의 프로세스만 접근 -레코드에 쓰기(혹은 수정)를 할 경우 대상 레코드에 대해 잠금을 해서 다른 프로세스가 접근하지 못하게 해야 한다. 잠금 구현 fcntl( ) 함수로 구현 int fcntl(int fd, int cmd, struct flock *lock); 잠금의 종류 -F_RDLCK : 여러 프로세스가 공유 가능한 읽기 잠금 -F_WRLCK : 한 프로세스만 가질 수 있는 배타적인 쓰기 잠금 이 때 읽기 잠금은 동시에 여러개의 프로세스가 여러번 할 수 있다. 즉 공유가 가능하다. 데이터의 변화가 안생기기 때문이다. 쓰기 잠금은 다른 프로세스가 read도 못..

DEVOPS/LINUX 2021.12.04
반응형