![react](https://tistory1.daumcdn.net/tistory/4365896/skin/images/react-logo.png)
목록📖 전체보기 (254)
즐겁게, 코드
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b1LeZn/btq2iro3N8B/lo0TDclrIxASCDQlv1Wxf1/img.jpg)
이 글은 한국기술대학교 컴퓨터공학부의 OS 공개강의를 시청한 후 정리한 내용입니다. 목차 프로세스의 개념 PCB (Process Control Block) 프로세스의 상태 인터럽트 컨텍스트 스위칭 1. 프로세스의 개념 작업 (Job) / 프로그램 (Program) 실행할 프로그램 + 데이터 컴퓨터 시스템에 실행을 요청하기 전의 상태 프로세스 실행을 위해 시스템(커널)에 등록된 작업 시스템 성능 향상을 위해 커널에 의해 관리됨. ⇒ 작업(Job)을 요청해 커널에 등록되면 이를 프로세스라 함. 1. 1. 프로세스의 정의 실행중인 프로그램 (커널에 등록되고, 커널의 관리를 받는 작업) 각종 자원을 요청하고 할당받을 수 있는 객체 자원의 개념 커널의 관리 하에 프로세스에 할당/반납되는 수동적 객체 자원의 종류 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/VYqT1/btq2nixMMls/v98UyCDUJKCkQE64PrDZa0/img.png)
토스트 UI 팀의 "TDZ을 모른 채 자바스크립트 변수를 사용하지 말라" 글을 읽고, 오늘도 변수를 스스럼없이 사용한 것을 반성했습니다. TDZ(Temporal Dead Zone) 는 초기화되지 않은 변수가 저장되는 곳인데요, 오늘은 TDZ와 변수에 대한 얘기를 해보도록 하겠습니다. var, const, let과 호이스팅 console.log(Var); // undefined console.log(Let); // ReferenceError: Let is not defined var Var = 1; let Let = 2; TDZ를 소개하기 전, 잠깐 호이스팅의 개념을 되짚어보는 시간을 갖겠습니다. 초기화되지 않은 변수에 접근하려 하면 var 변수는 undefined를 출력하고 넘어가지만, let과 cons..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Sm12K/btq2ie3FBuL/bfKUjvwKjCnvfa42xfkcnk/img.png)
[백준 온라인 저지 링크] 9047번: 6174 입력은 표준입력(standard input)을 통해 받아들인다. 입력의 첫 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스마다 한 줄에 네 자리 수(1000~9999)가 하나씩 주어진다. 단, www.acmicpc.net 기초 테스트 문제로 올라와 풀어본 문제였는데, 생각보다 까다로운 문제였습니다. 숫자 문자열의 (내림차순 정렬 결과) - (오름차순 정렬 결과)를 계속 구해주면 간단하게 답을 찾을 것 같지만... 아무 생각 없이 덤비면 피로 얼룩진 결과창을 보게 됩니다. 시간 초과의 이유는 바로 1000과 9998 두 개의 케이스 때문으로, 두 케이스는 다음 결과를 얻게 됩니다. (+ 이 둘은 제가 발견한 일부로, 찾지 ..
학교에서 한번쯤은 "미니서든" 이라는 게임을 해본 적이 있을 것이다. FPS 게임에서 가장 중요한 요소를 뽑아보자면 모델과 모델의 시야가 되겠는데, 이렇게 사물이 바라볼 수 있는 시야를 처리하는 엔진을 레이캐스트(Raycast) 라 부른다고 한다. 우연히 오늘 깃헙을 돌아다니다 웹(심지어 리액트!) 기반 레이캐스트 엔진을 찾을 수 있었는데, 여기에 socket.io와 이것저것 끼얹으면 웹 기반 FPS 게임 + 관전자 모드까지 구현할 수 있을 것 같았다. 이슈를 읽어보니 이걸로 둠을 구현하겠다는 사람도 나왔는데, 아무튼 상세한 내용은 코드를 조금 까봐야 알겠지만 시도해볼만한게 늘어난 것 같아 즐겁다. (괜찮으면 종설까지 들고 가야겠다...) [깃헙 저장소 링크] ahuth/raycast HTML5 rayc..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/NVQ8h/btq12vZiZFM/wIlqstH0KGZil5gCKhCl31/img.png)
룸메한테서 오버로딩 문제 관련 질문을 받았다. float mul(float a) { return a * a; } double mul(double a) { return a * a; } 내용이 뭐냐면 실수형을 인자로 받는 두 함수가 오버로딩되었을 때, mul(3.0) 을 호출하면 과연 어떤 함수가 호출되냐는 질문이었다. 정말 재밌는 질문이어서 직접 코드를 짜봤는데, 그 결과 double 형으로 오버로딩된 함수가 호출되는 것을 확인할 수 있었다. public class main { public static void main(String[] args) { overload o = new overload(); o.mul(3.0); // double: 9.000000 } } public class overload {..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bzwfXl/btq13z7h4BL/nOV6dqSF8HOkVlNJc40uv1/img.jpg)
이 글은 한국기술대학교 컴퓨터공학부의 OS 공개강의를 시청한 후 정리한 내용입니다. 목차 운영체제의 역할 운영체제의 구분 운영체제의 구조 운영체제의 기능 1. 운영체제의 역할 1. 운영체제는 유저가 하드웨어를 다룰 수 있는 인터페이스를 제공한다. GUI CUI EUCI (MP3 등 특수한 목적의 운영체제) 2. 운영체제는 하드웨어와 소프트웨어를 효율적으로 관리한다. 3. 운영체제는 *프로세스와 쓰레드를 관리한다. (* 프로세스 = 하나의 작업) 4. 운영체제는 시스템을 보호한다. 2. 운영체제의 구분 1. 동시 사용여부에 따라 (여러명이 "동시에" 사용할 수 있는가?) Single User System (단일 사용자 운영체제) Multi User System (다중 사용자 운영체제) 2. 동시 실행 프로..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/byAnkv/btq1V3hA2mr/9w2jA5q6zNAKToyHNkHEB0/img.jpg)
이 글은 한국기술대학교 컴퓨터공학부의 OS 공개강의를 시청한 후 정리한 내용입니다. 이번 장에서 배울 OS의 역할 하드웨어를 효율적으로 관리하며 인터페이스를 제공한다. 컴퓨팅 자원을 관리한다. 하드웨어의 종류 프로세서 CPU, 그래픽카드 전용 처리장치 메모리 주 - 보조기억장치 주변장치 마우스, 키보드, 프린터 등 1. 프로세서 뭔가를 계산하는 녀석. 컴퓨터와 함께하는 모든 장치의 동작을 제어한다. 1. 1. 레지스터 프로세서 내부에 있는 메모리로, 컴퓨터에서 가장 빠르다. 종류 (그냥 이런게 나뉜다 정도로만) 용도에 따라 전용 레지스터, 범용 레지스터 사용자의 정보 변경 가능여부에 따라 사용자 가시 레지스터(데이터, 주소 레지스터), 사용자 불가시 레지스터(PC, IR, ACC) 저장하려는 정보에 따라..