일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 레디스
- 플로이드-워셜 알고리즘
- DFS
- 데이터베이스
- 자료구조
- CSS
- deque
- OS
- 영속성 컨텍스트
- Data structure
- redis
- BFS
- HTML
- 완전탐색
- jpa
- java
- queue
- javascript
- 알고리즘
- CS
- Docker
- Algorithm
- db
- 백준
- 운영체제
- PYTHON
- Dijkstra
- It
- 아키텍처
- 프로그래머스
- Today
- Total
목록전체 글 (93)
If at first you don't succeed, try again

* 개요https://cyr0331.tistory.com/99 [DB] Index 실습(대용량 데이터 처리)* 개요얼마 전 대용량 시스템 공부를 진행하면서, DB에 약 700만건의 테스트 데이터를 삽입하였다.그 후 페이징 처리를 하기 위해서 조회를 하였는데, 다음과 같은 결과가 나왔다.select * from articlecyr0331.tistory.com지난 게시글을 통해 Index 실습을 진행하였다.인덱스를 생성함으로써 약 700만개의 데이터를 조회하는 시간을 17초에서 0.02초로 줄일 수 있었다.그런데 과연 인덱스를 사용함으로써 문제는 전부 다 해결되었을까? * 뒷 페이지 조회문제가 전부 해결됐는지 확인하기 위해 이번엔 50000페이지를 조회해보도록 하겠다.select * from article ..

* 개요얼마 전 대용량 시스템 공부를 진행하면서, DB에 약 700만건의 테스트 데이터를 삽입하였다.그 후 페이징 처리를 하기 위해서 조회를 하였는데, 다음과 같은 결과가 나왔다.select * from article where board_id = 1 order by created_at desc limit 30 offset 90;1번 게시판의 91번 게시글에서 120번 게시글까지 가져오는 데에 17초 이상이 걸린다.실제로 사용자가 페이지를 조회하고자 한다면 불편함을 토로할 것이다.explain 명령어를 통해 쿼리 플랜을 확인해보았다.explain select * from article where board_id = 1 order by created_at desc limit 30 offset 90;쿼리 타..

* HTTPHTTP는 웹 브라우저와 웹 서버 간의 데이터 송수신을 담당하는 프로토콜이다.주로 HTML, JSON, 이미지, 동영상 등 웹 컨텐츠를 전송하는 역할을 한다.기본적으로 TCP/IP 네트워크 위에서 동작하는 프로토콜이다.HTTP는 클라이언트에서 서버로 요청(Request)을 하고 서버가 응답(Response)을 주는 단방향 구조를 가지고 있다. * WebsocketWebsocket은 브라우저와 서버 간의 양방향 통신을 제공하는 프로토콜이다.HTTP와는 다르게 한 번 연결을 맺으면, 지속적으로 데이터를 주고 받을 수 있다.그리고 클라이언트 -> 서버로의 요청이 아니라 클라이언트의 요청 없이도 서버 -> 클라이언트로 정보를 실시간으로 보내줄 수 있다.HTTP 통신이 아니기 때문에 http:// 대신..

* Redis 캐싱Redis 캐싱이란, redis 캐시에서 접근해서 데이터를 빠르게 가져오는 방식이다. * Cache Aside 전략Cache Aside 전략은 look aside 전략 또는 lazy loading 전략이라고 부른다.예시를 통해 cache aside 전략의 작동 방식을 알아보자.- 게시판 서비스 배포처음 게시판 서비스를 배포했기 때문에 DB와 redis에는 데이터가 저장이 되어있지 않다.user가 들어와 게시글 작성을 함으로써 데이터를 저장한다. 이 데이터는 DB에 저장된다. 여기서 주의할 점은 redis에는 저장이 되지 않는다는 점이다.사용자가 데이터를 조회하려고 요청한다. 이 때, DB로부터 조회를 하기 전, redis에 데이터가 존재하는지 먼저 확인한다.redis에 데이터가 없는 것..
* 데이터 저장 명령어 set# set [key 이름] [value]$ set member:name "James Brook" # 띄어쓰기를 해서 저장하려면 ""으로 묶어줘야 함$ set member:nickname wanda * 데이터 조회 명령어 get# get [key 이름]$ get member:name$ get member:nickname * 저장된 모든 key 조회$ keys * * key를 통해 데이터 삭제# del [key 이름]$ del member:name$ get member:name # 삭제되었는지 확인 * 데이터 저장 시 만료시간(TTL) 정하기Redis는 RDBMS와는 다르게 데이터 저장 시 만료시간을 설정할 수 있다. 즉, 영구적으로 데이터를 저장하지 않고 일정 시간이 되면 데이..