일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- mutable
- reverse프록시
- java
- proxy
- acid
- 알고리즘
- transaction
- Database
- 조인
- 정규화
- 방어적복사
- 프록시서버
- 불변객체
- immutable
- binarySearch
- 깊은복사
- 이진탐색
- 자료구조
- NoSQL
- 인덱스
- RDBMS
- 얕은복사
- ERD
- 데이터베이스
- forward프록시
- index
- Today
- Total
목록분류 전체보기 (45)
jacketList

B tree 란? B-tree는 데이터베이스와 파일 시스템에서 널리 사용되는 트리 자료구조의 일종으로, 이진 트리를 확장해 하나의 노드가 가질 수 있는 자식 노드의 최대 숫자가 2보다 큰 트리 구조로 좌우 균형을 맞추어 트리의 검색,삽입,삭제 시 시간 복잡도를 개선한 자료구조이다. B-tree는 아래와 같은 구조를 지니고 있다. 노드의 최대 숫자가 2보다 크다고 했으므로 최대 자식수가 3개면 3차 B-tree 4개면 4차 B-tree.... m차 B-tree라고 부른다. 루트(root) 노드 최상단에 위치한 노드 리프(leaf)노드 자식이 없는 최하단에 위치한 노드 내부(internal)노드 루트노드와 리프노드를 제외한 모든 노드 B-tree의 규칙 노드의 데이터 수가 N개이면, 자식 노드 수는 N+1개..

RDBMS와 NoSQL의 개념과 각각의 차이점 RDB란? RDB는 키(key)와 값(value)들의 간단한 관계를 테이블화 시킨 매우 간단한 원칙의 전산 정보 데이터베이스이다. RDB의 장점? 정형화된 데이터를 저장하기 때문에 데이터의 형태와 크기를 미리 정하고 테이블 단위로 구분하여 데이터를 저장 트랜잭션을 통해 ACID(원자성, 일관성, 격리성, 지속성)를 보증하기 때문에 안정적인 데이터 관리가 가능하다. 조인을 포함해 복잡한 조건을 포함하는 데이터 검색이 가능하다.(복잡한 질의 처리 가능) 정규화를 통해 데이터 중복성을 줄이고 데이터 무결성을 개선하는 설계 기법을 사용한다. RDBMS 란? DBMS 앞에 R(Relational) 이 추가되어 관계형 데이터베이스 관리 시스템이라고 한다. RDB는 관계..

ERD가 뭐죠? ERD는 Entity Relationship Diagram의 약자로 요구 분석 사항에서 얻은 엔티티와 속성들의 관계를 그림으로 나타낸 개체-관계 모델이다. 프로젝트에서 사용하는 데이터베이스 구조를 한눈에 파악할 수 있고 서비스 구축 시 제일 먼저 신경써야 하는 부분이다. ERD 구성요소와 표기법 기본 요소로 Entity, Attribute, Relationship등이 있고 구체적으로 weak Entity, Multivalued Attribute, Weak Realationship 이 있다. 먼저 엔티티에 대해서 보자면 엔티티(Entity) 정의 가능한 사물 또는 개념 사람도 될 수 있고 도서정보와 같은 무형의 정보도 데이터화가 가능하다. 데이터베이스의 테이블이 엔티티라고 생각하면 된다 예..

데이터베이스 무결성에 대해 먼저 정리하고 넘어가자 개체 무결성 Entity Integrity 기본키를 구성하는 속성은 null값을 가질 수 없다. 기본키를 구성하는 속성은 다른 레코드와 중복될 수 없다. 참조 무결성 Referential Integrity 외래키를 구성하는 속성은 참조 릴레이션(테이블)의 기본키 값과 동일해야만 한다. 도메인 무결성 Domain Integrity 속성값은 속성이 정의된 도메인의 범위를 벗어날 수 없다. 이 무결성을 기억하며 각 키(key)들에 대해 알아보자 데이터베이스에서 키(key)가 존재하는 이유? 하나의 릴레이션에는 수많은 튜플이 존재하고 각 튜플간에는 중복되는 값이 있을 수 있다. 그래서 튜플을 구별해주기 위해 모든 속성을 이용하는 것보다 일부 속성만 이용하는 것이..

백준 문제를 푸는데 Arrays.sort를 활용해 정렬을 했더니 시관 초과가 났다. Arrays.sort는 dual pivot QuickSort 알고리즘을 사용해 평균 시간복잡도가 O(nlong)인 매우 빠른 알고리즘에 속한다고 한다. 하지만 최악의 경우 O(n^2) 이 될 수도 있다는데.. 해당 백준 문제에서는 Arrays.sort()를 쓰지 못하게 O(n^2)이 걸리도록 저격한 데이터가 있었고... 여기서 알게된 계수정렬(Counting Sort)을 정리해보고자 한다. 계수정렬(Counting Sort) 가 뭔데? 계수정렬은 수많은 알고리즘 중 시간복잡도가 O(n)으로 엄청난 성능을 보여주는 알고리즘이다. 대표적인 빠른 정렬 알고리즘으로 퀵 정렬(Quick Sort), 힙 정렬(Heap Sort), ..

HTTP/IP/TCP/UDP 는 모두 프로토콜 프로토콜은 클라이언트와 서버가 정보를 교환할 수 있도록 하는 메시지 형식에 대한 규칙이다. HTTP는 브라우저의 개발자 도구의 네트워크 탭에서 HTTP메시지의 헤더를 통해 어떤 구조로 메시지를 주고 받는지 눈으로 확인이 가능하고 IP 같은 경우 192.168.10.1과 같이 숫자로 주소값을 나타내고 있다는 것을 알 수 있다. 그러나! TCP/UDP같은 경우 실질적으로 눈에 보이는게 없다보니 잘 와닿지 않는다. TCP/UDP에 대해 자세히 알아보자 TCP(전송 제어 프로토콜)? IP(Internet Protocol)가 인터넷 프로토콜로써 복잡한 인터넷 망 속에서 클라이언트와 서버간에 통신할 수 있게 IP주소와 패킷과 같은 규칙을 통해 통신을 하게 하는 것이라면..

SOP가 무엇인가요? same object policy의 약자로 동일 출처 정책을 의미한다. 동일 출처 정책? -> 같은 출처(Origin)의 리소스만 공유가 가능하다는 정책 출처(Origin)이 뭔가요? 출처는 프로토콜(Protocol or Scheme), 호스트(Host), 포트(Port)로 구성되어 있고 모두 같아야 동일한 출처라고 말한다. 1번은 프로토콜이 다르고 3번은 호스트가 다르다 2번은 http의 기본 포트가 80이라 생략이 가능하므로 같은 출처이고 4번은 api/cors 부분은 path이므로 같은 출처이다. 동일 출처 정책(SOP)는 어떤 출처(Origin)에서 불러온 문서(Document)나 스크립트(Script)가 다른 출처에서 가져온 리소스와 상호작용 하는 것을 제한하는 보안 방식이..

프록시(proxy)는 '대리' 라는 의미를 갖고 있음 즉 프록시 서버는 서버와 클라이언트 사이의 '중계자'로써의 역할을 수행한다. 웹과 서버간 통신을 하는데 왜 중간에 프록시 서버를 거쳐 통신을 해야할까? 프록시 서버를 사용하는 이유로는 아래와 같은 이유가 있다. 보안 클라이언트에서 다이렉트로 서버로 요청을 보낸다면 서버의 주소가 쉽게 노출되기 때문에 익명의 사용자가 서버로 접근하기 쉬워진다. 이를 방지하기 위해 프록시 서버를 중간에 거치도록 하여 서버의 IP를 숨김으로써 외부로부터의 위험을 막아준다. 프록시 서버를 방화벽으로 사용하기도 한다. ※방화벽(FireWall) 보안 규칙에 기반하여 오고가는 네트워크 트래픽을 모니터링 하고 제어하는 네트워크 보안 시스템 신뢰할 수 있는 내부 네트워크 신뢰할 수 ..