일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- KAKAO
- 자바스크립트
- 백준
- 컴퓨터공학
- 패스트캠퍼스
- git
- Javascript
- computerscience
- 부트캠프
- CSS
- 컴퓨터과학
- 알고리즘
- BFS
- 국비지원취업
- 프론트엔드개발자
- js
- CS
- html/css/js
- 국비지원
- 야놀자
- nodejs
- 호이스팅
- 코테
- DFS
- 너비우선탐색
- 코딩테스트
- 그리디
- github
- LinkSnap
- cpu
- Today
- Total
목록2023/09 (10)
My Boundary As Much As I Experienced
리액트의 소스코드 import React, { Component } from 'react'; import PropTypes from 'prop-types'; export default class Basic extends Component { static propTypes = { name: PropTypes.string.isRequired, birth: PropTypes.number.isRequired, lang: PropTypes.string, }; static defaultProps = { lang: 'Javascript', }; static contextTypes = { router: PropTypes.object.isRequired, }; state = { hidden: false, }; compo..

세마포어 : 멀티프로그래밍 환경에서 공유 자원에 대한 접근을 제한하는 방법 공유된 자원에 여러 프로세스가 동시에 접근하면서 문제가 발생할 수 있다. 이때 공유된 자원의 데이터는 한 번에 하나의 프로세스만 접근할 수 있도록 제한을 둬야 한다. 이를 위해 나온 것이 바로 '세마포어' 임계 구역 여러 프로세스가 데이터를 공유하며 수행될 때, 각 프로세스에서 공유 데이터를 접근하는 프로그램 코드 부분 세마포어 P, V 연산 P : 임계 구역 들어가기 전에 수행 ( 프로세스 진입 여부를 자원의 개수(S)를 통해 결정) V : 임계 구역에서 나올 때 수행 ( 자원 반납 알림, 대기 중인 프로세스를 깨우는 신호 ) // P(S); procedure P(S) --> 최초 S값은 1임 while S=0 do wait -..

여러 프로세스가 하나의 공유 자원에 접근하려 할 때 발생하는 문제이다. 데이터의 최종 상태는 마지막에 접근한 프로세스에 따라 달라진다고 한다. 이런 문제 때문에 상호 배제(Mutual Exclusion)이 필요하다. 컴퓨터 시스템에서 데이터 연산의 순서는 이렇다. 연산할 데이터를 저장 공간에서 가져온다. -> 연산한다. -> 연산한 결과를 저장 공간에 반영한다. 그런데 여러 실행 주체가 1개의 공통 데이터를 수정할 때 예상치 못한 경쟁 상태가 발생하는 것이다. count++와 count--가 서로 참조해서 예상치 못한 값을 나오게 하는 예시. 경쟁 상태가 일어나는 경우 커널 작업을 수행하는 중에 인터럽트 발생 문제점 : 커널모드에서 데이터를 로드하여 작업을 수행하다가 인터럽트가 발생하여 같은 데이터를 조..
1. 스코프 모든 식별자(변수 이름, 함수 이름, 클래스 이름 등)는 자신이 선언된 위치에 따라 접근 가능한 범위가 결정되는 것을 말함. var, 함수 스코프 var는 함수를 기준으로 유효 범위가 결정된다. 다른 함수 안의 변수는 접근 불가. function displayNum() { var num = 100 console.log(num) // 100 } displayNum() // 100 console.log(num) // num is not defined 그런데 조건문은 함수가 아니라 문(statement)이기 때문에 안으로 접근 가능하다. if (true) { var age = 10 } else { var age = 20 } console.log(age) //20 let, const 직관적으로 중괄..

동기식 (Synchronous) 먼저 시작된 작업이 끝날 때까지 다른 작업을 시작하지 않고 기다렸다가 다 끝나면 새로운 작업을 시작하는 방식이다. 직렬로 배치. 작업 실행의 순서가 확실히 정해져 있다. 비동기식 (Asynchronous) 동기식 방식과는 다르게 먼저 시작된 작업이 끝나든 안 끝나든 새로운 작업을 시작하는 방식이다. 위 그림 Asynchronous와 같이 작업이 병렬로 배치되어 실행되며 작업 완료 순서가 확실하지 않다. 나중에 시작된 작업이 먼저 끝나는 경우도 발생. DOM Element 의 이벤트 이벤트 핸들러 마우스, 키보드 입력 (click, keydown 등), 페이지 로딩 (DOMContentLoaded 등) 타이머 타이머 API (setTimeout 등), 애니메이션 API (r..

교착 상태(膠着狀態) 또는 데드락(deadlock)은 두 개 이상의 작업이 서로 상대방의 작업이 끝나기 만을 기다리고 있기 때문에 결과적으로 아무것도 완료되지 못하는 상태이다. 주로 멀티 프로그래밍 환경에서 한정된 자원을 얻기 위해 서로 경쟁하는 상황 발생 한 프로세스가 자원을 요청했을 때, 동시에 그 자원을 사용할 수 없는 상황이 발생할 수 있음. 이때 프로세스는 대기 상태로 들어감 대기 상태로 들어간 프로세스들이 실행 상태로 변경될 수 없을 때 '교착 상태' 발생 데드락(DeadLock) 발생 조건 상호 배제(Mutual exclusion)자원은 한번에 한 프로세스만 사용할 수 있음 점유 대기(Hold and wait)최소한 하나의 자원을 점유하고 있으면서 다른 프로세스에 할당되어 사용하고 있는 자원..

스케줄링 CPU가 하나의 프로세스 작업이 끝나면 다음 프로세스 작업을 수행해야 한다. 이때 다음 프로세스가 어느 프로세스인지를 선택하는 알고리즘을 CPU Scheduling 알고리즘이라고 한다. 비선점 한 프로세스가 CPU를 할당받아 실행중이라면 다른 프로세스들이 CPU를 강제적으로 뺏을 수 없는 스케줄링 방식 FCFS (First Come First Served) : 자료구조 큐의 데이터 처리 큐에 도착한 순서대로 CPU 할당 SJF (Shortest Job First) : 우선순위 큐의 데이터 처리(최소 시간) 수행시간이 가장 짧다고 판단되는 작업을 먼저 수행(FCFS 보다 평균 대기 시간 감소, 짧은 작업에 유리) HRN (Hightest Response-ratio Next) : 우선순위 큐의 데이..

https://www.acmicpc.net/problem/1697 문제 수준: 실버1 문제 요약: 0~100000만큼의 너비가 있는 도로 위에서 수빈이와 동생은 숨바꼭질을 하고있다... 수빈이가 가능한 이동 방식은 1. 앞으로 한 칸 2. 뒤로 한 칸 3. 두 배 점프 이 있다. 이 모든 행동은 1초의 시간을 소요한다. 그렇다면, 동생의 위치까지 수빈이가 최단 시간으로 도달하려면 몇 초가 걸리는가? 입출력 예 (입력 / 출력): 첫 줄에 수빈이의 위치와 동생을 위치가 주어진다. 최단시간으로 동생을 잡는다면 몇 소가 걸리는지 출력하라. 문제 풀이 전략: 계단오르기 문제와 조금 비슷한 유형이다. BFS입문 문제로 유명한듯 하다. 푸 1. queue에 수빈이의 위치를 넣는다. 2. queue에서 위치 하나를 ..

https://www.acmicpc.net/problem/1620 문제 수준: 실버4 문제 요약: 이다솜씨가 포켓몬 암기 시험 보는데 쉽게 풀기 위해 1. 번호가 나오면 해당 번호 포켓몬 이름 대기 2. 이름이 나오면 해당 이름 포켓몬 번호 대기 를 하는 프로그램을 만들어줘라. (문제의 3분의2는 헛소리이고 결국 하라는건 이거였다ㅋㅋ..) 입출력 예 (입력 / 출력): 첫째줄엔 도감 등록 포켓몬 갯수 N와 시험 문제 갯수 M가 나오고 두번째 줄부터 N+1번째 줄까진 도감 등록 포켓몬 이름들이 나오고, 나머지 줄들은 문제가 나온다. 도감에 등록된 순서가 포켓몬의 번호이다. 문제 풀이 전략: 같은 날 푼 요세푸스 문제와 같은 레벨 문제가 맞나? 싶을 정도로 쉽게 풀었다. 1. 포켓몬 번호가 주어지면 배열의 ..

https://www.acmicpc.net/problem/1158 문제 수준: 실버4 문제 요약: 주어진 N명의 사람이 순서대로 둘러앉아 있다. 이 중 K번 째 사람을 순서대로 뺄 때, 뺀 순서를 구하시오. 7명의 사람이 있고 3을 카운트하며 한 명 씩 뺀다고 할 때, 순서로 빠지게 된다. 입출력 예 (입력 / 출력): 입력 첫 째 줄에는 N명과 기준 K가 주어진다. 문제 풀이 전략: queue 문제를 많이 안 풀어봐서 이게 queue문제인지 아닌지 많이 헤맸다. 처음 도전하다가 실패한 로직은 아래와 같다. 처음엔 while문 순회로 계속 방문하며 1. 방문한 노드는 넘어가고 2. 방문 안 했으면서 + 주어진 순서가 아니면 순서만 ++하고 넘어가고 3. 방문 안 했으면서 + 주어진 순서면 정답 배열에 넣..