컴퓨터공학

0. 이 글을 작성하는 이유 회사에서 진행한 PostgreSQL 9.6 성능 이야기 책 스터디를 하며 정리한 내용을 올리기 위함 PostgreSQL 프로세스 유형 4가지 Backend process Postmaster (Daemon) process Background process Client process 물리적인 관점에서 보았을 때의 PostgreSQL의 구조 공유 메모리( Shared Buffer, WAL 버퍼 ), 프로세스, 데이터 파일 Postgres의 Database 구조에 대한 6가지 정리 PostgreSQL은 여러 DB로 구성된다. 이를 데이터베이스 클러스터라고 한다 initdb()수행 시에 template0, template1, postgres DB가 생성된다. template0과 tem..
0. 이 글을 작성하는 이유 UUID타입을 LIKE 연산자로 패턴매칭하려고 했더니 매칭이 안되었던 일이 있어서 왜 그런가 간단하게 정리해 보기 위함 1. 사건의 경위 postgres14 사용 중 아래와 유사한 sql이 먹히지 않았다. id like 'abed%' 에러는 이렇게 나왔다. SQL Error [42883]: ERROR: operator does not exist: uuid ~~ unknown Hint: No operator matches the given name and argument types. You might need to add explicit type casts. Position: 41 explicit type cast를 하라고 한다. 생긴 건 비슷한데 왜 그럴까. 2. LIKE문은..
0. 이 글을 작성하는 이유 postgresql9.6 성능 이야기책을 읽으면서 조금 부족하다고 생각했던 내용을 정리하려고 한다. 1. WAL Buffer WAL이란 Write-Ahead Logging의 약자로 데이터 베이스의 변경 사항을 잠시 저장하는 buffer이며 정해진 시점(사용자 custom가능)에 buffer에 있는 내용은 WAL 파일로 기록되어 백업 및 복구에 사용된다. 2. Postmaster Process와 Background Process Postmaster process는 PostgreSQL을 기동 할 때 가장 먼저 시작되는 프로세스로 초기 기동 시 복구 작업, Shared 메모리 초기화 작업, Background 프로세스 구동 작업을 수행한다. 모든 Background Process는..
0. 이 글을 작성하는 이유 잘 사용하다가 어느 날 postgres가 DBeaver에서 접속이 안되기 시작하였다. 이걸 조치하는 건 구글링으로 해결했지만 발생 이유와 내용을 아주 조금 더 깊게 분석해 본 내용을 공유해 보기 위함 환경 : mac os brew install postgresql14 0-1. 조치 방법 먼저 공유 error : 아래 에러가 발생함. Bootstrap failed: 5: Input/output error Try re-running the command as root for richer errors. Error: Failure while executing; `/bin/launchctl bootstrap gui/501 /Users/user/Library/LaunchAgents/ho..
0. 이 글을 작성하는 이유 최근 PostgreSQL을 사용하던 중 기능 구현을 위해 Materialized View라는 걸 알게 되었는 데 사용하면서 알게 된걸 간단하게 정리하기 위함 1. Materialized View와 일반 View를 비교하면서 알아보자. 물리적 저장을 하느냐 안 하느냐의 차이에서 시작할 것 같다. 일반 View는 논리적으로 사용하지만 Materialized View는 의미 그대로 이를 구체화하여 물리적으로 저장한다. View는 이 특성으로 인해 결과값을 저장하는 게 아닌 이 View 전체를 조회하는 쿼리를 참조하고 있어 별도의 갱신이 없어도 계속해서 값을 갱신한다. Materialized View는 실제 값을 저장하기 때문에 갱신을 명시적으로 해주어 한다. 즉, 우리가 View를..
0. 이 글을 작성하는 이유 파티션 테이블에 대해 공식 문서에서는 어떻게 설명하고 있는지 이해하면서 읽기 위함. 실제 SQL과 같이 실습하는 것은 다음 글에서 이어서 작성할 예정 https://www.postgresql.org/docs/current/ddl-partitioning.html 5.11. Table Partitioning 5.11. Table Partitioning # 5.11.1. Overview 5.11.2. Declarative Partitioning 5.11.3. Partitioning Using Inheritance 5.11.4. Partition Pruning 5.11.5. Partitioning and Constraint Exclusion … www.postgresql.org ht..
0. 이 글을 작성하는 이유 패스트캠퍼스 강의를 듣다 WebSocket관련 내용이 나와서 다시 정리하고자 함 1. WebSocket이란 웹상에서 소켓으로 양방향 통신을 하는 기술로 실시간 애플리케이션에 유용한 기술이다. 통신을 위해서 HTTP 포트 중 80번, 443번 포트를 사용한다. 80번 : ws (WebSocket) 443번 : wss(WebSocket Secure) 데이터가 프레임으로 전송되는 간단한 메시지 기반 모델을 사용하고 있어 바이너리 또는 텍스트 기반의 데이터 전송 유형에 유연성을 가진다. 또한 하트비트 및 오류 처리에 대한 지원 기능이 내장되어 있다. 하트비트(heartbeat) 서로 언제든 메시지를 보낼 수 있는 상황에서 상대방이 수신 가능한 상태인지 확인하기 위해 주기적으로 확인하..
0. 이 글을 쓰는 이유 MSA에 대해 잘 몰라서 개념이라도 알아가기 위해 정리하기 위함 이 글은 모두 아래 영상들에서 나온 내용으로 영상을 보는 것을 추천합니다. https://www.youtube.com/watch?v=8d4h7K_Fq-0 https://youtu.be/UsdB03LgqAM?feature=shared 1. MSA란? Micro Service Architecture의 약자로 서비스를 비즈니스 경계에 맞게 세분화하고 서비스 간 통신은 네트워크 호출을 통해 진행하여 확장 가능하고 회복적이며 유연한 어플리케이션을 구성하는 아키텍처 2. 기존 Monolithic 방법론에 어떠한 문제점이 있길래? 여러 기능이 뭉쳐 Coupling과 Dependency가 강해 아래와 같은 문제점들이 발생한다. 소..
0. 이 글을 작성하는 이유 평화로운 추석기간, 브런치 설정 관련해서 메일 인증을 하던 도중 이 메일 인증이라는 건 어떤 방식으로 구현되는지 궁금해지기 시작했다. 1. 내가 받은 인증 메일URL은 어떻게 생겼나 이렇게 생겼다.(일부 글자를 지워 정상적으로 변환이 안되게 만들었다.) https://brunch.co.kr/signin/verify?token=JM1DT1ouT%2BTVY%fgujdQy23Sf%2BN0fRtQ%3D%3D 브런치스토리 작품이 되는 이야기 brunch.co.kr 뒤에 token이라는 단어가 보인다. 이 token이라는 단어에서 당장 생각나는 건 JWT가 생각난다. JWT의 경우 토큰 만료 시간, 토큰 수신자, 고유 식별자 등을 넣을 수 있어 이 경우 사용하기 적합하다고 생각한다. 사..
0. 이 글을 작성하는 이유 HTTPS에 대해 너무 모르는 것 같아서 이 참에 정리하고 넘어가기 위함 1. HTTPS란? HTTP에 S가 하나 더 붙었다. S는 Securer Sockets Layer의 약자라고 되어있는데 보안 Layer가 하나 더 추가되어 있다고 생각하면 편할 것 같다. Securer Sockets Layer의 앞 글자를 따서 SSL이라고 하는데 현재는 Transport Layer Securty, TLS가 사용 중이다. 우리는 HTTPS를 통해 인증과 데이터 무결성을 보장할 수 있다. 2. SSL과 TLS? HTTPS에 대해 이야기를 하다 보면 SSL과 TLS라는 단어가 자주 보인다. 무엇일까? SSL과 TLS 모두 서버, 애플리케이션, 사용자 및 시스템 간의 데이터를 암호화하는 통신 ..
Berno
'컴퓨터공학' 카테고리의 글 목록