CS 전공지식 (50) 썸네일형 리스트형 23.12.29 메모리 관리 1. 가상 메모리 - 메모리 관리 기법의 하나로 컴퓨터가 실제로 이용 가능한 메모리 자원을 추상화하여 이를 사용하는 사용자들에게 매우 큰 메모리로 보이게 만드는 것 - 가상적으로 주어진 주소를 가상 주소(logical address) 라고 하며, 실제 메모리사엥 있는 주소를 실제 주소(physical address) 라고 한다. - 가상 주소는 메모리관리장치(MMU)에 의해 실제 주소로 변황되며, 이 덕분에 사용자는 실제 주소를 의식할 필요 없이 프로그램을 구축할 수 있다 - 가상 주소와 실제 주소가 매핑되어 있고 프로세스의 주소 정보가 들어 있는 페이지 테이블로 관리된다 이때 속도 향상을 위해 TLB 를 사용 * TLB - 메모리와 CPU 사이에 있는 주소 변환을 위한 캐시 - 페이지 테이블에 있는 리.. 23.12.28 메모리 계층 1. 메모리 계층 - 레지스터, 캐시, 메모리, 저장장치로 구성 됨 - 계층 위로 올라갈 수록 가격은 비싸지는데 용량은 작아지고 속도는 빨라짐 - 계층이 있는 이유는 경제성과 캐시 때문 - 예) 16GB RAM 은 9만원이면 사지만 16GB SSD 는 훨씬 더 싼 가격에 살수 있다 이러한 경제성 때문에 계층을 두어 관리 - 게임을 실행하다 보면 로딩 중 이라는 메세지가 나오는 것을 볼 수 있는데 이는 하드디스크 또는 인터넷에서 데이터를 읽어 RAM 으로 전송하는 과정이 아직 끝나지 않음을 의미함 * 레지스터 - CPU 안에 있는 작은 메모리, 휘발성, 속도가 가장 빠름, 기억 용량이 가장 작다 * 캐시 - L1, L2 캐시를 지칭. 휘발성, 속도 빠름, 기억용량이 적다 참고로 L3 캐시도 있다 * 주기억.. 23.12.26 운영체제와 컴퓨터 1. 운영체제의 역할과 구조 1) 운영체제의 역할 (1) CPU 스케쥴링과 프로세스 관리 - CPU 소유권을 어떤 프로세스에 할당할지, 프로세스의 생성과 삭제, 자원 할당 및 반환 관리 (2) 메모리 관리 - 한정된 메모리를 어떤 프로세스에 얼만큼 할당해야 하는지 관리 (3) 디스크 파일관리 - 디스크 파일을 어떠한 방법으로 보관할지 관리 (4) I/O 디바이스 관리 - 마우스, 키보드와 컴퓨터 간에 데이터를 주고 받는 것을 관리 2) 운영체제의 구조 - GUI, 시스템콜, 커널, 드라이버 부분이 운영체제를 지칭 - GUI 가 없고 CUI 만 있는 리눅스 서버도 있다 * GUI : 사용자가 전자장치와 상호 작용할 수 있도록 하는 사용자 인터페이스의 한 형태, 단순 명령어 창이 아닌 아이콘을 마우스로 클릭.. 23.12.22 관계형 DB 와 비관계형 DB의 차이? 1. 관계형 DB - 고정된 행(row) 과 열(column)로 구성된 테이블에 데이터를 저장 - 각 열은 하나의 속성에 대한 정보를 저장하고, 행에는 각 열의 데이터 형식에 맞는 데이터가 저장됨 - 테이블의 구조와 데이터 타입 등을 사전에 정의하고 테이블에 정의된 내용에 알맞는 형태의 데이터만 삽입 가능 - 특정한 형식을 지키기 때문에 데이터를 정확히 입력했다면 사용할 때는 매우 수월 - MySQL, Oracle, SQLite, MariaDB, PostgresSQL 등이 있다 1) SQL 사용 - 관계형 데이터베이스와 상호작용 할 때 SQL 을 사용한다 - 관계형 데이터베이스에서는 스키마가 뚜렷하게 보인다는 말과 같다 - 테이블 간의 관계를 직관적으로 파악할 수 있다 * 스키마 : 개체의 특성을 나타내.. 23.12.21 프로세스와 스레드의 차이? 1. 프로그램(Program) - 파일이 저장 장치에 저장되어 있지만 메모리에는 올라가 있지 않은 정적인 상태이며 어떤 작업을 위해 실행 할 수 있는 파일 2. 프로세스(Process) - 컴퓨터에서 연속적으로 실행되고 있는 프로그램으로 메모리에 올라가서 실행되고 있는 프로그램의 인스턴스 - 운영체제로부터 시스템의 자원을 할당받은 작업의 단위, 기본적으로 프로세스당 최소 1개의 스레드(메인 스레드) 를 가지고 있다 - 각 프로세스는 별도의 주소 공간에서 실행되고 있으며 각 프로세스끼리는 자원의 공유를 하지 않음 - 하나의 프로세스가 다른 프로세스의 자원에 접근하러면 프로세스 간이 통신이 필요하며 메일슬롯, 파이프, 소켓, 시그널, 공유 메모리등의 수단을 이용해야함 1) 할당 받는 시스템의 자원? - Co.. 23.12.21 REST, REST API, RESTful 이란? 1. REST (Representational State Transfer) 1) 정의 - HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 자원에 대한 CRUD Operation 을 적용하는 것 - 즉 자원 기반의 구조(ROA, Resource Oriented Architecture) 설계의 중심에 Resource 가 있고 HTTP Method 를 통해 Resource 를 처리하도록 설계된 아키텍쳐 - 웹 사이트의 이미지, 텍스트, DB 내용 등의 모든 자원에 고유한 ID 인 HTTP URL을 부여한다. - CRUD Operation (1) Create : 생성 (POST).. 23.12.20 CORS 란? 1. CORS (Cross-Origin Resource Sharing) - 출처가 다른 자원들을 공유한다는 뜻 - 한 출처에 있는 자원에서 다른 출처에 있는 자원에 접근하도록 하는 개념 - 추가 HTTP 헤더를 사용해 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제 - 웹 애플리케이션은 리소스가 자신의 출처(도메인, 프로토콜, 포트)와 다를 때 교차 출처 HTTP 요청을 실행함 1) 출처 - 아래의 구성요소 중에서 Protocol + Host + Port 3가지가 같으면 동일 출처(Origin)라고 한다. - 다른 출처 요청인 경우 CORS 정책에 준수하여 요청해야만 정상적으로 응답을 받는다. - 동일 출처 예시 http://.. 23.12.20 HTTPS 동작 방식 1. HTTPS (Hypertext Transfer Protocol Secure) - 웹에서 정보를 보호하기 위한 가장 기본적인 기술 - 안전한 통신을 위해 개인 정보가 담긴 평문을 암호화 하고 이렇게 만들어진 암호문을 상대방에게 전달하면 상대방은 이를 다시 복호화하여 원래의 평문으로 열람 - 인터넷 콘텐츠를 전달하는 TCP 프로토콜의 일종인 HTTP 에 S(Secure) 기능을 더한 것 - 안전한 데이터의 전달이 브라우저와 웹 서버 사이의 전달 구간에서 이루어지기 때문에 보안채널(secure shannel), 전송보안(secure transit) 이라고 부르기도 함 - 기본 TCP / IP 포트는 443 이다 - 원천 기술로는 SSL(Secure Socket Layer) 과 TLS(Transport L.. 23.12.19 TCP / IP 프로토콜 1. TCP / IP 란? - 전송제어 프로토콜 (Transmission Control Prothcol : TCP) 와 인터넷 프로토콜 (Internet Protocol : IP) 로 이루어져있음 - 인터넷 환경에서 정보 전송을 위해 쓰이는 프로토콜 - 인터넷에서는 데이터가 전송될 때 패킷이라는 작은 단위로 나뉘어 전송됨 - TCP 는 데이터의 추적 / 제어, IP 는 데이터의 주소 지정 / 전달을 담당 * 프로토콜 : 컴퓨터 내부에서 또는 컴퓨터 사이에서 데이터의 교환 방식을 정의하는 규칙 체계 2. TCP - OSI 네트워크 계층 모델 중 전송 계층에서 사용하는 프로토콜로 가상회선 방식으로 패킷을 교환 - 장치들 사이에 연결과 데이터의 전송 / 제어 기능을 통해 데이터의 전송의 신뢰성을 보장 - 체크.. 23.12.19 OSI 7계층 1. OSI 7계층 - 네트워크 통신이 일어나는 과정을 7단계로 나눈 국제 표준화 기구(ISO)에서 정의한 네트워크 표준 모델 - 아래 그림에서 아래부터 1계층 ~ 7계층으로 구성됨 - 각 계층을 지날 때 마다 각 계층에서 Header 가 붙게 되고 수신측은 역순으로 헤더를 분석함 1) 1계층 - 물리 계층 (Physical Layer) - 주로 전기적, 기계적 기능적인 특성을 이용해서 통신 케이블로 데이터를 전송하는 물리적인 장비 - 단지 데이터 전기적인 신호 (0, 1)로 변환해서 주고 받는 기능만 함 - 사용되는 통신단위는 비트(Bit) 이며 이것은 1 과 0 으로 나타내어지는 즉 전기적으로 On, Off 상태 - 장비 : 통신케이블, 리피터, 허브 등 2) 2계층 - 데이터링크 계층 (DataLi.. 이전 1 2 3 4 5 다음