본문 바로가기
728x90
반응형

분류 전체보기128

[DB] partitioning, sharding, replication ❓  partitioning 종류 vertical partitioning 수직 파티셔닝  정규화 1NF, 2NF, 3NF, BCNF 를 통해 테이블을 나누는 것도 vertical partitioning 입니다.  어떤 테이블에서 select를 통해 특정 컬럼만 가져오는 쿼리를 만들었을 때, 디스크에서 메모리로 데이터를 가져올 때 where 조건에 맞는 것들 중에 select 한 특정 컬럼만 골라서 가져오는 것이 아니라 일단 해당하는 로우를 모두 가져오게 됩니다. 그럼 이때 어떤 컬럼이 사이즈가 매우 큰 데이터(ex 게시글 본문)를 가지고 있는데 select 한 컬럼이 아니라면 필요없는 데이터를 가져온게 되니 메모리 낭비가 발생합니다. 이럴 때 vertical partitioning 을 하면 효율적입니다... 2024. 3. 22.
[DB] 인덱스에서 B tree 를 쓰는 이유 B tree는 BST(Binary Search Tree, 이진 탐색 트리) 보다 확장된 형태입니다.  BST는 자식노드가 최대 2개인 트리 왼쪽 서브트리는 부모보다 작은 값, 오른쪽 서브트리는 부모보다 큰 값 B Tree는 이보다 확장되어 자식노드를 2개 이상 가질 수 있는 트리입니다.모든 leaf 노드(최하위 노드)들은 같은 레벨에 있습니다. 최대 자식노드 수 M이 5 일 때 5차 B tree 라고 합니다. 최대 자식 수    M최대 키 수       M-1최소 자식 수    M/2의 올림        (root, leaf node 제외)최소 키 수       M/2의 올림 – 1   (root node 제외)    DB 인덱스에 B tree 계열을 사용하는 이유 B tree 계열 (B+ tree, B.. 2024. 3. 20.
[DB] 인덱스, unique index, multicolumn index, hash index where name = '홍길동'name 이라는 컬럼에 인덱스 없으면 100만개 full scan – 시간복잡도 O(N)인덱스가 걸려있고 B-tree 기반이라면 O(logN) 일반 인덱스 : 중복 가능유니크 인덱스 : 중복 불가능여러개를 한번에 묶어서 인덱스 생성 가능 = multicolumn index 테이블을 생성하면서 만들 수도 있고테이블 생성 후에 만들 수도 있음 primary key에는 RDBMS가 자동으로 인덱스를 생성해준다.     where a = 7    and b = 95;위의 경우 a에 대해서 인덱스를 생성하면 인덱스내에서 a = 7인 것을 찾고 또 a = 7인 것들을 full scan해서 b = 95 인 것을 찾아야 하기 때문에 비효율적이다.그래서 a, b를 하나로 묶은 인덱스를 만.. 2024. 3. 19.
[SpringBoot] 웹서버, WAS, JSP, Servlet, MVC 패턴, MVC 프레임워크, Front Controller 이쁘게 그림도 넣고 설명하고 싶지만 지금은 공부만 하는걸로도 시간이 부족하다.. 일단 설명만,,      김영한의 스프링 MVC 1편 20240222 ㄱ) 웹서버, 웹 애플리케이션 서버(WAS)     - 웹서버 : 정적 콘텐츠 처리       - WAS : 동적 콘텐츠 처리. 애플리케이션 로직 처리.       - 역할을 분리하여 과부하 방지 및 효율적인 리소스 관리. 분리 안하고 WAS만 쓰다가 WAS에 문제가 생기면 오류화면조차 보여주지 못함.  ㄴ) Servlet 객체       - http 요청 메시지 파싱, 헤더 확인, 바디 내용 파싱, (비즈니스 로직 후), http 응답 메시지 생성, 시작라인, 헤더, 바디에 html 생성.       - 위와 같이 비즈니스 로직 전, 후의 모든 과정을 대.. 2024. 3. 18.
[SpringBoot] API 상태코드, HTTP 헤더, 콘텐츠 네고시에이션, 쿠키, 캐시 이쁘게 그림도 넣고 설명하고 싶지만 지금은 공부만 하는걸로도 시간이 부족하다.. 일단 설명만,,   김영한의 모든 개발자들을 위한 HTTP 웹 기본 지식 20240215 - HTTP 메소드 활용  ㄱ) 데이터 전달 방식 : 쿼리 파라미터, 바디  ㄴ) 정적데이터 조회, 동적데이터 조회, html form 전송, http api 로 전송  - API 설계 예시  - API 상태코드  ㄱ) 2xx : Successful 정상처리. 200 OK, 201 Created 생성됨, 202 Accepted 요청은 잘 받았지만 아직 완료되지 않음 ex 배치, 204 No Content 정상처리 했고 클라이언트에게 추가로 보낼 바디 없음 ex 작성 중 저장.   ㄴ) 3xx : Redirection 추가조치 필요.   .. 2024. 3. 18.
728x90
반응형