전체 글

인덱스란?데이터베이스 인덱스는 데이터 접근 속도를 향상시키기 위해 사용되는 데이터 구조이다.B-Tree보통 인덱스로 많이 쓰이는 구조의 이름.이진 검색 트리를 일반화한 자료구조.2개 이상의 자식을 가진 노드를 허용하고 탐색에 평균 O(logN)의 시간이 걸린다.대수확장성이라는 특징을 가지고 있어서 더 빠른 속도로 더 많은 양의 데이터를 검색할 수 있다.대수확장성대수확장성은 트리 깊이가 리프 노드 수에 비해 매우 느리게 성장하는 것을 뜻한다.인덱스 성능 최적화인덱스는 두 번 탐색하도록 강요한다. 인덱스 리스트 -> 컬렉션 순으로 탐색하기 때문이고 읽기에 따른 비용이 수반된다.이 때문에 사용되지 않거나 중복되는 인덱스, 불필요한 인덱스는 제거해야 한다.인덱스는 컬렉션이 수정되면 같이 수정되야 한다. 이 또한..
트랜잭션과 관련된 용어트랜잭션데이터베이스에서 하나의 논리적 기능을 수행하기 위한 작업의 단위커밋여러 쿼리가 성공적으로 처리되었다고 확정하는 명령어.트랜잭션 단위로 수행되며 변경된 내용이 모두 영구적으로 저장됨.롤백트랜잭션으로 처리한 하나의 묶음 과정을 일어나기 전으로 돌리는 일 (Ctrl Z)트랜잭션 전파트랜잭션을 수행할 때 커넥션 단위로 수행하기 때문에 커넥션 객체를 넘겨서 수행해야 하는데 이를 넘겨서 수행하지 않고 여러 트랜잭션 관련 메서드의 호출을 하나의 트랜잭셩에 묶이도록 하는 것. 트랜잭션의 특성ACIDAtomicity원자성: 트랜잭션과 관련된 일이 모두 수행되었거나 되지 않았거나를 보장하는 특징Consistency일관성: 허용된 방식으로만 데이터를 변경해야 하는 것을 의미Isolation격리성..
Join?조인은 두 개 이상의 테이블을 연결하여 데이터를 탐색하는 방법이다. (대부분의 SQL에서는 JOIN을 사용, MongoDB의 경우엔 lookup 이라는 키워드 사용)Inner Join두 테이블에서 일치하는 데이터만 반환. (교집합)A, B 테이블을 Inner Join 하면 A, B 모두에 존재하는 데이터만 쿼리된다.Outer Join외부 조인은 Left Outer Join, Right Outer Join, Full Outer Join의 3가지 케이스가 있다.Left Outer Join첫 번째 테이블(왼쪽)과 두 번째 테이블(오른쪽)의 일치하는 레코드를 반환한다.오른쪽 테이블에 일치하는 레코드가 없다면 왼쪽 테이블 레코드는 그대로 출력하고 오른쪽의 레코드는 NULL로 출력한다.Right Outer..
ERD(Entity Relation Diagram)위와 같이 생긴 테이블 간의 관계를 나타낸 도표 같은 것을 ERD라고 한다.각 테이블은 어떤 간선으로 연결되어 있는데 이것들은 각각 뜻을 가지고 있다. 이 간선이 실선이 아니고 점선인 경우도 있다.점선인 경우에는 자식 테이블이 부모 테이블의 기본키를 기본키로 사용하지 않는 경우에 사용한다. 어떤 부서를 나타낸 ERD이다.사원은 0 ~ n 명의 고객을 가질 수 있다. (고객 쪽의 선에 0로 구멍이 뚫려 있음.)고객은 0 ~ n 개의 주문을 넣을 수 있다.주문에는 1 ~ n 개의 상품이 들어갈 수 있다. (상품 쪽의 선에 구멍이 뚫려 있지 않음.)   출처CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조 - 큰돌https://www.in..
HTTP의 메서드의 종류GETPOSTPUTHEADDELETEPATCHOPTIONSCONNECTTRACEGET: 데이터를 읽는다.url을 기반으로 데이터를 요구하는 방법이다.url을 기반으로 하기 때문에 길이 제한 (2000자 미만)이 있다.성공시 HTTP 상태코드 200을 반환한다.캐싱이 가능하다.url을 기반으로 요청하기 때문에 해당 요청의 파라미터가 브라우저 기록에 남는다.url을 기반으로 요청하기 때문에 요청할 때 ASCCII문자열만 보낼 수 있다.사용자 이름, 비밀번호 등 민감한 정보를 전달할 때 사용하지 않는다.POST: 데이터를 생성한다.url이 아닌 HTTP message body를 통해 데이터를 전달한다.HTTP body를 통해 전달되기 때문에 길이 제한이 없다.성공적으로 데이터를 생성할 ..
1xx (정보)서버가 요청을 잘 받았으며 해당 프로세스를 계속 이어가며 처리하는 것.100: 계속함을 의미2xx (성공)서버가 요청을 잘 받았고 이를 기반으로 클라이언트에게 성공적으로 데이터를 보낸 것을 의미한다.200 OK : 요청이 성공적으로 되었다.201 Created: 요청이 성공적이었으며 그 결과로 새로운 리소스가 생성되었다.3xx (리다이렉션)서버가 클라이너트의 요청에 대해 완료를 위해 추가 작업 조치가 필요하다.301 Moved Permanently: 이 응답코드는 요청한 리소스의 URI가 변경되었음을 의미한다.변경된 새로운 URI를 301 상태코드와 함께 주어야 한다.4xx (클라이언트 오류)클라이언트가 요청한 페이지를 제공할 수 없거나 클라이언트의 요청이 잘못되어 결과적으로 요청을 처리할..
개념로그인은 세션기반 인증방식 또는 토큰기반 인증방식으로 구현된다.HTTP의 특징은 stateless하다는 것이 있다. HTTP 요청을 통해 데이터를 주고 받을 때 요청이 끝나면 요청한 사용자의 정보 등을 유지하지 않는 특징이 있다는 것이다.따라서 HTTP 기반으로 로그인 기능을 구현했을 때 로그인 상태를 어떻게 유지해야 하는가?라는 의문이 생긴다.이를 가능하게 해주는 방식이 세션기반과 토큰기반의 2가지로 나뉜다.세션기반 로그인 프로세스로그인 -> sessionId 생성 -> 서버에서 세션ID를 쿠키로 설정해서 클라이언트에 전달클라이언트가 서버에 요청을 보낼 때 해당 세션ID를 쿠키로 담아서 전에 로그인했던 아이디인지 확인로그인을 유지세션기반의 단점사용자의 상태에 관한 데이터를 서버에 저장했을 때 로그인..
로컬스토리지의 개념로컬스토리지는 웹 스토리지 객체오 브라우저 내에 key : value 형태로 오리진에 종속되어 저장되는 데이터이다.(오리진이 같은 브라우저 내에서 공유된다.)하나의 키에 오로지 하나의 값만 저장된다.데이터는 사용자가 브라우저에서 수동으로 삭제하지 않는 한 평생동안 로컬 저장소에 저장되며 만료 날짜가 없다. 사용자가 창이나 탭을 닫아도, 컴퓨터를 종료해도 만료되지 않는다.최대 저장용량은 5MB다.보통 사용자의 행위를 기억할 때, 로그인을 유지하기 위한 값 등으로 사용되며 로컬 스토리지 데이터는 자동으로 서버로 전송되지 않는다. (쿠키는 자동으로 전송된다.)오리진위의 이미지의 주소 부분에서 포트번호까지의 경로를 오리진이라고 한다.로컬 스토리지는 오리진에서 공유된다는 뜻은 이 경로까지가 같은..
Purewater
프로그램 공부 일기장