분류 전체보기 131

데이터 베이스 - 스키마, 키, 인덱스

스키마? 데이터 베이스의 전체적인 구조와 제약 조건을 명시한것. 내부 스키마 : 사용자 측면의 데이터베이스 전체구조개념 스키마 : 데이터베이스의 전체 구조외부 스키마 : 물리적 저장장치 측면의 데이터베이스 구조  관계형 데이터 베이스. RDB2차원 테이블에 저장되며 데이터의 구조와 데이터 간 종속성 등을 알 수 있다. 릴레이션 : 관계형 데이터베이스에서 데이터의 개념적 모델테이블 : 릴레이션을 실제로 구현한 개체 NOSQL. Not Only SQL비관계형 데이터 베이스로, 보다 유연한 형태의 데이터베이스이다.대용량 데이터를 조회할 때 속도면에서 유리하고 수평적 확장성이 좋아 확장하기 편하다. KEY?튜플을 구분하기 위한 속성 또는 속성의 집합. key의 특성유일성 : 하나의 키 값으로 튜플을 식별할 수 ..

네트워크 - 정리

1. TCP 송신부와 수신부의 연결을 확인하는 연결형 서비스가상 회선 패킷 교환 방식 사용.(패킷이 전달되는 회선이 정해져 있음)데이터 손실이 없음을 보장. 신뢰성 높음연결 시 3way핸드셰이킹, 해제 시 4way핸드셰이킹 함.신뢰성 보장 방법흐름 제어 : 송-수신부 간 데이터 처리 속도 제어혼잡 제어 : 송신부 데이터 전달 속도와 네트워크 속도 차이 해결오류 제어 : 데이터의 오류 검출 및 재전송2. UDP비연결형 서비스(송-수신부의 연결이 보장되지 않음)데이터그램 패킷 교환 방식 사용(패킷이 서로 다른 회선으로 교환 될 수 있음)데이터의 신뢰성 낮음체크섬 필드를 이용해 최소한의 오류 검출 가능3. HTTP 인터넷에서 데이터를 전송하기 위한 클라-서버 구조의 통신 프로토콜비연결성 : 서버에서 응답을 받..

CS/네트워크 2024.06.20

네트워크 - REST

REST?Representational State Transfer의 약자. HTTP 통신을 활용하기 위해 고안된 아키텍처.클라이언트는 URI로 표현된 자원을 HTTP 메서드를 이용해 CRUD 연산을 할 수 있다.자원을 명시해 연산을 수행하고 상태를 주고 받는 것이다. REST의 특징일관된 인터페이스 : URI를 HTTP메서드로 조작하는 일관된 인터페이스를 사용. HTTP를 따르는 모든 플랫폼에서 REST사용 가능클라이언트-서버 구조 : 클라이언트와 서버 간에 요청-응답의 독립적인 구조를 갖는다. 클라이언트는 서버에 요청을 보내고 응답 대기. 서버는 자원을 가지고 있고 클라이언트의 요청에 응답무상태성 : 서버에서는 클라이언트의 요청을 저장/관리 하지 않는다. 서버는 클라이언트의 요청에 대한 처리와 응답만...

CS/네트워크 2024.06.19

네트워크 - HTTP/S

HTTP?인터넷상에서 데이터를 전송하기 위한 프로토콜. TCP/IP 4계층의 응용 계층이다. HTTP 특징1. 비연결성 -클라이언트에서 요청을 보낸 후 서버로 부터 응답을 받으면 연결을 끊는 것.불특정 다수를 대상으로 하는 서비스에 유리.응답을 기다리지 않기에 자원 사용에 유리하지만 클라이언트를 기억할 수 없다는 단점으로 인해 동일한 클라이언트가 연속 요청을 하면 연결 해제 과정을 반복해 오히려 자원 낭비가 된다.-> 이러한 단점을 보완하기 위해 일정 시간 동안 연결을 유지할 수 있도록 HTTP Keep Alive를 사용한다.마지막 응답 이후 일정 시간 연결을 유지하여 동일 클라이언트의 요청이 오면 연결 과정 생략할 수 있다. 2. 무상태 -서버에서 클라이언트 상태를 저장하지 않는 것.ex) 분식집 고객..

CS/네트워크 2024.06.19

네트워크 - OSI 7계층, TCP/IP, TCP/UDP

OSI 7계층 - 네트워크를 개념적으로 나눈 계층. 네트워크 통신이 이뤄지는 과정을 7단계로 나눈 네트워크 표준 모델TCP/IP 4계층 - 실제 인터넷 통신에 사용되는 계층.OSI 7계층OSI 7계층의 송신부 수신부송신부 - 데이터를 높은 계층 -> 낮은 계층으로 전달.수신부 - 데이터를 낮은 계층 -> 높은 계층으로 전달. 각 계층은 독립적이며 데이터를 송신할 때 각 계층에서 필요한 정보를 추가해 데이터를 가공한다.제어 정보를 담은 헤더, 트레일러(데이터 링크 계층)를 붙이는 데이터 캡슐화 과정이 있다.데이터 캡슐화 하는 이유? - 수신부의 같은 계층에서 데이터 호환성을 높이고 오류 최소화 하기 위함. 수신부에서는 물리 -> 응용 계층을 거치며 헤더와 트레일러를 분석, 제거하는 역캡슐화를 진행한다.각 ..

CS/네트워크 2024.06.19

Redis - sentinel

sentinel?레디스는 일반적으로 마스터와 복제로 구성된다. 센티널은 master와 slave를 감시하고 있다가 마스터가 다운되면 이를 감지해서 관리자의 개입없이 자동으로 복제를 마스터로 올려준다.모니터링 Monitoring자동 장애조치 Automatic Failover알림 Notification : 센티널은 감시하고 있는 레디스 인스턴스들이 failover 되었을 때 Pub/Sub으로 Application(client)에게 알리거나 shell script로 관리자에게 이메일이나 SMS로 알릴 수 있다.ex) 마스터(6382), 복제(6383), 센티널(5000)(defalut : 26379)redis.conf127.0.0.1:6383> slaveof 127.0.0.1 6382127.0.0.1:6383..

Redis 2024.06.18

Redis - Hashes

소개Field와 value로 구성?Hashes는 key 하나에 여러개의 field와 value로 구성됩니다.key 하나에 field와 value 쌍을 40억개(4,294,967,295)까지 저장 가능합니다. Table과 Hash의 유사한 점Hashes가 field와 value로 구성된다는 면에서 RDB의 table과 비슷합니다.Hash key는 table의 PK, field는 column, value는 value로 보면 됩니다.Key가 PK와 같은 역할을 하기 때문에 key 하나는 table의 한 row와 같습니다. Table과 Hash의 다른 점Table의 column 수는 일반적으로 제한이 있는 반면, Hash의 field 수는 40억개로 거의 무제한에 가깝습니다.Table에서 column을 추가하려..

Redis 2024.06.16

Redis - Sorted Sets

소개Sorted Sets는 key 하나에 여러개의 score와 value로 구성.Value는 score로 sort되며 중복되지 않는다.score가 같으면 value로 sort.Sorted Sets에서는 집합이라는 의미에서 value를 member라 부른다.Sorted Sets은 주로 sort가 필요한 곳에 사용.1. ZADD key score(숫자) member : sadd에서 score가 추가된 형태로 insert.명령> zadd myzip 60 "경기"결과> 1명령> zadd myzip 20 "서울"결과> 1명령> zadd myzip 40 "부산"결과> 1명령> zrange myzip 0 -1 score 순서로 표시된다결과> 1) 서울2) 부산3) 경기명령> zrange myzip 0 -1 wit..

Redis 2024.06.16

Redis - Sets

소개Sets는 key와 value가 일 대 다 관계.Value는 입력된 순서와 상관없이 저장되며, 중복되지 않는다. 즉, value A가 2번 저장되도 결과적으로 하나만 남는다.Sets에서는 집합이라는 의미에서 value를 member라 부른다.Sets은 주로 카드게임같은 게임이나, 집합연산이 필요한 곳에 사용. 명령어 요약SET: SADD, SMOVEGET: SMEMBERS, SCARD, SRANDMEMBER, SISMEMBER, SSCANPOP: SPOPREM: SREM집합연산: SUNION, SINTER, SDIFF, SUNIONSTORE, SINTERSTORE, SDIFFSTOREEnterprise: SLS, SRM, SLEN1. SADD key "member_1" "member_2" ... : ..

Redis 2024.06.16

Redis - Lists 데이터 타입, 명령어

소개Lists는 key와 value가 일 대 다 관계.value는 입력된 순서대로 저장됩니다.Lists는 주로 큐(Queue)와 스택(Stack)으로 사용됩니다.큐(Queue)는 들어오는 데이터를 순서대로 처리할때 사용합니다. FIFO스택(Stack)은 웹브라우져의 백버튼 처럼 주로 되돌아 갈때 사용합니다. LIFO 키(리스트)의 생성과 삭제value가 저장되면 키(리스트)는 생성됩니다. 키에 value가 하나도 없으면 키는 삭제됩니다.즉, 키(리스트)의 생성과 삭제를 위한 별도의 작업은 필요없다. 명령어 요약SET (PUSH): LPUSH, RPUSH, LPUSHX, RPUSHX, LSET, LINSERT, RPOPLPUSHGET: LRANGE, LINDEX, LLENPOP: LPOP, RPOP, BL..

Redis 2024.06.16