전체 글
-
[DB] Partitioning VS Sharding VS Replication 에 대해 알아보기DBMS/데이터베이스 이론 2025. 2. 26. 18:07
Partitioning (파티셔닝)테이블을 성능/관리 효율성 목적으로 분리하여 저장.컬럼/row단위로 분리할 수 있다 1. Vertical Partitioning (버티컬 파티셔닝)컬럼 단위로 테이블을 나눠 관리하는 기법.특정 컬럼(content)에 데이터 크기가 너무 클 때 사용. 예를들어게시글 목록을 조회할 때 SELECT절에 content를 넣지 않는다고 하더라도 DB에서는 일단 모든 데이터들을 메모리에 올린 다음에 불필요한 속성들을 잘라낸다. 게시글 목록인데 불필요하며 크기가 큰 속성인 content를 메모리에 올리는 것은 DB I/O측면에서 부담이 가고 성능에도 안좋다. 이때 기존 article_tb에서 article_content_tb로 content 속성을 별도 테이블로 분리해놓는다면 먼저 ..
-
본질식별자vs인조식별자DBMS/데이터베이스 이론 2025. 2. 24. 22:22
본질식별자vs인조식별자본질 식별자: 비즈니스 로직에 의해 만들어진 데이터로 구성된 식별자(주민번호, 이메일, 전화번호등 고유성이 보장되는 데이터이용)인조 식별자: 비즈니스 로직과 무관하게 인위적으로 만든 식별자(AUTO_INCREMENT, UUID 등) 무엇을 사용해야할까?-> 가능한 본질식별자를 사용하기위해 노력해야 한다. 왜 가능한 본질식별자를 사용해야하는가?(인조 식별자의 단점)1. 불필요한 컬럼 생성2. PK로 데이터 중복 방지가 불가능하다-> 만약 똑같은 insert문이 2번 실행된다면, 본질 식별자에서는 에러가 나서 중복방지가 되지만, 인조식별자는 정상실행되어 중복데이터가 발생한다.3. 인덱스를 별도 생성해야한다.-> PK는 기본으로 클러스터링 인덱스가 적용되는데 인조식별자는 의미없는 데이터로..
-
[Linux] 리눅스 기본 디렉토리 구조OS 2025. 2. 23. 17:59
리눅스 기본 디렉토리 구조 (중요한 순서) /etc시스템의 설정 파일(configuration files) 들이 저장. /bin시스템 부팅 및 기본 사용자 작업에 필수적인 실행 파일(binary executables) 들을 저장.ls, cp, mv, rm 등 기본 명령어가 위치./sbin시스템 관리와 관련된 실행 파일들이 위치하는 곳. 관리자(root) 전용 명령어 (예: ifconfig, reboot, shutdown, mount)가 위치.시스템 부팅과 유지관리에 중요한 도구들./lib (/lib64) /bin과 /sbin에 있는 실행 파일들이 의존하는 공유 라이브러리(shared libraries) 들을 보관./usr 사용자 애플리케이션, 라이브러리, 문서 등이 위치하는 곳./var시스템 운영중에 ..
-
모니터링 툴 프로메테우스(Prometheus) 알아보기devops 2025. 2. 23. 15:45
프로메테우스안정적인 서버 운영을 위해 메트릭을 기반으로 모니터링과 알림을 제공해주는 오픈 소스 프로젝트이다.여러 도구들을 통해 분산환경에서도 쉽게 모니터링 구축이 가능하다. 1.메트릭이란?메트릭은 시스템 상태를 나타내는 측정값으로, CPU, 메모리, 디스크, 네트워크 사용량 등 리소스 사용 정보나 HTTP 상태 코드와 같은 데이터들을 포함한다. 이러한 메트릭을 시계열 데이터(time series data)로 저장하여 시간에 따른 변화 추이를 분석할 수 있다. 2. 프로메테우스 아키텍처 프로메테우스의 역할 1.데이터 수집 (Scraping)Exporter 또는 애플리케이션에서 제공하는 /metrics 엔드포인트를 주기적으로 호출하여 메트릭 데이터를 수집한다.2.시계열 데이터베이스(TSDB)수집한 데이..
-
[AWS] 보안그룹 알아보기devops/AWS 2025. 2. 21. 18:10
보안그룹Network Access Control List(NACL)와 함께 방화벽의 역할을 하는 서비스 Port 허용-기본적으로 모든 포트는 비활성화-선택적으로 트래픽이 지나갈 수 있는 Port와 Source를 설정가능-Allow 방식으로만 설정가능.-Deny는 불가능 -> NACL로 가능함-인스턴스 단위(정확히는 ENI(elastic network interface)단위)-NACL의 경우 서브넷 단위-하나의 인스턴스에 하나 이상의 보안그룹 설정가능-설정된 인스턴스는 설정한 모든 보안그룹의 룰을 적용 받음-기본적으로 VPC단위 VPC안에서 생성하고 관리-기본 VPC가 아니고 리전이 같다면 서로 다른 VPC에서 같은 보안그룹을 사용할 수 있다.-보안그룹은 기본적으로 포트를 허용하는 식(Allow)으로만 ..
-
[AWS] VPC와 서브넷devops/AWS 2025. 2. 19. 20:52
VPC(Virtual Private Cloud)-가상의 데이터센터-원하는 대로 사설망을 구축 가능-부여된 IP 대역을 분할하여 사용 가능-리전 단위 -VPC는 AWS 클라우드에서 다른 가상 네트워크와 논리적으로 분리되어 있다. VPC 사용 사례-EC2, RDS, Lambda 등의 AWS 컴퓨팅 서비스 실행-다양한 서브넷 구성-보안 설정(IP Block, 프라이빗 EC2 구성) VPC 구성요소-서브넷-인터넷 게이트웨이-NACL / 보안그룹-라우트 테이블-NAT Instance / NAT Gateway-Bastion Host-VPC Endpoint 서브넷-VPC의 하위 단위. VPC에 할당된 IP를 더 작은 단위로 분할한 개념.-하나의 서브넷은 하나의 가용영역(AZ) 안에 위치 -CIDR block ..
-
[Web] 사설망(Private Network)과 CIDRweb 2025. 2. 19. 17:55
사설망(Private Network)과 CIDR사설망-한정된 IP주소를 최대한 활용하기 위해 IP주소를 분할하고자 만든 개념-IPv4기준 IP개수는 43억개-사설망 내부에는 외부 인터넷 망으로 통신이 불가능한 사설 IP로 구성-외부로 통신할 때는 통신이 가능한 공인 IP를 번갈아 사용-보통 하나의 망에는 사설IP를 부여 받은 기기들과 NAT기능을 갖춘 Gateway로 구성IPv6 최대 IP개수: 2^128개IPv4(43억)보다 2^96배 많음 NAT사설 IP가 공용 IP로 통신할 수 있도록 주소를 변환해주는 방법3가지 종류1. Dynamic NAT: 1개의 사설 IP를 가용 가능한 공인 IP로 연결-> 공인 IP그룹(NAT Pool)에서 현재 사용 가능한 IP를 가져와서 연결예시) 2. Static NA..
-
자바스크립트 런타임 동작원리 알아보기프로그래밍언어/javascript 2025. 2. 16. 17:56
자바스크립트 런타임 알아보기 자바스크립트 런타임인 nodeJS와 브라우저에는 자바스크립트 엔진외에도 백그라운드(libuv), 이벤트 큐, 이벤트 루프 등의 라이브러리가 존재한다. 그렇다면 자바스크립트 엔진외의 다른 라이브러리들은 왜 필요한걸까? 자바스크립트가 가진 한계점들을 보완하기위해서이다. 자바스크립트만으로는 싱글 스레드 블로킹 이슈와, OS수준의 작업, 파일 시스템 접근 불가하다는 문제가 있기 때문이다. 자바스크립트는 싱글스레드 언어이다. -> 따라서 두 개 이상의 연산이나 함수를 동시에 실행할 수 없다. 하나의 연산이 실행 중이면, 쓰레드가 block 된다. 간단한 함수 실행에 의한 쓰레드 block은 체감하기 어렵지만, 시간이 오래 걸리는 작업(네트워크 요청, DB Query, 파일 시..