본문 바로가기

Computer Science9

[CS] 멀티 태스킹(Multi Tasking), 멀티 프로세싱(Multi Processing), 멀티 프로세스(Multi Process), 멀티 스레드(Multi Thread) 단일 프로세스(Single Process)초창기 컴퓨터는 단일 프로세스 시스템으로, 한 번에 하나의 프로그램만이 실행할 수 있어서, 또 다른 프로그램을 실행하고 싶다면 현재 프로그램을 종료해야 했다. 그리고 프로그램 실행 중 *I/O(입출력) 작업이 발생하면 CPU 는 프로세스를 멈추고 대기하게 되어 CPU 사용률이 비효율적으로 낮아지게 된다.I/O(Input/Output) : 프로그래밍에서 파일을 읽고 쓰는 것, 서버 네트워크의 어딘가와 데이터를 주고 받는 것, 마우스, 키보드와 같은 입출력 장치와 데이터를 주거나 받는 것을 의미한다.위 문제를 해결하기 위해 여러개의 프로그램(멀티 프로그래밍)을 메모리에 올려놓고 하나의 CPU 에서 번갈아 가며 동시에 실행시키는 방안을 첨가하였다. 멀티 프로그래밍(Mu.. 2024. 12. 12.
[CS] 비트(bit)와 바이트(byte), 음수 표현법 사람과 사람 간에 의사소통을 하기 위해 언어(한글, 영어 등)가 필요하듯이 컴퓨터도 장비들끼리 의사소통을 할 수 있는 언어가 필요하다. 그 용도로 사용되는 것이 비트와 바이트이다. 2진법우리가 일상에서 사용하는 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 총 10개의 기호로 표현하는 것이 10진법이다.하지만 컴퓨터에는 이렇게 많은 숫자가 없다. 오직 0과 1로만 데이터를 표현한다. 이처럼 0과 1로만 표현하는 것을 2진법이라고 한다.컴퓨터는 신기하게도 오로지 0과 1만으로 숫자뿐만 아니라 글자, 사진, 영상, 소리 등을 저장할 수 있다.2진법에서는 두 개의 숫자만 있으므로 각 자릿수가 2의 거듭제곱을 의미한다. 비트(bit), 2진수(binary digit)컴퓨터에서 처리하는 정보의 최소 표현 단.. 2024. 11. 27.
[CS] HTTP와 HTTPS HTTP (HyperText Transfer Protocol)웹 페이지를 요청하고 응답받기 위해 설계된 클라이언트와 서버 간의 기본 *통신 프로토콜이다. 사용자가 웹 브라우저를 통해 웹 페이지를 요청하면, 서버는 그 요청에 대한 응답을 보낸다. 주로 *헤더와 *바디로 구성된다.통신 프로토콜 : 컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고받는 양식과 규칙의 체계이다. 즉, 통신 규약 및 약속헤더는 클라이언트와 서버 간의 메타 데이터를 전달하기 때문에, *요청 메서드, URL, 프로토콜 버전, 요청 헤더 등이 포함된다.바디는 클라이언트가 서버에 전송하고자 하는 실제 데이터가 포함되며, JSON, XML, 폼 데이터 등이 포함될 수 있다.데이터를 암호화하지 않은 평문으로 전송하기 때문에 중간에, 누군가가.. 2024. 9. 14.
[CS] Database 인덱스 (Index) 인덱스 (Index)테이블의 특정 컬럼(Column)에 인덱스를 생성하면, 해당 컬럼의 데이터를 정렬한 후 별도의 메모리 공간에 데이터의 물리적 주소와 함께 저장된다. 컬럼의 값과 물리적 주소를 (key, value)의 한 쌍으로 저장한다. 즉, 인덱스는 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조이다.예시: 만약 우리가 책에서 원하는 내용을 찾는다고 하면, 책의 모든 페이지를 찾아 보는것은 오랜 시간이 걸린다. 그렇기 때문에 책의 저자들은 책의 맨 앞 또는 맨 뒤에 색인을 추가하는데, 데이터베이스의 index 는 책의 색인과 같다.데이터베이스에서도 테이블의 모든 데이터(책의 내용)를 검색하면 시간이 오래 걸리기 때문에 데이터와 데이터의 위치(책의.. 2024. 9. 9.
[CS] 캐시 (Cache) 캐시 (Cache)자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 저장소저장 공간이 작고 비용이 비싼 대신 빠른 성능을 제공한다.아래와 같은 경우에 사용을 고려하면 좋다.접근 시간에 비해 원래 데이터를 접근하는 시간이 오래 걸리는 경우 (서버의 균일한 API 데이터)반복적으로 동일한 결과를 돌려주는 경우 (이미지나 썸네일 등)캐시에 데이터를 미리 복사해 놓으면 계산이나 접근 시간 없이 더 빠른 속도로 데이터에 접근할 수 있다.반복적으로 데이터를 불러오는 경우에, 지속적으로 DB 혹은 서버에 요청하는 것이 아니라 Memory 에 데이터를 저장하였다가 불러다 쓰는 것을 의미한다.캐시를 효과적으로 사용하면 시스템의 응답 시간을 줄이고, 서버의 부하를 줄일 수 있다. 이는 사용자 경험을 향상시키고, 시스템의.. 2024. 9. 4.
[CS] JVM 메모리 영역 (Method, Heap, Stack Area) 메서드 영역 (Method Area, Static Area)JVM 이 시작될 때 생성되는 공간으로 바이트 코드(.class)를 처음 메모리 공간에 올릴 때 초기화되는 대상을 저장하기 위한 메모리 공간JVM 이 동작하고 클래스가 로드될 때 적재되서 프로그램이 종료될 때까지 저장된다.모든 쓰레드가 공유하는 영역이라 다음과 같이 초기화 코드 정보들이 저장되게 된다.Field Info : 멤버 변수의 이름, 데이터 타입, 접근 제어자의 정보Method Info : 메소드 이름, return 타입, 함수 매개변수, 접근 제어자의 정보Type Info : Class 인지 Interface 인지 여부 저장, Type 의 속성, 이름 Super Class 의 이름 힙 영역 (Heap Area)메서드 영역와 함께 모든 .. 2024. 8. 30.
[CS] CPU, 주기억장치(ROM, RAM(SRAM, DRAM), 보조기억장치(HDD, SDD) 중앙 처리 장치 (Central Processing Unit, CPU)컴퓨터의 중앙에서 모든 데이터의 처리를 담당하는 장치, 컴퓨터의 두뇌컴퓨터의 속도는 CPU 의 성능이 가장 큰 영향을 미친다. 컴퓨터는 사용자의 명령을 입력받으면, CPU 가 이 명령을 해석하고, 처리(연산) 해서 출력 장치에서 결과를 출력하도록 한다.이렇게 하나의 부품에 해독, 연산, 제어 등 여러 가지 기능이 집약되어 있기 때문에 CPU 를 "마이크로프로세서"라고 부르기도 한다.프로그램의 명령을 수행하여 다양한 *입력 장치로부터 데이터를 받아서 *기억장치와 연계하여 처리한 후 *출력 장치로 보내는 모든 과정을 제어하고 연산하는 장치입력 장치 : 컴퓨터 등 시스템의 외부에서 데이터와 명령을 시스템으로 입력하는 장치로, 문자, 소리, .. 2024. 8. 28.