본문 바로가기

안드로이드/etc.14

[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] 블록체인(Blockchain) 우리는 Facebook, 우버와 같은 서비스나 은행 시스템과 같은 중앙집중원장(Centralized ledger)을 이용해 왔다. 이는 그들이 우리의 데이터를 잘 관리하고 처리해 줄 것이라는 신뢰가 있었기 때문이다우리는 이러한 기관, 기업에게 신뢰비용(수수료 등)을 지불하고 그들은 서비스를 제공하며 데이터를 보관(보안)하고 활용한다.이렇게 지금까지 자본주의가 발전하면서 신뢰받는 제 3자에게 어떤 권한을 위임해 왔고 그들에게 서비스를 받으며 성장해 왔다.기존 중앙집중형 시스템의 문제점1. 비용 문제제 3자인 중앙집중형 관리시스템은 거래자들 사이에서 과도한 관리, 중개수수료를 청구한다.중앙집중형 시스템은 데이터베이스를 유지, 관리하기 위해 많은 보안유지비용을 지출한다.금융권의 경우 매년 천문학적인 돈을 보안.. 2024. 11. 25.
[Kotlin] 에러(Error)와 예외(Exception) https://inpa.tistory.com/entry/JAVA-%E2%98%95-%EC%97%90%EB%9F%ACError-%EC%99%80-%EC%98%88%EC%99%B8-%ED%81%B4%EB%9E%98%EC%8A%A4Exception-%F0%9F%92%AF-%EC%B4%9D%EC%A0%95%EB%A6%AC ☕ 자바 에러(Error) 와 예외 클래스(Exception) 💯 이해하기프로그래밍의 오류 종류 프로그램에서 오류가 발생하면 시스템 레벨에서 프로그램에 문제를 야기하여 원치 않는 버그를 일으키거나, 심각하면 실행 중인 프로그램을 강제로 종료시키도 한다.inpa.tistory.com에러(error) : 프로그램 코드에 의해서 수습될 수 없는 심각한 오류예외(exception) : 프로그램 코드.. 2024. 11. 20.
[CS] HTTP와 HTTPS HTTP (HyperText Transfer Protocol)웹 페이지를 요청하고 응답받기 위해 설계된 클라이언트와 서버 간의 기본 *통신 프로토콜이다. 사용자가 웹 브라우저를 통해 웹 페이지를 요청하면, 서버는 그 요청에 대한 응답을 보낸다. 주로 *헤더와 *바디로 구성된다.통신 프로토콜 : 컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고받는 양식과 규칙의 체계이다. 즉, 통신 규약 및 약속헤더는 클라이언트와 서버 간의 메타 데이터를 전달하기 때문에, *요청 메서드, URL, 프로토콜 버전, 요청 헤더 등이 포함된다.바디는 클라이언트가 서버에 전송하고자 하는 실제 데이터가 포함되며, JSON, XML, 폼 데이터 등이 포함될 수 있다.데이터를 암호화하지 않은 평문으로 전송하기 때문에 중간에, 누군가가.. 2024. 9. 14.
[CS] 대칭키와 비대칭키(공개키) 암호화 방식 암호화 기술암호화는 데이터를 읽을 수 없는 형태로 변환하는 과정이다. 이를 통해 데이터가 전송 중에 도청되더라도 내용을 알 수 없게 된다.즉, 암호화 기술을 통해 데이터를 암호화하면, 해당 데이터를 읽을 수 있는 사람을 제한할 수 있기 때문에 데이터의 기밀성을 보장한다.HTTPS 와 같은 보안 프로토콜에서는 대칭키와 공개키 암호화를 결합하여 사용한다.대칭키 암호화의 장점과 공개키 암호화의 장점을 채택하여 용량이 큰 정보는 대칭키로 암호화하고, 암호화에 사용된 대칭키는 공개키로 암호화하여 대상에게 전달하는 하이브리드 암호화 방법이 일반적으로 사용되고 있다. 대칭키 암호화 방식 암호화와 복호화에 같은 키를 사용하는 방식으로, 암호화한 정보를 다른 사용자에게 보낼 때 암호 키도 함께 보내야 한다.구현이 간단하.. 2024. 9. 11.
[CS] Database 인덱스 (Index) 인덱스 (Index)테이블의 특정 컬럼(Column)에 인덱스를 생성하면, 해당 컬럼의 데이터를 정렬한 후 별도의 메모리 공간에 데이터의 물리적 주소와 함께 저장된다. 컬럼의 값과 물리적 주소를 (key, value)의 한 쌍으로 저장한다. 즉, 인덱스는 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조이다.예시: 만약 우리가 책에서 원하는 내용을 찾는다고 하면, 책의 모든 페이지를 찾아 보는것은 오랜 시간이 걸린다. 그렇기 때문에 책의 저자들은 책의 맨 앞 또는 맨 뒤에 색인을 추가하는데, 데이터베이스의 index 는 책의 색인과 같다.데이터베이스에서도 테이블의 모든 데이터(책의 내용)를 검색하면 시간이 오래 걸리기 때문에 데이터와 데이터의 위치(책의.. 2024. 9. 9.