일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Database
- docker
- ArrayList 소스코드
- 권장 PK 전략
- github
- ArrayList 길이 확장
- 자바 동시성
- index
- JPA란
- java
- PostgreSQL
- 싱글톤 동시성
- acid
- 도커
- JPA 장점
- transaction
- postgres
- 컨테이너
- 데이터베이스
- thread safety
- create-drop
- ArrayList 가변
- Container
- load balancer
- heap
- 스키마 자동 생성
- JPA
- 멀티스레드 싱글톤
- 트랜잭션
- 로드밸런서
- Today
- Total
목록전체 글 (24)
JS

Postgres는 데이터를 어디에 저장할까? Postgres는 하드 디스크 내부에 개별 데이터베이스에 대한 모든 정보를 폴더와 수많은 파일의 형태로 저장합니다. 각각의 다른 파일들은 해당 데이터베이스의 여러가지 정보를 담고 있습니다. ex) 테이블 정보, 인덱스, 고유 키 그렇다면 실제로 이런 폴더와 파일들이 어디에 어떤 형태로 존재하는지 알아보겠습니다. 우선 Postgres가 어떤 디렉토리에 데이터를 저장하고 있는지 아래 명령어를 통해 확인해본 후 자세히 살펴보겠습니다. SHOW data_directory; 위 명령어를 통해 어떤 디렉토리에 데이터가 저장되고 있는지 확인했으니 해당 디렉토리로 이동해보겠습니다. 위에 보이는 여러개의 폴더들 중 우리가 원하는 데이터가 존재하는 base 폴더로 이동해보겠습니..

서버개발을 하면서 날짜 혹은 시간 계산이 필요한 경우가 많았습니다. Node.js 서버에서는 Moment.js라는 라이브러리를 자주 활용했고, Python에서는 자체 제공 datetime이라는 내장 모듈을 활용하곤 했습니다. 그러다가 날짜/시간 계산을 데이터베이스 쿼리문으로 처리할 수 없을까하는 궁금증이 생겨 알아보다가 INTERVAL이라는 데이터타입에 대해 알게되었습니다. INTERVAL 타입을 활용하여 필요한 경우 데이터베이스 레벨에서 날짜 계산을 처리할 수 있습니다. Conversion SQL 의미 1 day 1 Day 1 D 1 Day 1 D 1 M 1 S 1 Day 1 Minute 1 Second SELECT ('1 D'::INTERVAL); SELECT ('1 D 20 H 30 M 45 S':..

GitHub Actions는 우리가 개발한 애플리케이션의 빌드, 테스트, 배포를 자동화할 수 있게 해주는 CI/CD 파이프라인입니다. GitHub Actions를 활용하면 우리가 GitHub Repo에 코드를 push하거나 새로운 PR을 생성할 때마다 자동으로 진행됐으면 하는 액션들을 직접 정의해서 자동화할 수 있습니다. 대표적인 예로 빌드&테스트가 있습니다. 내가 작성한 코드를 push할때마다 staging 혹은 production 환경으로 올리기 전에 해당 변경사항으로 인해 생기는 문제는 없는지 빌드 후 작성한 유닛테스트를 돌려 확인할 수 있습니다. CI/CD 파이프라인이 없다면 이런 과정을 매번 직접 진행해야하는데, 굉장히 자주 해야 하는 일 치고 공수가 정말 많이 드는 작업이기 때문에 자동화할 수..

Isolation은 RDBMS를 정의하는 ACID 트랜잭션의 특성 중 I에 해당하는 특성입니다. 이번 포스팅에서 Isolation에 대해 설명하면서 다룰 내용들은 아래와 같습니다. Read Phenomena (읽기 이상 현상) Isolation Levels (격리 수준) Isolation 개념은 아래 질문과 관련이 있습니다. 💡 진행 중인 트랜잭션은 동시에 진행 중인 다른 트랜잭션들로 인해 생긴 데이터의 변화에 영향을 받을까요? 한 번쯤 이런 생각을 해보셨을까요? 그럼 시작해볼까요? ✔️ Read Phenomena 여러 개의 Read Phenomena(읽기 이상 현상)에 대해서 알아보겠습니다. 읽기 이상 현상이란 트랜잭션을 사용할 때 발생할 수 있는 이상 현상들을 뜻합니다. (아래 예시들은 전부 Read..

✔️ Atomicity란? 💡 Atomicity는 RDBMS를 정의하는 ACID 트랜잭션 특성 중 A에 해당하는 특성입니다. 한글로 직역하면 원자성이라는 뜻을 가지며 왜 트랜잭션에서 Atomicity란 특성이 중요한지에 대해 알아봅시다. ✔️ Atomicity (원자성) 1️⃣ 트랜잭션의 모든 쿼리는 성공해야 합니다. ➖ 원자성이란 어떤 것이 더 이상 쪼개질 수 없는 성질을 말합니다. 트랜잭션에서는 여러 가지 작업이 하나의 작업으로 간주됩니다. 원자(atom)와 같이 쪼갤 수 없다는 뜻이죠. 2️⃣ 만약 트랜잭션 도중 어떤 이유에서건 하나의 쿼리가 실패한다면 해당 트랜잭션 내 실패한 쿼리 이전에 성공적으로 실행됐던 모든 쿼리들은 ROLLBACK 되어야 합니다. ➖ 쿼리가 실패하는 경우는 다양한 이유가 될..

✔️ Transaction 트랜잭션이란 무엇일까요? 트랜잭션을 왜 사용할까요? 트랜잭션이란, 하나의 작업 단위로 처리되는 SQL 쿼리 모음입니다. 보통 원하는 작업을 전부 하나의 SQL 쿼리문으로 처리하기는 어렵습니다. 어떤 작업이냐에따라 다르겠지만 사실 불가능에 가깝죠. 이해를 돕기 위해 트랜잭션을 적용할만한 간단한 예시로 계좌이체 프로세스를 예를 들어보겠습니다. 계좌이체 프로세스를 간소화해서 실행해야하는 액션만 생각을 해본다면, SELECT - 보내는 이의 계좌 잔고를 확인한다. UPDATE - 보내는 이의 계좌 잔고에서 보낼 금액만큼 차감한다. UPDATE - 받는 이의 계좌 잔고에 받은 만큼 금액을 증감한다. 트랜잭션은 이 세가지 작업을 하나의 작업으로 처리한다는 뜻입니다. ✔️ Transacti..

MacOS에서 PostgreSQL을 설치하는 방법에 대해서 알아봅시다. ✔️ 설치 Options 1. Postgres.app을 설치해서 사용하는 방법 2. Homebrew로 설치하는 방법 이번 포스팅에서는 두 가지 방법 중 1번 Postgres.app을 설치하는 방법을 선택하겠습니다. ✔️ Download & Setup 🚩 Step 1. https://postgresapp.com/downloads.html 접속 후 Latest Release 다운로드 🚩 Step 2. Applications 폴더로 복사 🚩 Step 3. $PATH 설정 1. Introduction 탭으로 이동 2. $PATH 설정 코드 복사 후 terminal에서 실행 🚩 Step 4. Terminal을 새로 켠 후 psql 커맨드 입력..

SSH란 무엇일까? SSH를 왜 사용할까? SSH의 장단점은? GitHub 계정 연동까지! 다들 한 번쯤 SSH라는 단어를 들어보거나 본 적이 있을 것입니다. GitHub에서 repository를 clone 받을 때도 등장하고, 배포용으로 생성한 AWS 서버에 연결할 때도 등장합니다. 보통은 SSH에 대한 이해도가 있어야 사용 가능할 것이라 생각하겠지만, 세상에는 너무나도 멋지고 유능한 사람들이 많아서 SSH 가 무엇인지 잘 몰라도 Google 검색을 통해 충분히 사용이 가능합니다. 하지만 잠깐 시간을 내어 SSH 가 무엇인지, 왜 사용하는지 정도만 알고 넘어가도, 앞으로 SSH를 사용할 때 조금 더 의미가 있게 사용하게 되지 않을까 하는 마음에 이번 포스팅을 작성해 봅니다. 그리고 마지막에는 나의 Gi..