CS 지식

자료구조를 학습하다보면, ADT라는 단어를 자주 접할 수 있다. ADT가 과연 무엇일까? 무엇이길래 여러 자료구조에서 쓰이는걸까? 한번 알아보자. ADT(Abstract Data Type)란? 한마디로는 자료구조를 추상화한 것으로, 사람이 자료를 다루는 관점에서 자료구조를 표현한 것이다. 자료구조의 특징, 속성, operations들을 나타내는 것 어떻게 구현하는지에 대해서는 다루지 않는다. 이렇게만 설명하면 너무 추상적인데, 구체적으로는 다음의 내용들을 명세한다. 저장된 데이터 데이터에 대한 작업들(Operation) 작업 중 발생 가능한 에러 상황들 그리고 이러한 ADT에 구현이 들어가는 순간 Data structure가 된다. Java 또는 OOP를 아는 사람이라면 아래의 내용을 보면 더욱 이해하기..
운영체제라는 과목에서 발생하는 이벤트들의 주체는 프로세스인 경우가 많다. 그래서 프로세스라는 말이 수없이 나오게 되는데, 도대체 이 프로세스가 뭘까? 정리해보고자 한다. Process vs Job(Application) 우선 프로세스의 개념을 알아보려면, Job과 Process의 차이부터 명확하게 짚고 넘어가야 한다. Job(Application, Execution/Image file): 설치된 것(실행중이 아닌 상태) Process: 현재 실행중어서 커널에 등록된 상태 → 커널이 프로세스를 관리한다. 보다시피 Job(App)이 실행되면 커널 내부로 들어와 커널에 등록되고, Process로 불리게 된다. Process vs Processor 그런데 프로세스는 프로세서와 혼동되어 사용되기 쉽다. 확실하게 ..
운영체제의 기본 구조에서 Interrupt, Trap, System Call은 프로세서와 커널, 디바이스 간에 매 순간마다 발생하는 핵심적인 이벤트들이다. 이 3가지에 대해서 알아보고자 한다. 우선 현대의 운영체제들은 대부분 Dual mode(듀얼 모드)로 동작한다. 듀얼 모드란, User mode(사용자 모드)와 Kernel mode(커널 모드)를 아우르는데 User mode는 일반적인 애플리케이션이 동작되는 환경이고 Kernel mode는 커널이 구동되는 환경으로 이 모드에서는 OS 시스템에 영향을 줄 수 있는 명령을 내릴 수도 있다. (이것이 Dual mode를 만든 주요 원인이다. 사용자 단계에서 시스템에 함부로 접근할 수 없도록 하기 위함이다.) 일반적으로 trap과 interrupt가 발생할 ..
C 프로그래밍 시 코드를 작성하고 실행하는 과정에서 컴파일(compile)을 하게 된다. 컴파일러가 컴파일을 하는 과정을 알아보았다. 컴파일 (Compile) 인간이 이해하고 사용하기 쉬운 코드를 기계가 이해하기 쉽도록 변환하는 작업을 뜻한다. 예) C, C++, Java (High level) → 기계어 (Low level) 컴파일 명령 gcc 컴파일러를 이용했을 때, c언어 파일을 다음과 같은 명령어를 통해 컴파일할 수 있다. gcc -o hello hello.c 명령어를 순서대로 살펴보면, -o: output을 의미 hello: 최종 실행파일 이름 hello.c: 실행하고자 하는 소스 파일 컴파일 과정 컴파일은 다음의 과정으로 이루어진다. 전처리(Pre-processing) → 컴파일(Compila..
· CS 지식
클라이언트가 서버에 요청을 보내는 HTTP 프로토콜 메소드에는 대표적으로 GET, POST 메소드가 있다. 1. GET GET은 쉽게 생각하면 DB에서 SELECT를 하는 개념이다. 클라이언트가 서버에 GET 요청을 보내게 되면 서버는 해당 값을 반환한다. 먼저 GET 요청 예시를 살펴보면, 다음과 같다. http://localhost:0000/login?id=kim12&pw=1234 다음과 같이 URL 뒤에 쿼리 파라미터가 직접적으로 드러나있는 것을 볼 수 있으며 이에 따라 여러 특징이 파생된다. GET 특징 URL 뒤에 쿼리 스트링을 드러낸 채로 서버에 전송 따라서 정보들이 그대로 노출되어 보안에 취약 캐싱 가능 전송하는 데이터 양에 제한이 있음(브라우저마다 상이) 브라우저의 히스토리에 기록이 남음 ..
말도 못하는 감자
'CS 지식' 카테고리의 글 목록 (2 Page)