본문 바로가기
DB 인사이드 | PostgreSQL Architecture - 4. 동작 원리 본 문서에서는 PostgreSQL Architecture 전반에서 다룬 내용을 바탕으로 커넥션 생성 및 사용자요청처리, 백그라운드 Process의 동작 방식 등에 대한 내용을 다루겠습니다. 커넥션 생성 과정우선 사용자가 PostgreSQL과 커넥션을 맺고 요청을 처리/회신하는 과정을 확인해보겠습니다.1. postmaster 프로세스는 Listener 역할을 하며 Client로부터 새로운 연결 요청을 기다립니다.2. postmaster 프로세스는 새로운 Client 연결 요청에 대한 인증을 하고 postgres 프로세스를 생성합니다. 이때 각각의 프로세스에는 work_mem 같은 Local Memory가 개별 할당됩니다.3. postgres 프로세스가 Client와 연결되면 postmaster 프로세스는 .. 2022. 4. 27.
DB 인사이드 | PostgreSQL Architecture - 2. Physical Structure Physical Structure본 문서에서는 Data 파일, Engine Log 파일, Configuration 파일 등 PostgreSQL이 관리하는 다양한 파일과 디렉토리에 대한 내용을 다루도록 하겠습니다. 해당 파일 및 디렉토리들은 PGDATA라고 하는 Database Cluster의 data 디렉토리에 위치하고 있습니다. PGDATA의 일반적인 위치는 /var/lib/pgsql/13/data 이며 해당 경로는 설치 방법에 따라 변경 수 있습니다. 📌 Database 및 Cluster 등에 관한 내용은 Logical Structure 내용을 참조바랍니다.Data Directory 구조(PGDATA) 일반적으로 Database Cluster의 구성요소는 data 디렉토리 하위에 위치하고 있습니다... 2022. 4. 27.
DB 인사이드 | PostgreSQL Architecture - 5. SQL 처리 과정 PostgreSQL SQL 처리과정 본 문서에서는 PostgreSQL의 SQL처리과정에 대해 알아보도록 하겠습니다.postgres 프로세스는 Client로부터 SQL(Query string)을 전달받으면 아래와 같은 5개의 과정을 거쳐 SQL을 처리하며 그 결과를 Client로 반환합니다. 각 과정에서는 문법체크 및 의미분석, 최적화 작업 등을 수행하며, 세부적인 내용을 각각 확인해 보도록 하겠습니다.ParserParsing 단계는 SQL 처리과정의 첫번째 단계로 Query 구문을 분석하여 Syntax Error를 체크하고 Parse Tree를 생성합니다. 해당 단계에서는 System Catalog를 참조하지 않기 때문에 개별 요소들에 대한 의미분석(Semantic)이 불가하며 단순한 문법체크(Synta.. 2022. 4. 27.
DB 인사이드 | PostgreSQL Architecture - 3. Logical Structure Logical Structure앞서 Physical Structure를 통해 공간 및 파일 관점에서의 PostgreSQL 구성요소를 확인했습니다. 본 문서에서는 사용자 입장에서 실제 관리 대상인 Object, Schema, Database, Tablespace 및 Cluster에 대해 알아보겠습니다. 아래는 PostgreSQL의 Logical Structure를 도식화한 것으로 Object로 표현한 가장 하위개념 부터 최상위 요소인 Cluster에 대해 순서대로 알아보도록 하겠습니다.ObjectObject는 Data를 저장하거나 참조하는데 사용되는 데이터 구조를 말합니다. 우리에게 익숙한 테이블(Table), 인덱스(Index), 프로시저(Stored Procedure), 시퀀스(Sequence), 뷰(.. 2022. 4. 27.
엑셈 인사이트 | E2E 거래 추적 모니터링의 필요성 APM의 한계 과거 Web 환경의 기간계 주요 업무는 WAS Instance 내에서 복잡한 비즈니스 로직을 전반적으로 수행했기 때문에, 특정 WAS 구간을 집중적으로 모니터링/분석 하는 것이 효과적일 수 있었다. 하지만 현재의 MSA(Micro Service Architecture) 지향 환경에서는 비즈니스 로직이 컴포넌트 별로 나누어져 작은 서비스로 구축된다. 따라서 컴포넌트 서비스의 상호 연계 분석이 원활하지 않으면 Application 장애 대응이 기본적으로 힘들 수 있다. 또한 하나의 특정 업무(서비스)는 N-Tier(채널, MCI, 기간계, EAI, FEP)로 구성된 복잡한 서비스 환경에서 수행된다. 이런 환경에서 기존의 APM 관점으로 WAS와 같은 특정 구간 위주로 모니터링을 할 경우, 실제.. 2022. 4. 27.
PHILINNOVATOR | 2차 인지혁명, 인간을 넘어선 기계 #1 나 그리고 당신을 위한 ‘초연결 시대의 현자 되기’ 프로젝트! 21세기 혼란스러운 초연결 사회에서 중심을 잡고 지혜롭게 살아가기 위한 내용들을 담아 돌아온 ‘필리노베이터’입니다. 지난달 ‘뇌의 진화와 1차 인지혁명’에 이어, 이번달에는 ‘2차 인지혁명, 인간을 넘어선 기계’라는 주제로 한번 이야기를 해 볼까 합니다. 이번 글에서 다루고자 하는 영역은 인공지능(Artificial Intelligence, AI)으로 다음과 같은 의문에서 시작하겠습니다. 지능은 생명체의 전유물인가? 인공지능은 인간의 뇌를 따라잡을 수 있을까? 안드로이드는 전기양을 꿈꾸는가? ‘인간을 넘어선 기계’라는 주제를 놓고 생각하다 보니 머릿속에 떠오르는 소설이 하나 있습니다. 바로 필립 K 딕(Philip Kindred Dick, 1.. 2022. 4. 27.
PHILINNOVATOR | 뇌의 진화와 1차 인지혁명 나 그리고 당신을 위한 ‘초연결 시대의 현자 되기’ 프로젝트! 21세기 혼란스러운 초연결 사회에서 중심을 잡고 지혜롭게 살아가기 위한 내용들을 담아 돌아온 ‘필리노베이터’입니다. 이번 달에는 ‘디지털 행성의 시대’에 이어, ‘뇌의 진화와 1차 인지혁명’을 주제로 이야기를 해볼까 합니다. 포유류는 2억 년 전에 지구에 나타났습니다. 약 6천 5백만 년 전, 백악기 말 유카탄 반도에 떨어진 소행성에 의해 지상 생물의 75%가 멸종된 이후, 작은 설치류 수준이던 포유류는 빠르게 회복하며 인간의 조상인 영장류로까지 분화하고 호모 종으로 진화하게 됩니다. 인류의 한 갈래인 호모 종, 그 호모종은 현대인과 같이 인간으로서 공동체의 유대 속에 동료와 공감하고 가족과 동료의 죽음을 슬퍼하며 죽은 이를 그릴 줄 아는 인.. 2022. 3. 30.
DB 인사이드 | PostgreSQL 참고자료 - Configuration File : pg_hba.conf PostgreSQL AuthenticationPostgreSQL에 접속하기 위한 Client는 인증을 획득해야하며, 인증은 $PGDATA/pg_hba.conf 파일을 통해서 이뤄집니다. 해당 파일에서 한개의 레코드는 5개의 필드값(Type, Database, User, Address, Method)으로 작성이 되며 특정 사용자에 대한 인증 혹은 특정 IP 대역의 접속 제한을 수행합니다. 해당 파일 작성시 다음과 같은 규칙을 따릅니다.#(주석)문자 뒤의 내용은 무시빈줄 무시백슬래시(\)로 줄을 끝내면 레코드 다음줄로 계속 작성 가능공백 및 탭으로 필드 구분📌 HBA란 Host-Base Authentication 의 줄임말로 호스트 기반 인증을 나타냅니다. pg_hba.conf Sample# Unix 도메.. 2022. 3. 30.
DB 인사이드 | PostgreSQL 참고자료 - Configuration File : postgresql.conf 📌 Ubuntu에서 apt-get(Advanced Packaging Tool)을 사용하여 설치한 PostgreSQL 14 버전 기준으로 정리     파라미터 명에 노란색 음영처리는 변경 시 재기동필요 FILE LOCATIONSParameterDefault ValueDescriptiondata_directory/var/lib/postgresql/14/mainData Directory 경로external_pid_file/var/run/postgresql/14-main.pidpostmaster PID 저장 파일hba_file/etc/postgresql/14/main/pg_hba.confhba 설정파일 경로ident_file/etc/postgresql/14/main/pg_ident.confident 설정파일 .. 2022. 3. 30.