분류 전체보기
-
디렉토리(directory)란 무엇인가CS지식/운영체제 2021. 7. 17. 22:41
디렉토리(directory)는 서로 관련 있는 파일을 하나로 모아놓은 것이다. 디렉토리는 1개 이상의 파일을 가질 수 있고 1개 이상의 자식 디렉토리를 가질 수도 있다. 즉, 하나의 디렉토리에는 여러 개의 파일과 자식 디렉토리가 존재한다. 이렇게 디렉토리 안에 여러 개의 파일과 자식 디렉토리가 존재하면 마치 여러 층으로 구성된 것처럼 보인다. 여기서 최상위에 있는 디렉토리를 루트 디렉토리라고 한다. 디렉토리의 구조 초기 파일 시스템의 디렉토리 구조는 1단계 구조였다. 1단계 디렉토리 구조에서는 루트 디렉토리에 새로운 디렉토리를 만들 수 있지만 디렉토리 안에 자식 디렉토리를 만들 수는 없었다. 1단계 디렉토리 구조는 파일이 많아지면 불편하여 다단계 디렉토리 구조가 등장했다. 다단계 디렉토리 구조는 루트 디..
-
HTTP/2.0이란 무엇인가CS지식/네트워크 2021. 7. 16. 21:54
우리는 현재 HTTP의 버전으로 1.1을 보편적으로 사용하고 있다. 그렇지만 HTTP를 개발하는 그룹에서는 HTTP의 성능 문제를 개선하기 위해 HTTP/2.0을 만든 중에 있다. 그러면 HTTP/2.0은 HTTP/1.1과 어떠한 차이점이 있는지 현재까지 알려진 보안 이슈는 무엇인지에 대해 알아보자. HTTP/2.0의 등장 배경 기존의 HTTP 메시지 교환 방신은 하나의 커넥션을 통해 클라이언트가 요청 하나를 보내면 서버는 그에 대한 응답 하나만을 보내는 방식이였다. 이러한 방식은 응답을 받아야만 다음 요청을 보낼 수 있기에 심각한 지연을 야기할 수 있는 문제가 있다. 이 문제를 회피하기 위해 병렬 커넥션이나 파이프라인 커넥션을 도입했지만 성능 개선에 대한 근본적인 해결책은 되지 못했다. 이제는 근본적인..
-
RAID란 무엇인가CS지식/운영체제 2021. 7. 15. 22:59
RAID는 자동으로 백업을 하고 장애가 발생하면 복구하는 시스템으로 동일한 규격의 디스크를 여러 개 모아 구성하며 장애가 발생했을 때 데이터를 복구하는 데 사용된다. RAID는 왜 나오게 된 것일까? 요즘 시대에 아마도 휴대폰은 하나씩 소유하고 있을 것이다. 휴대폰 뿐만 아니라 PC, 카메라 등 다양한 개인 디지털 기기가 늘어나면서 개인 데이터의 크기도 급격히 증가하게 되었다. 이러한 데이터를 저장장치에 보관할 때는 백업을 해야한다. 그 이유는 하드디스크에 저장된 데이터가 영구적일 것 같지만 하드디스크도 수명이 존재하고 기타 저장매체에는 최대 사용 횟수가 정해져 있기 때문이다. 따라서 저장장치에 있는 중요한 데이터는 수시로 백업을 해주어야하는데 이를 수동으로 하면 매우 귀찮을 것이다. 또한 얼마나 자주해..
-
딕셔너리 모듈 (defaultdict, Counter)프로그래밍 언어/Python 2021. 7. 15. 12:36
오늘은 파이썬 알고리즘 인터뷰 책으로 코딩테스트 준비를 하던 중에 알고있지 못했던 좋은 정보를 정리하려고 한다. 1) defaultdict defaultdict의 형태는 우리가 평소에 쓰던 딕셔너리와 같다. 차이점은 딕셔너리는 딕셔너리 안에 존재하지 않은 키에 대한 값(value)를 출력한다거나 접근할 때 KeyError 메시지가 발생한다. 하지만, defaultdict객체를 사용하게 되면 딕셔너리 내에 존재하지 않는 키를 조회하면 디폴트 값을 기준으로 해당 키에 대한 딕셔너리 아이템을 생성해준다. (defaultdict을 사용하기 위해서는 collections를 import해줘야한다.) 위와 같이 C라는 key에 value를 주지 않았어도 KeyError가 나오지 않고 default값인 0이 출력되는 ..
-
[스터디 12주차] 멀티쓰레드 프로그래밍프로그래밍 언어/JAVA 2021. 7. 14. 13:48
더보기 목표: 자바의 멀티쓰레드 프로그래밍에 대해 학습 0. 들어가기 전 오늘의 큰 주제인 멀티쓰레드는 무엇일까? 멀티쓰레드를 알아보기 전에 멀티태스킹(multitasking)이라는 개념을 알아두는 것이 좋다. 멀티태스킹은 두 가지 이상의 작업을 동시에 처리하는 것으로 예를 들어 우리가 웹 브라우저를 통해 서칭을 하면서 뮤직 플레이어를 노래를 들을 수도 있고 PC카카오톡에서 알림도 받을 수 있다. 위의 예시는 정확히 말하면 멀티태스킹 중에 멀티프로세스라는 표현이 더 맞을 수 있다. 그러면 다른 예시를 알아보자. 요즘은 잘 보기 힘들지만 브라우저를 통해 블로그에 들어가면 글을 보는 것과 함께 BGM, 음악이 함께 재생되는 것이 있었다. 혹은 카카오톡같은 메신저 애플리케이션은 메시지를 주고받을 뿐만 아니라 ..
-
스레싱(thrashing)이란 무엇인가CS지식/운영체제 2021. 7. 13. 23:17
우리는 컴퓨터에서 실제 물리 메모리 이외에 프로세스만의 가상 메모리를 사용하며 주소 변환을 통해 물리 메모리에 접근한다고 배웠다. 또한, 페이징 기법이나 세그멘테이션 기법을 통해 나뉘어진 조각들은 물리 메모리에 위치할 수도 있고 스왑영역에 위치할 수도 있다는 것을 배웠다. 하나의 프로세스가 작업 중이라고 해서 프로세스의 전체 데이터가 물리 메모리의 전체 영역에 할당되는 것은 비효율적이기때문에 그때 그때 필요한 부분만 물리 메모리에 올리고 쓸 일이 없는 부분은 스왑영역에 올려 메모리 관리를 효율적으로 진행한다. 현재 CPU를 점유하고 있는 프로세스가 필요로 하는 데이터가 물리 메모리에 없다면 swap in과 swap out을 통해 필요한 데이터를 스왑영역에서 물리 메모리에 올리고 물리 메모리에 있던 어떠한..
-
내용 협상(content negotiation)이란 무엇인가CS지식/네트워크 2021. 7. 12. 22:04
내용 협상(content negotiation)은 왜 도입된 것일까? 상황을 가정하여 생각해보자. www.naver.com이라는 네이버 사이트는 한국인이 접속을 하기도 하고 외국인이 접속을 한다고 생각해보자. 사용언어가 다른 두 클라이언트는 그냥 www.naver.com URL로 접속을 할 것이다. 이 때, 서버는 클라이언트에게 그냥 한국어로 된 웹 페이지로 응답하면 될까? 그렇다면 외국인은 네이버 사이트를 이용하기 힘들 것이다. 그러면 웹 서버는 한국어 버전과 다른 언어 버전으로 되어 있는 네이버 웹 페이지 리소스를 가지고 있을텐데 어떻게 판단하여 클라리언트에게 적합한 버전을 보낼 수 있을까? 여기서 필요한 개념이 내용 협상(content negotiation)이라는 것이다. 내용 협상을 통해 하나의 ..
-
[이클립스] javadoc 만들기프로그래밍 언어/JAVA 2021. 7. 11. 20:57
오늘은 애노테이션을 배우던 중, @Documented의 사용여부가 javadoc과 관련되어 있어 직접 javadoc을 만들어 보았다. javadoc을 만드는 법을 정리하여 모르는 사람들을 이 글을 통해 알고가면 좋을 것 같다. ① 상단 메뉴에서 File- Export로 들어간다. ② 다음과 같은 창이 뜨면 java폴더를 클릭하면 javadoc이 있는 것을 확인 할 수 있다. javadoc을 클릭하고 next버튼을 누른다. ③ 그러면 아래와 같은 창이 나오고 문서를 만들 폴더와 javadoc.exe를 선택해준 뒤 Next버튼을 누른다. ④ 아래의 창에서는 설정할 것이 없어 건드리지 말고 Next버튼을 눌러 다음으로 이동한다. ⑤ Next버튼을 눌러 나온 창에서는 한글 깨짐 방지를 위해 VM options에..