일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 브루트포스
- Operating System
- Stack
- 정석
- 코딩
- vector
- 오에스
- 구현
- 컴공과
- DP
- bfs
- 정석학술정보관
- 북리뷰
- 스택
- c++
- coding
- 그래프
- 컴공
- cs
- 백준
- 자료구조
- 알고리즘
- 코테
- 문제풀이
- 너비우선탐색
- Computer science
- 오퍼레이팅시스템
- 개발
- OS
- 컴퓨터공학과
- Today
- Total
목록전체 글 (304)
Little Jay
최고의 시절이자 최악의 시절이요, 지혜의 시대이자 어리석음의 시대였다. 믿음의 세기이자 의심의 세기였으며, 희망의 봄이면서 절망의 겨울과 같은 계절이었다. 우리 앞에는 무엇이든 있었지만 한편으로는 아무 것도 없었다. 우리는 모두 천국을 향해 가고 있었지만, 우리는 다른 방향으로 걸어 나가고 있었다. (찰스 디킨스의 ‘두 도시 이야기’, p. 3) 가난한 사람들의 삶은 슬픔 자체요, 절망이었다. 다수의 민중들은 소수의 귀족에게 억압받았다. 귀족들의 폭력적인 정치와 부당한 수탈은 계속되었다. 복수를 품은 분노가 드리우던 사회에서, 중세 시대의 모순을 뿌리뽑은 프랑스 혁명은 올바른 도시에서의 삶의 서막을 열었다. 그렇다면 사회적·경제적 지위에 따른 불평등이나 차별이 완전하게 사라졌다고 할 수 있을까. ‘두 도..
법을 잘 알고 있겠지? 도대체 정신이 있는거야, 없는 거야? 누가 이런 책들을 갖고 있으라 그랬나? 이런 골방에다가 책을 몇 년 동안이나 몰래 모아 놓고서 어쩔 셈이었지? 바벨탑이라도 쌓으려고 했나? (레이 브레드버리의 ‘화씨 451’, p.68) 우리가 이 인용구에서 볼 수 있듯이, 화씨 451 작품 안에서는 정부가 개인은 책을 읽을 수 없다는 법을 제정해놨기 때문에 어떠한 사람도 책을 읽을 수 없다. 왜 정부는 책을 읽는 것을 금지했을까? 나는 아마도 책을 통해서 사람들이 어떠한 상황에 대해 상상하고, 그에 대한 해결책을 스스로 찾으려 할 수 있기 때문일 것이라고 생각한다. 사회를 통제하기 위해서는, 시민을 단일화 하고 그들이 정부에 대항하지 못하도록 하는 것이 근본적이며 가장 중요하다. 그러므로 사..
어느 아침, 그레고르 삼자가 불안한 꿈에서 깨어났을 때 그는 침대 속에서 한 마리의 흉측한 갑충으로 변해 있는 자신의 모습을 발견했다.(변신, 프란츠 카프카, p.6) 프랑스의 유명한 비평가 롤랑 바르트는 “플로베르는 소설을 쓴 것이 아니다. 그는 단지 한 문장을 다른 하나와 연결시켰을 뿐이다. 문장과 문장 사이의 에로스가 플로베르 소설의 본질인 것이다.”라는 말을 한 것으로 알려져 있다. 제 2차 세계대전 당시의 사람으로 독일어를 사용하는 유태인. 즉 이중의 이방인이라 할 수 있는 프란츠 카프카는 이 에로스를 이용해 한 중산층 보험팔이 말단 직원의 모습을 효과적으로 풀어낸다. 이 책에 단점이 있다면 조금 느릴 수 있다는 점이다. 그러나 나는 느리다기 보다는 정교함과 묘사가 너무도 많아 그런 것이 아닐까..
IIFE(Immediate Invoked Function Expression) 말 그대로 해석을 해보면 된다. 즉시 실행함수를 가리킨다. function foo() {}(); 그렇다면 위의 코드는 왜 실행이 안되는 것일까? 자바스크립트 Parser는 function foo() {} 이 부분은 함수의 선언부인 반면에 후자(괄호의 쌍)는 함수를 호출하려는 시도이지만 실제로 어떠한 이름도 지정이 된 것이 없기 때문에 Uncaught SyntaxError: Unexpected token ). 와 같은 에러 상황이 발생할 것이다. 이를 해결하기 위해서는 괄호를 추가하는 두 가지의 방법이 있다. (function foo(){ })() (function foo(){ }()) function으로 시작하는 선언문은 함수..
Virtual Memory 간단하게 정의를 해보자면, 각 Process에게 전용의 큰 메모리를 제공하는 기법이다. 실제로는 없는 메모리를 있게 보이게 하는 기법이라고 생각하면 편하다. 이전의 Paging과 Segmentation은 다음과 같은 특성을 지니고 있었다. 먼저 Process들을 조각내는 것이다. 조각냄으로서 메모리에 연속적으로 할당될 필요가 없이 단순하게 분산적재를 하기만 하면 된다. 이어지는 얘기로는 분산적재를 한 Process의 조각이 Memory공간 어디에 위치하고 있는지 알 수 있는 Mapping Table이 필요하다. 조각에 대한 정보가 있어야 어디에서 정확한 Memory의 주소를 알 수 있기 때문이다. Mapping Table의 특징은 Relocatable할 수 있어야 한다는 것이다..
자바스크립트 관련 단골 질문 중 하나입니다. 자바스크립트에서 모든 객체는 __proto__ 속성을 가지고 있습니다. 단, 어떤 객체가 Object.create(null)을 사용해서 생성이 되었다면, __proto__는 만들어지지 않습니다. 이 __proto__ property는 다른 객체에 대한 참조이며, 이를 객체의 "prototype"이라고 합니다. 만약 객체의 property에 접근하고, 해당 객체에서 property가 발견되지 않았을 때 자바스크립트 엔진(Javascript Engine)은 해당 객체의 __proto__를 살펴보기 시작합니다. 이때 __proto__만 참조하는 것이 아니라, __proto__의 __proto__를 계속해서 찾아보는데, 이 __proto__중 하나에 property가..
http://www.kmooc.kr/invitation-banner | K-MOOC www.kmooc.kr 이전에 올렸던 Udemy와 비슷하게 Kmooc에서 Coursera도 지원해준다. 구독권이기 때문에 TO가 나야 받을 수 있고, 자리가 나면 이메일 혹은 문자로 링크가 오기 때문에 천천히 기다리면 될 것 같다. 아마 방학시즌이라 학생들이 많이 듣고 있어서 자리가 나지 않을 수도 있는 가능성을 열어두자.

Paging 지금까지 앞에서 Continous Allocation 기법들에 대해서 살펴보았다. 이제는 본격적으로 현대에서 만이 사용하는 Non-Continous Allocation에 대해서 살펴볼 것이다. Paging과 Segmentation은 기본적으로 Process들을 조각내는 기법이다. Paging은 고정된 사이즈로 나눈 반면에 Segmentation은 가변 사이즈로 Process를 나눈다. Paging에서의 그 조각이 page이다. 따라서 page는 Process의 chunk라고 할 수 있으며, 일반적으로는 4KB의 크기를 지니고 있다. Paging을 수행하기 위해서는 Main Memory역시 이 page들을 담을 수 있도록 Slot화 해야한다. Memory에서는 이를 page라는 단어를 사용하지..
설명 elementSeparotor는 attribute를 파싱하는 함수입니다. class는 "."으로, id는 "#"으로, tag이름은 알파벳으로 시작하기 때문에 이에 따라서 return 값을 다르게 반환합니다. getElems는 querySelectorAll을 모방한 것입니다. elementSeparator을 기반으로 받은 toFind와, attr을 받아 이를 바탕으로 element를 찾기 시작합니다. querySelectorAll은 element의 배열을 반환하기 때문에 최종적으로는 elementsArr을 반환합니다. 본격적인 logic은 다음과 같습니다. 시작점을 default arugment로 body 태그에서부터 찾기 시작했는데, 성능을 위해 시작점을 임의로 지정해줄 수 있습니다. bfs 알고리..

Memory Allocation 메모리를 할당하는 방법론에는 크게 두 가지가 있다. 하나는 Contigous Allocation(연속할당)이며, 다른 하나는 Non-Contigous Allocation(불연속할당)이다. 먼저 연속할당에는 어떤 방법론들이 있는지 살펴보자. 불연속 할당에 포함되는 Paging과 Segmentation은 다음 포스팅에서 다뤄볼 것이다. Fixed Partitioning - 고정분할 방식 이름만 보면 알 수 있듯이 메모리를 분할하는 방식이다. 초기에는 같은 Size의 Partitioning으로 나뉘었다. 어떻게 보면 가장 간단하게 생각할 수 있는 방식이다. 분할된 메모리의 Size가 모두 같기 때문에 빈 Slot이 있다면 거기에다가 그냥 할당을 해버리면 된다. 이 방법을 균등 ..