본문 바로가기

CS 학습 정리

(14)
페이징과 가상 메모리 가상 메모리가상 메모리는 사용자와 논리적 주소를 물리적으로 분리하여 사용자가 메인 메모리 용량을 초과한 프로세스에 주소를 지정해서 메모리를 제한 없이 사용할 수 있도록 하는 개념이다.요구 페이징페이징 (paging)프로세스의 논리 주소 공간을 페이지라는 일정 단위로 자르고, 메모리의 물리 주소 공간을 프레임이라는 페이지와 동일한 일정한 단위로 자른 뒤 페이지를 프레임에 할당하는 가상 메모리 기법요구 페이징은 가상 메모리에서 많이 사용하는 메모리 관리 방법이다. 스와핑을 사용하는 페이징 시스템과 비슷하다.프로그램을 실행하기 위해 프로그램의 일부만 메인 메모리에 적재하되, 순차적으로 작성되어 있는 프로그램의 모듈을 처리할 때 다른 부분은 실행하지 않는다는 특징을 이용한다.
telnet vs SSH Telnet vs SSHTelnet은 TCP/IP를 기준으로 한 가상 터미널 서비스를 위한 프로토콜이며 SSH는 네트워크를 통해 다른 컴퓨터에 로그인하여 원격 컴퓨터에서 명령을 실행하는 프로그램Telnet은 로컬 네트워크용으로 특별히 설계된 23번 포트를 사용하며 SSH는 21번 포트를 사용한다.보안텔넷은 보안이 취약하다. 데이터를 암호화하지 않고 전송하기 때문에 네트워크에서 통신 내용을 쉽게 도청할 수 있다.SSH는 보안을 강화한 프로토콜로 모든 데이터 전송이 암호화되어 이뤄진다.기능텔넷은 기본적으로 텍스트 기반의 원격 쉘 세션을 제공포트포워딩, 파일 전송, 터널링 등 다양한 네트워크 서비스를 제공최근 telnet이 사용되는 모든 곳은 ssh로 대체되었다고 봐도 무방하다.
OSI 7계층과 TCP/IP 방식 , Echo Server란 TCP/IPTCP/IP는 프로토콜이다. 그렇다면 프로토콜이란 무엇일까?통신 프로토콜은 통신 규약으로 컴퓨터나 원거리 통신 장비 사이에서 메세지를 주고 받는 규칙의 체계이다. 즉, 통신 규약 및 약속이다.프로토콜의 기본 요소구문: 전송하고자 하는 데이터의 형식, 부호화, 신호 레벨 등을 규정의미: 두 기기간의 효율적이고 정확한 정보 전송을 위한 협조 사항과 오류 관리를 위한 제어 정보 규정시간: 두 기기간의 통신 속도, 메세지의 순서 제어 등을 규정네트워크의 기본 OSI 7계층개방형 시스템 상호 연결(OSI) 모델은 표준 프로토콜을 사용하여 다양한 통신 시스템이 통신할 수 있도록 만든 개념 모델이다. 쉽게 표현하면 OSI는 상이한 컴퓨터 시스템이 서로 통신할 수 있는 표준을 제공한다.모델은 7개의 추상적 ..
HTTP 요청 방식과 파일과 디렉터리, SQL, DataBase / js의 파일생성, 수정 방식 HTTPWWW의 토대이며 하이퍼텍스트 링크를 사용하여 웹 페이지를 로드하는데 사용된다. HTTP 네트워크 장치간의 정보를 전송하도록 설계된 애플리케이션 계층 프로토콜이며, 네트워크 프로토콜 스택의 다른 계층 위에서 실행된다.HTTP를 통한 흐름에는 클라이언트 시스템에서 서버에 요청한 다음 서버에 요청한 다음 서버에서 응답 메세지를 보내는 작업이 포함된다. 이것이 Reponse 와 Request 이다.HTTP 요청 헤더키값 쌍에 저장된 텍스트 정보가 포함되어 있으며 헤더는 모든 HTTP 요청에 포함된다. 이러한 헤더는 클라이언트가 사용하는 브라우저 및 요청되는 데이터와 같은 핵심 정보를 전달한다.주요 항목Content-Type : 해당 개체에 포함되는 미디어 타입 정보Content-Type: text/ht..
git의 내부 동작 방식 VCS 버전관리 시스템- 분산형 버전 관리 시스템.- 파일의 변화를  시간에 따라 기록했다가 나중에 특정 시점의 버전을 다시 불러올 수 있는 시스템을 의미함.- 과거부터 많은 VCS가 있었고 git이 가장 대표적.git- 속도, 데이터 무결성, Linux 커널과 같은 대규모 프로젝트를 지원하는 능력에 초점을 맞춤. git은 다양한 명령어와 옵션을 제공해 높은 유연성을 제공하지만 배우는데 시간이 걸림 작동 구조:1. 내가 작업한 것들 (로컬 저장소)2. 원격 저장소로 밀어내거나 -> push 3. 원격 저장소의 최신 형상을 내 작업 공간으로 당겨온다. -> pull git의 버전 관리 원리 1. 어떠한 코드를 각 완성도 마다 버전 관리를 한다고 하자. 간단하게 덧셈하는 프로그램을 만든다. #include ..
비동기 문법과 병렬처리, Node.js의 병렬처리 방식에 대해 Javascript의 비동기 문법 정리자바스크립트는 싱글 스레드 매커니즘을 사용하는 언어이기 때문에 모든 명령은 순차적으로 작동한다. 이것을 동기라고 부른다.동기 방식은 간단하고 직관적이지만 작업이 오래 걸리거나 응답이 늦어지는 경우엔 프로그램 실행 중간에 붕 뜨는 시간이 발생한다. 따라서 자바스크립트는 비동기(Asynchronous)라는 개념을 도입하여 다른 동작을 동시에 수행할 수 있도록 하였다.자바스크립트는 싱글 스레드인데 어떻게 작업을 동시에 처리하지?자바스크립트는 크게 힙, 콜스택, 이벤트루프, Web API, Callback Queue로 이뤄진다. 자바스크립트를 직접 실행하는 콜스택은 싱글스레드지만 서버에게 리소스를 요청하거나 파일 입출력 혹은 타이머 대기 작업을 실행하는 Web Apis는 멀..
프로세스와 스레드/멀티스레드 개념과 자바스크립트의 동작원리
함수형 프로그래밍의 정의와 사용해야하는 이유 1. 순수 함수 (Pure Functions)순수 함수는 동일한 입력값에 대해 항상 동일한 출력값을 반환하며, 외부 상태를 변경하지 않습니다.2. 불변성 (Immutability)자바스크립트에서 불변성을 유지하기 위해, 원본 데이터 구조를 변경하는 대신 새로운 데이터를 생성합니다.3. 고차 함수 (Higher-Order Functions)고차 함수는 다른 함수를 인자로 받거나 함수를 반환하는 함수입니다.4. 함수의 일급 객체 (First-Class Functions)자바스크립트에서는 함수가 변수에 저장되거나, 인자로 전달되거나, 반환값으로 사용될 수 있습니다.5. 함수 조합 (Function Composition)함수 조합은 여러 함수를 결합하여 새로운 함수를 만드는 방법입니다.요약자바스크립트에서 함수형..