전체 글

기록 겸 공부 블로그입니다. 문제를 해결해 나아가는 과정을 기록하고 있어요. 잘못된 부분이 있으면 자유롭게 댓글 달아 주세요👍
⏰문제 https://www.acmicpc.net/problem/2573 2573번: 빙산 첫 줄에는 이차원 배열의 행의 개수와 열의 개수를 나타내는 두 정수 N과 M이 한 개의 빈칸을 사이에 두고 주어진다. N과 M은 3 이상 300 이하이다. 그 다음 N개의 줄에는 각 줄마다 배열의 각 행을 www.acmicpc.net 지구 온난화로 인하여 북극의 빙산이 녹고 있다. 빙산을 그림 1과 같이 2차원 배열에 표시한다고 하자. 빙산의 각 부분별 높이 정보는 배열의 각 칸에 양의 정수로 저장된다. 빙산 이외의 바다에 해당되는 칸에는 0이 저장된다. 그림 1에서 빈칸은 모두 0으로 채워져 있다고 생각한다. 2 4 5 3 3 2 5 2 7 6 2 4 그림 1. 행의 개수가 5이고 열의 개수가 7인 2차원 배열에..
npm install react-cookie yarn add react-cookie # 전체 코드 import {Cookies} from 'react-cookie'; const cookies = new Cookies(); export const setCookie = (name : string, value : string, option?:any) => { return cookies.set(name, value, {...options}); import {Cookies} from 'react-cookie'; const cookies = new Cookies(); Set export const setCookie = (name : string, value : string, option?:any) => { retu..
위와 같은 코드를 쳤는데, f12를 보니 undefined라고 정의됌 react는 환경 변수 설정 시에 변수명에 REACT_APP_이라는 접두어가 꼭 필요함!! 작성할 때는 홑, 쌍따옴표 필요없다. 알아서 string으로 인식 줄 끝에 , ;가 필요하지 않다 루트 경로에 있는지 확인한다. .gitignore에 포함시키기 주석은 # 키=값 =의 양옆 띄어쓰기 금지 파일 변경하면 개발 서버 다시 시작해야한다. https://velog.io/@rmaomina/react-env React에서 .env 환경변수 사용하기 외부 api에 접근하기 위해 token 등이 필요한 경우, 배포하지 않고 개발환경에만 적용할 수 있도록 환경 변수를 설정해야 한다. .env 파일을 가지고 process.env로 가져오는데, nu..
목차 📂content 1. 프로세스 생성 사람은 자식을 낳으면 아이부터 시작해서 자라는데, 프로세스는 부모 프로세스가 자식 프로세스를 낳으면 복제 생성을 하게 된다. 부모와 같은 나이를 가진 프로세스가 하나 생긴다. 프로세스를 만드는 행위는 사용자 프로세스가 아닌 운영체제가 한다. 직접 못 하는 것은 시스템 콜을 해서 운영체제에게 부탁한다. 프로세스에서는 부,모가 따로 있는 것이 아니다. 하나가 복제 생성을 해서 만들어져서 트리 구조이다. 프로세스는 자원을 필요로 한다. 자원은 운영체제에게 받는데, 경우에 따라서는 부모 프로세스와 자원을 공유하는 경우가 있다. 앞에서 스레드들끼리는 자원을 공유한다고 했다. 하나의 프로세스 내부에 여러 스레드가 있어서 자원을 공유함. 부모가 자식을 낳으면 사실 두 개(부모..
목차 📂content 프로세스의 관리3 1. 스케줄러 운영체제의 함수, 또는 코드 중의 일부분인데 역할이 나누어져 있어서 그냥 스케줄러라고 부르는 것. 그래서 스케줄러는 그냥 운영체제다!라고 보면된다. 장기 스케줄러 : 메모리는 사실 스케줄이 필요하지 않지만 그냥 메모리 스케줄러라고 보아라. (프로세스 상태도 참고하기) 프로세스가 처음에 만들어 질 때, 바로 ready상태가 되는 것이 아니고, new에 있다가 admitted되면 ready 상태로 넘어온다. 이때 이 admitted 해주는 것이 장기스케줄러. 즉, 프로세스가 여러개를 실행시켰다고 했을 때, 무조건 다 cpu를 얻을 수 있는 것이 아니고 메모리에 당장 필요한 부분이 올라와야지만 cpu 기계어 실행이 가능하다. 처음에 프로세스가 시작될 때 메..
목차 📂content 1. 프로세스의 개념 프로세스 : 실행중인 프로그램 프로세스의 문맥 문맥 : 이 프로세스가 어떤 상태에 있는 가. 이때 상태가 문맥. 그래서 문맥은 시간의 흐름에 따라 바뀐다. 현재 상태는 꼭 현재에 의해 결정되는 것은 아니고 과거에 의해 결정될 수도 있다. 운영체제가 매우 중요하게 생각함. 스택을 보면 현재 함수가 몇 개가 호출했고, 몇 개가 실행되고 있는지 알려줌. pcb : 각각의 프로세스를 운영체제가 관리하면서 가지고 있는 자료구조 2. 프로세스의 상태 cpu가 하나 밖에 없기 때문에 cpu에서 기계어를 실행하고 있는 프로세스는 매 순간 하나이다. 이 프로세스를 running 상태에 있다고 한다. cpu를 쓰고 싶은데 하나밖에 없으니까 누군가는 기다려야하는데 그 상태에 있는 ..
목차 📂content 1. 프로그램의 실행(메모리 load) 프로그램이 실행되는 단계를 보여주는 그림 실행 파일을 실행시키면 메모리에 올라가서 프로세스가 된다. 운영체제 kernal이 기본적으로 메모리에 올라가 있다. 사용자 프로그램들은 실행을 시킬때 메모리에 올라가서 프로세스가 되는 것. 사실은 중간에 virtual memory라는 단계를 거친다. 버추얼 메모리 : 프로그램이 실행될 때는 그 프로그램만의 독자적인 주소 공간(address space)이라는 것이 만들어진다. 실제로 존재하는 것이 아니라 머리속에 존재하는 것. 당장 필요한 부분은 물리적인 메모리에 올라가게 되고, 그렇지 않은 부분은 swap area라는 부분에 올라간다. 물리적인 주소와 논리적(virtual) 주소는 다르기 때문에 주소 변..
목차 📂content 0. Intro cpu program counter가 가리키고 있는 메모리 위치에서 매 순간기계어를 읽어서 실행함. program counter cpu 안에 있는 register 중 하나. 기계어 하나를 실행하고 나면 그 다음 위치를 가리켜서 다음 기계어를 읽어와서 실행한다. 단! 프로그램은 시작과 끝까지 항상 동일한 순차적인 로직을 가지고 실행되지 않는다. 조건 만족 여부에 따라서 다른 기계어가 실행될 수도 있다. 그래서 c언어를 사용할 때 if문, 반복문을 돌면 항상 바로 다음으로 넘어가지 않고, 그 다음으로 넘어가거나 함수를 이용해서 위치가 점프된다. 인터럽트가 들어오면 프로그램 카운터가 어디를 가리켰는지 모르지만, 무조건 프로그램 카운터는 운영체제의 위치를 가리키도록 정해져있..
목차 📂content 1. 컴퓨터 시스템 구조 메모리도 device이기 때문에 전담하는 controller가 붙어있다. controller들도 작업 공간들이 있는데, 이 것을 local buffer라고 한다. cpu가 운영체제에 의해서 실행이 될 때는 머든 상관없음. (운영체제는 컴퓨터를 관리하기 위해 만들어진 것이기 때문) 그런데 운영체제가 사용자 프로그램에게 cpu를 넘겨줄 때는 사용자 프로그램이 무슨 짓을 할 지 모름(예를 들어 cpu를 독점한다거나, 메모리를 많이 쓰도록). 일단 cpu를 넘겨주면 운영체제는 그것을 제어할 길이 없다. cpu에서 기계어를 실행할 때, 지금 운영체제가 실행하는 것인지, 사용자 프로그램이 실행하는 것인지 구분하는 것을 두고 있다. 그것이 바로 mode bit이라는 것이..
목차 📂content 0. Intro cpu는 컴퓨터의 두뇌라고는 하지만 교수님피셜 컴퓨터의 두뇌는 사실 운영체제이다. cpu는 기계어를 대단히 빠르게 실행하는 역할은 하지만 본인이 무엇을 생각하지는 못한다. 한정된 메모리에 여러 프로그램이 동시에 올라간다. 프로그램마다 메모리를 조금씩 나누어 주어야한다. 부처에 돈을 줄때 n분의 1씩 나누어 주는 것이 아니라 정부가 중요한 분야에 집중투자하는 것 하여 성장을 이끌어내어 다음에 또 다른 것에 투자하는 것처럼 메모리도 같다. 필요할때 특정 프로그램에게 메모리를 몰아주는 것이 컴퓨터를 더 효율적으로 돌아가게 만든다. 1. 운영체제의 분류 1-1. 동시 작업 가능 여부 1-2. 사용자의 수 다중 사용자 : 한 대의 컴퓨터에 여러 사용자가 동시에 접속해서 사용 ..
i_zzy
Izzy's blog