일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 쿼리 실행계획
- Sharding
- 상자그림
- 통계학개론
- R Studio
- redis
- 샤딩
- 머신러닝
- 글또
- f45
- 데이터베이스 인덱스
- 인덱스 순서
- 파티셔닝
- 가상면접 사례로 배우는 대규모 시스템 설계
- axios
- knn분류기
- k-Nearest Neighbors
- 인덱스 추가
- 다섯수치요약
- axis interceptor
- partitioning
- 복합인덱스
- 레디스
- 데이터베이스
- Retry
- LRU
- System Design
- DB 파티셔닝
- 오버라이딩
- 데이터베이스 파티셔닝
- Today
- Total
목록소프트웨어 공학 (12)
haileyjpark
서문 데이터 양, 데이터 복잡성, 데이터가 변하는 속도 등, 데이터가 주요 도전 과제인 애플리케이션을 데이터 중심적(data-intensive)이라고 말한다. 반대로 CPU 사이클이 병목인 경우 계산 중심적(compute-intensive)이라고 한다. 1장 신뢰할 수 있고 확장 가능하며 유지보수하기 쉬운 애플리케이션 데이터 시스템 데이터베이스, 큐, 캐시 등을 데이터 시스템이라는 포괄적 용어로 묶는 이유 최근에 만들어진 새로운 도구들은 다양한 use case에 최적화됐기 때문에 더이상 전통적인 분류에 딱 들어맞지 않고 분류가 흐려지고 있다. 예를 들어, 메시지 큐로 사용하는 datastore인 Redis가 있고, 데이터베이스처럼 지속성(durability)을 보장하는 메시지 큐인 아파치 카프카(Apac..

최근 Redis의 SCAN 명령어에 대해 알아보고 scanStream을 적용해보았는데, 새롭게 알게 된 것이라 정리해보고자 한다. * 글에 사용된 예시 코드는 TypeScript, NestJS로 작성되었다. 배경 유저가 로그인을 특정 횟수(여기서는 10번이라고 하겠다.)만큼 실패할 경우, 유저의 상태를 블락시키고 유저가 로그인을 할 수 없도록 제한하는 기능을 구현했었다. 이 과정에서 유저 로그인 시에 토큰과 sessionId가 발급되고, Redis와 cacheManager를 사용하여 의 형태로 저장했다. 이 sessionId를 서버와 클라이언트가 주고받다가 로그아웃 또는 유저 블락 시에 해당 sessionId를 redis에서 제거하는 방식이 사용되었다. 이 서비스에서는 동시접속을 허용하고 있었는데, 브라..
팀에 배치되기 전 교육과정 커리큘럼을 진행하면서 아래와 같은 피드백을 받았었고, 피드백을 받았던 부분을 중심으로 에러와 로그 처리 방식에 대해 간단하게 알아보았다. try-catch로 모든 레이어에서 처리해주는 것이 적절할지? 로그는 어떻게 남기면 좋을지? 어느 시점에서 에러/예외처리를 할 것인가? 모든 레이어에서 try-catch문을 쓰지 않더라도, 에러가 발생하는 코드 다음에 있던 코드들은 실행되지 않고, 발생한 에러는 Promise.reject 처리되어 상위 컨텍스트에서 비동기 에러로 처리된다. → 서비스 레이어에서 상위 컨텍스트로 에러를 전파하기 위해 async 함수의 내부를 try-catch로 묶는 것은 불필요한 코드이다. 하지만, controller 레이어는 에러가 발생하거나 성공을 하는 것에..

모듈화란 모듈이란 프로그램을 구성하는 시스템을 기능 단위로 독립적인 부분으로 분리한 것이다. 단순히 규모가 큰 것을 작게 나눈 조각이 아니라, 하나 이상의 논리적인 기능을 수행하기 위한 명령어들의 집합이라고 할 수도 있다. 모듈의 특징 모듈은 독립적인 프로그램 그 자체일 수도 있고, 함수나 메서드일 수도 있다. 모듈이 되려면 다른 것들과 구분될 수 있는 독립적인 기능을 가져야 하고, 유일한 이름을 사용해야 한다. 다른 프로그램이나 다른 모듈에서 호출하여 사용할 수도 있어야 한다. 모듈 자체로서 재사용될 수 있고 독립적으로 컴파일이 가능해야 한다. 모듈은 다양한 형태로 존재할 수 있는데, 용도가 비슷한 함수나 추상화된 자료, 객체, 메서드 등이 이에 해당한다. 모듈화의 장점 프로그램의 복잡도가 줄어들고 이..