Computer
-
프로세스Computer/CS 2021. 10. 9. 23:55
프로세스 현재 실행 중인 프로그램 I/O-bound 프로세스 : 계산보다 입출력 중심의 프로세스 CPU-bound 프로세스 : 입출력보다 계산을 많이하는 프로세스 - 프로세스 메모리 구조 : 리눅스 기준으로 1GB Kernel 영역, 3GB User 영역 ① text(code) 영역 : 코드 자체를 구성하는 메모리 영역으로 Hex파일이나 BIN파일 메모리 : 프로그램 명령이 위치하는 곳으로 기계어로 제어되는 메모리 영역 ② data 영역 : 전역변수(global), 정적변수(static), 배열(array), 구조체(structure) 등이 저장된다. : 초기화 된 데이터는 data 영역에 저장되고, 초기화 되지 않은 데이터는 BSS (Block Stated Symbol) 영역에 저장된다. : 프로그램이..
-
Multi Process와 Multi ThreadComputer/CS 2021. 10. 7. 01:43
프로세스와 쓰레드 프로세스는 메모리에서 실행되고 있는 프로그램의 인스턴스로 독립적인 개체이다. 운영체제로부터 시스템 자원을 할당 받는 작업의 단위이며 실행된 프로그램을 의미한다. 프로세스들은 각각 독립된 메모리영역을 할당 받으며 기본적으로 1개의 스레드를 가지고 있다. 스레드는 프로세스 내에서 실행되는 여러 흐름의 단위이며 프로세스가 할당 받은 자원을 이용하는 실행 단위 프로세스 내에서 Stack만 따로 할당받고 나머지 영역은 공유한다. 같은 프로세스 내에 쓰레드는 Code, Data, Heap과 같은 공간을 공유하기 때문에 다른 스레드에 접근할 수 있지만, 다른 프로세스에 존재하는 메모리에는 직접 접근할 수 없다. 멀티 프로세스(Multi Process) 개념 두개 이상 다수의 프로세서(CPU)가 협력..
-
누적합의 확장 IMOSComputer/CS 2021. 9. 30. 01:11
IMOS는 누적합의 개념으로 특정 구간에서 가장 많이 중첩되는 영역을 구할 수 있는 방법 중 하나이다. 예를 들어 가게에 Q명의 손님이 방문한다. 가게는 시간 0부터 T까지 운영되며, 각각의 손님 i의 방문 시각(si)과 퇴장 시각(ei)이 입력으로 주어진다. 가게 운영 중 손님이 가장 많이 방문했을 때의 손님 수는 몇 명인가? 이런 문제가 있다면 입력을 위와 같은 그림으로 나타낼 수 있을 것이다. 이 때 가장 단순하게 구현한다면 for문을 si부터 ei까지 돌리면서 해당 배열의 값을 +1 해주는 것이겠지만 이 경우는 쿼리 하나의 처리 시간이 T 쿼리의 갯수를 Q라고 했을 때 시간 복잡도는 Q(TQ)가 되어서 쿼리가 많아지고 시간이 길어지는 경우에는 풀 수 없게된다. 이 때 사용하는 IMOS는 입장과 퇴..
-
Hashing - Chaining, Open AddressingComputer/CS 2021. 9. 27. 04:50
# 해싱이란? 대부분의 탐색 방법들은 탐색 키를 저장된 키 값과 반복적으로 비교하면서 탐색을 원하는 항목에 접근한다. 반면 해싱은 키 값에 직접 산술적인 연산을 적용하여 항목이 저장되어 있는 테이블의 주소를 계산하여 항목에 접근한다. 이렇게 키 값의 연산에 의해 직접 접근이 가능한 구조를 해시 테이블(hash table)이라 부르고, 해시 테이블을 이용한 탐색을 해싱(hashing)이라 한다. 키들의 비교에 의한 탐색 방법은 정렬이 안 되어 있다면 O(n)이고 정렬이 되어 있다면 O(log_2n)이다. 정렬되어 있는 경우의 시간 복잡도가 O(log_2n)인 건 이진 탐색 알고리즘 혹은 이진 탐색 트리의 탐색 알고리즘의 시간복잡도를 생각하면 된다. 잘 모르겠다면 이진 탐색 또는 이진 탐색 트리 알고리즘 게..
-
HTTP 상태 코드Computer/CS 2021. 9. 27. 04:24
https://developer.mozilla.org/ko/docs/Web/HTTP/Status HTTP 상태 코드 - HTTP | MDN HTTP 응답 상태 코드는 특정 HTTP 요청이 성공적으로 완료되었는지 알려줍니다. 응답은 5개의 그룹으로 나누어집니다: 정보를 제공하는 응답, 성공적인 응답, 리다이렉트, 클라이언트 에러, 그리고 developer.mozilla.org HTTP 응답 상태 코드에 대해서 자세하게 알 필요는 없지만 기본적인 내용은 알고 있는 것이 좋을 것 같다. 특정 HTTP 요청이 성공적으로 완료되었는지 알려주고 응답은 5개의 그룹으로 나누어진다. 정보 제공, 성공, 리다이렉트, 클라이언트 에러, 그리고 서버 에러를 나타낸다. 자세한 내용은 MDN을 이용해서 찾아볼 수 있기 때문에 ..
-
로그인Computer/CS 2021. 9. 9. 00:29
로그인 방식 관리 기본적인 HTTP는 stateless의 성질을 가지고 있기 때문에 로그인을 구현하기 위해서는 모든 요청에 대하여 회원 정보를 같이 동봉하여 보내야한다. 이러한 문제점을 해결하기 위해서 로그인에 대한 정보(유저 ID, Password 등)를 Backend 혹은 Frontend 단에 저장하는 방식 회원 정보 조희 및 대조 아이디, 비밀번호 조회 (비밀번호의 경우 암호화 되어있기 때문에 암호화 된 데이터를 비교) 아이디를 조회해서 유저 정보를 가져오고 비밀번호 대조까지 일치하면 로그인을 위한 준비 완료 HTTP는 무상태 프로토콜이기 때문에 유저에 대한 정보를 저장하는 관리 방법이 필요하다. Session, Cookie Session 정의 - 연결 상태를 의미하는 보안적인 다이얼로그 및 시간대..
-
Database 설계시 고려사항Computer/Database 2021. 7. 2. 00:50
DB 설계 데이터베이스 설계란 사용자의 요구를 분석하여 그것들을 컴퓨터에 저장할 수 있는 데이터베이스의 구조에 맞게 변형한 후 특정 DBMS로 데이터베이스를 구현하여 일반 사용자들이 사용하게 하는것이다. 데이터베이스 설계 시 고려사항 1. 무결성 : 삽입, 삭제, 갱신 등의 연산 후에도 데이터베이스에 저장된 데이터가 정해진 제약조건을 항상 만족해야함 2. 일관성 : 데이터베이스에 저장된 데이터들 사이나, 특정 질의에 대한 응답이 처음부터 끝까지 변함없이 일정해야함 3. 회복 : 시스템에 장애가 발생했을 떄 장애 발생 직전의 상태로 복구할 수 있어야 함 4. 보안 : 불법적인 데이터의 노출 또는 변경이나 손실로부터 보호할 수 있어야 함 5. 효율성 : 응답시간의 단축, 시스템의 생산성, 저장 공간의 최적화..
-
[Mysql] Database 캐릭터셋 utf8 변경Computer/Database 2020. 5. 15. 19:48
지난 포스팅에 Database 자체의 언어 설정을 변경하는 방법을 올렸었다. 이 방법은 테이블을 생성하기 전, DB만 생성했을 때 적용하면 되지만 이미 테이블을 생성한 경우에는 추가적인 설정이 필요하다. Database의 캐릭터셋 설정 변경 방법 ▼ https://black-hair.tistory.com/3 [Mysql] 우분투 Database 캐릭터셋 utf8 변경 Mysql을 DB로 사용하다보면 한글을 입력할 수 없거나 깨지는 경우가 있다. 기본적으로 문자를 utf8로 처리하지 않기 때문에 한글 등의 다른 문자는 깨질 수 있다. show variables like 'c%'; 를 이용하여 현 black-hair.tistory.com 테이블의 캐릭터셋을 변경하기 위해서는 먼저 지금 있는 테이블이 어떤 캐..