본문 바로가기

Til

(21)
프로메테우스, 그라파나 Prometheus 프로메테우스는 대상 시스템으로부터 각종 모니터링 지표를 수집하여 저장하고 검색할 수 있는 시스템이다. 프로메테우스 특징 그라파나를 통한 시각화 지원 많은 시스템을 모니터링할 수 있는 다양한 플러그인을 가지고 있다. 쿠버네티스의 메인 모니터링 시스템으로 많이 사용된다. 프로메테우스가 주기적으로 exporter(모니터링 대상 시스템)로부터 pulling 방식으로 메트릭을 읽어서 수집한다. Grafana 그라파나는 프로메테우스를 비롯한 여러 데이터들을 시각화해주는 모니터링 툴이다.
복잡도 복잡도 복잡도는 시간복잡도와 공간복잡도로 나뉜다. 시간복잡도 ⏰ Time Complexity 시간복잡도와 빅오표기법에 대해 공부해보자 ➡ 시간복잡도 Time Complexity 시간복잡도의 존재 이유 ➡ 효율적인 코드로 개선하는데 쓰이는 척도가 됨 O(n^2) 보다는 O(n) 보다는 O(1)을 지향해야 한다. 성우님이 주신 추가 자료 시간복잡도 Big-O(빅오)란? 공간복잡도 📁 Space Complexity 공간복잡도는 프로그램을 실행시켰을 때 필요로하는 자원 공간의 양을 말한다. 정적 변수로 선언된 것 말고도, 동적으로 재귀적인 함수로 인해 공간을 계속 필요로 할 경우도 포함된다. 총 공간 요구 = 고정 공간 요구 + 가변 공간 요구로 나타낼 수 있으며 수식으로는 $ S(P) = c+S_{P}(n) ..
인덱스 인덱스의 필요성 데이터를 빠르게 찾을 수 있는 하나의 장치 인덱스를 설정하면 테이블 안에 내가 찾고자 하는 데이터를 빠르게 찾을 수 있다. 인덱스 최적화 기법 1. 인덱스는 비용이다. 인덱스는 두 번 탐색하도록 강요 - 인덱스 리스트, 컬렉션 순으로 탐색하기 때문에 읽기 비용이 든다. 컬렉션이 수정되었을 때 인덱스도 수정되어야 한다. B-tree의 높이를 균형있게 조절하는 것도 비용이 들고, 데이터를 분산시키는 비용도 든다. 따라서 모든 필드에 인덱스를 설정하는 것은 효율적이지 않다. 컬렉션에서 가져와야 하는 데이터의 양이 많을 수록 인덱스를 설정하는 것은 비효율적이다. 2. 항상 테스팅하라. 최적화 기법은 서비스마다 다르기 때문에 객체의 깊이, 테이블의 양에 따라 항상 테스팅하는 것이 중요하다. EXP..
데이터 베이스의 종류 관계형 데이터베이스 관계형 데이터베이스(RDBMS)는 행과 열을 가지는 표 형식의 데이터를 저장하는 형태의 DB SQL 언어를 써서 조작한다. MySQL 대부분의 운영체제와 호환되며, 현재 가장 많이 사용하는 DB C, C++로 만들어졌으며 MyISAM 인덱스 압축기술, B-tree 기반의 인덱스, 스레드 기반의 메모리 할당 시스템, 매우 빠른 조인, 최대 64개의 인덱스 제공 대용량 DB를 위해 설계되어 있고 롤백, 커밋, 이중 암호 지원 보안 등의 기능 제공 PostgreSQL VACUUM : 디스크 조각이 차지하는 영역을 회수할 수 있는 장치 최대 테이블의 크기 : 32TB SQL 뿐만 아닌 JSON을 이용하여 데이터 접근 가능 지정 시간에 복구하는 기능, 로깅, 접근제어, 중첩된 트랜젝션, 백업 ..
정규화와 트랜젝션 ERD ERD(Entity Relationship Diagram)는 DB 구축시 가장 기초적인 뼈대 역할을 한다. 릴레이션 간의 관계를 정의한 것. 백엔드가 맨날 만드는 그 표.. 관계형 구조로 표현할 수 있는 데이터를 구성하는 데 유용 / 미리 정의되지 않은 비정형 데이터는 충분히 표현할 수 없다. 정규화과정 릴레이션 간의 잘못된 종속관계로 인해 발생하는 문제를 해결하는 것 (회원이 한개의 등급을 가져야 하는데 여러 개를 갖는 것) 저장 공간을 효율적으로 사용하기 위해 릴레이션을 여러 개로 분리하는 것 정규화 과정은 정규형 원칙을 기반으로 정규형을 만들어 가는 과정 정규화된 정도는 정규형(NF, Normal Form)으로 표현 기본 정규형 - 제1, 제2, 제3정규형, 보이스/코드 정규형 고급 정규형 ..
프로세스와 스레드 Q. 프로세스와 스레드를 비교하여 설명해주실 수 있을까요? 😁 프로세스란, 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램을 말한다. 스레드는 프로세스 내에서 실행되는 여러 흐름의 단위라고 말할 수 있습니다. 프로세스가 할당받은 자원을 이용하는 실행의 단위이다.
동시성과 병렬성 Q. 동시성과 병렬성을 비교하여 설명해주실 수 있을까요? ✍ 동시성은 동시에 실행되는 것처럼 보이는 것을 말하고, 병렬성은 실제로 동시에 여러 작업들이 처리되는 것을 말한다. 병렬성은 동시성의 하위집합이다. 따라서 병렬성은 동시성을 구현했다고 볼 수 있다. 하지만 동시성은 병렬성과 같지 않다.
TCP와 UDP Q. TCP 와 UDP 를 비교하여 설명해주실 수 있을까요? TCP(Transmission Control Protocol) / UDP(User Datagram Protocol) 신뢰성이 요구되는 애플리케이션에서는 TCP를 사용하고 간단한 데이터를 빠른 속도로 전송하고자 하는 애플리케이션에서는 UDP를 사용합니다. TCP는 연결지향성 프로토콜이며 UDP는 비연결지향성 프로토콜입니다. TCP와 UDP 는 TCP/IP의 전송계층에서 사용되는 프로토콜입니다. TCP는 연결 지향성 프로토콜로 송신자와 수신자 양방향간 통신을 주고받는 형태인 반면 UDP는 비 연결지향성 프로토콜로 수신여부를 확인하지 않는 일방적인 통신방식이다. 즉, 신뢰성이 요구되는 애플리케이션에서는 TCP를 사용하고 간단한 데이터를 빠른 속도로 ..