Redis에서 키를 관리하는 법자료구조를 가리키는 key를 의미innerkey가 아님키의 자동 생성과 삭제자동 생성키가 존재하지 않을때 아이템을 넣으면 자동으로 빈 자료구조 생성하여 넣음키 작업을 따로 하지 않아도 자동으로 명시한 키 값으로 자료구조 생성대신, 같은 키로 다른 자료구조가 있다면 에러 반환자동 삭제stream을 제외한 모든 자료구조는 모든 아이템이 삭제되면 자동으로 키도 삭제됨키와 관련된 커맨드EXISTS key keynamekeyname에 해당하는 키 있는지 확인존재하면 1, 없으면 0KEYS pattern h*llo저장된 키를 패턴에 맞게 조회하며, 위 예시의 h*llo 의 경우 * 자리에 아무것도 없거나 어떤것이 와도 패턴이 맞는 키를 모두 조회패턴은 글롭패턴을 따른다KEYS모든 키를..
string [”key” → “value”]특징키와 실제 데이터가 1:1 로 연결되는 유일한 자료구조value에 저장 가능한 데이터최대 512MB의 문자열 데이터 저장 가능binary-safe 하기에 JPEG 이미지, 바이트 값, HTTP 응답값 등 또한 저장 가능숫자 또한 저장 가능INCR(1 증가), INCRBY(지정하는 숫자만큼 덧셈 가능)비슷한 원리로 DECR, DECRBY 도 가능숫자를 원자적으로 조작 가능 → 여러 클라이언트가 경쟁 상태를 발생시키지 않음 (중복 처리 없음)기본 사용SET k v → O(1)k 라는 key에 v 라는 value 저장GET k -> O(1)k 라는 key에 해당하는 value 가져옴숫자의 경우INCR k , DECR kINCRBY k 30 , DECRBY k 30..
기아 상태 특정 프로세스의 우선 순위가 낮아서 원하는 자원을 계속 할당받지 못하는 상태이다. SJF, SRT, 우선순위 스케줄링, SPN, feed back 등의 스케줄링 방법에서 발생 가능하다. 기아 상태 해결 방법 에이징(Aging) 프로세스가 대기 큐에서 기다릴수록 우선순위를 증가시켜주는 방식이다. 이렇게 하면 오랫동안 기다린 프로세스가 결국에는 CPU를 할당받을 수 있다. 우선순위 기반의 스케줄링 알고리즘에서 주로 사용된다. 피드백(Feedback) 프로세스가 CPU를 사용할수록 우선순위를 감소시켜주는 방식입니다. 이렇게 하면 자주 CPU를 사용하는 프로세스가 낮은 우선순위로 밀려나게 되고, 오랫동안 기다린 프로세스가 높은 우선순위로 올라가게 된다. 다단계 큐(Multilevel Queue)나 다..
프로세스 프로그램 어떤 작업을 하기 위해 해야할 일들을 순서대로 나열한 것 컴퓨터에서 어떤 작업을 위해 실행할 수 있는 '정적인 상태'의 파일 프로세스 프로그램이 실행되서 돌아가고 있는 상태, 컴퓨터에서 연속적으로 실행되고 있는 '동적인 상태'의 컴퓨터 프로그램 프로세스는 운영체제가 메모리 등의 필요한 자원을 할당해준 '실행중인 프로그램' 프로그램을 실행하면 운영체제로부터 실행에 필요한 자원을 할당받아 '프로세스'가 되는 것 프로세스 문맥 프로세스가 현재 어떤 상태에서 수행되고 있는지 정확히 규명하기 위해 필요한 정보 시분할 시스템 환경에서 명령을 수행하기 위해서 이전에 어디까지 명령을 수행했는지 정확한 수행 시점과 상태를 재현할 수 있는 정보가 필요하고 이 정보가 프로세스 문맥 프로세스 문맥은 하드웨어..
개요 운영체제 컴퓨터의 하드웨어 바로 윗단에 설치되는 소프트웨어이다. 컴퓨터 시스템의 하드웨어 자원을 효율적으로 관리하는 역할을 한다. 주어진 자원으로 최대한의 성능을 내면서 특정 사용자 혹은 프로그램이 지나친 불이익을 받지 않도록 한다. 주요 역할 사용자에게는 편리한 인터페이스와 환경을 제공하는 역할을 한다. 운영체제 자신을 보호하는 역할을 가진다. (보안적인 측면) 운영체제의 분류 시분할 시스템 여러 작업을 수행할 때 컴퓨터의 처리 능력을 일정한 시간 단위로 분할해 사용하는 방식이다. 현대의 범용 컴퓨터는 대부분 시분할 방식을 사용한다. 다중 프로그래밍 방식과 결합하여 모든 작업이 동시에 진행되는 것처럼 대화식 처리가 가능하다. 다중 프로그래밍 시스템(multi-programming system) 하..
Join 두 개 이상의 테이블을 하나의 집합으로 만드는 연산 Join 기법들 대표적인 기법들만 소개할 예정 NL Join이 디폴트 기법 설명 Nested Loop Join (NL Join) 선행 테이블에서 액세스한 각 값을 후행 테이블과 조인하는 방식 Sort Merge Join (SM Join) 조인 컬럼을 기준으로 데이터를 정렬하여 조인을 수행하는 방식 Hash Join 해시 함수를 이용해서 데이터를 조인하는 방식 NL Join 프로그래밍에서 사용하는 중첩 반복문과 유사한 방식으로 조인 수행 반복문 외부의 테이블은 선행 테이블 혹은 외부 테이블(Outer Table) 이라 부른다. 반복문 내부에 있는 테이블은 후행 테이블 또는 내부 테이블(Inner Table) 이라 부른다. 선행 테이블 의 조건을 ..
사전 지식 (용어) DB Key란? 튜플들을 구별할 수 있는 기준이 되는 속성이다. 필요한 이유 하나의 릴레이션에는 수많은 튜플들이 존재한다. 각 튜플들 간에는 중복되는 속성값이 발생할 수 있다. 이 튜플들을 구분하기 위한 기준이 필요하고, Key가 그 기준이 된다. Key 의 종류 키의 종류로는 크게 슈퍼키, 후보키, 기본키, 대체키, 외래키 등이 있다. 최소성, 유일성 모든 키의 종류가 이 두개를 만족하는 것은 아님! 유일성 키를 통해 모든 튜플을 구별할 수 있는 특징 유일성을 만족하는 예시 회원 테이블 [주민등록번호] 혹은 [이메일] 과목 테이블 [강의 연도, 과목명, 교수명, 강의 교시] 유일성을 만족하지 않는 예시 회원 테이블 [취미] 최소성 키에 튜플을 식별하는데 불필요한 어트리뷰트가 없는 경..
객체지향과 인지 능력 앨리스 이야기 앨리스의 행동은 상태에 의존적 행동에 의해 상태가 변함 앨리스의 상태가 변하여도 앨리스가 다른 사람이 되는 것은 아님 → 상태와 무관하게 유일한 존재로 식별 가능 객체, 그리고 소프트웨어 나라 객체 상태 행동 식별자 객체란 식별 가능한 개체 또는 사물이다. 객체는 자동차처럼 만질 수 있는 구체적인 사물일 수 있고, 시간처럼 추상적인 개념일 수도 있다. 객체는 구별 가능한 식별자, 특징적인 행동, 변경 가능한 상태를 가진다. 소프트웨어 안에서 객체는 저장된 상테와 실행 가능한 코드를 통해 구현된다. 상태 과거의 모든 행동 이력을 설명하지 않고도 행동의 결과를 쉽게 예측하고 설명할 수 있다. 상태와 프로퍼티 객체의 상태를 구성하는 모든 특징을 통틀어 객체의 프로퍼티라고 한..