
개요Go 백엔드 2: 설정과 같은 브랜치에서 작업하였으나 데이터베이스 관련은 별도로 정리해두었다. 데이터베이스 마이그레이션과 데이터베이스 관련 라이브러리는 추후 별도로 다룰 예정이다.(참고) Go 백엔드 1: 클린 아키텍처 기본 코드를 누적하고 싶었지만, 오류와 개선 사항이 있어 전면적으로 수정했다. 양해를 구한다.링크GitHub 브랜치: https://github.com/nicewook/gocore/tree/2_config-and-db블로그 링크Go 백엔드 1: 클린 아키텍처 기본Go 백엔드 2: 설정Go 백엔드 3: 데이터베이스 연결설정프로젝트 구조데이터베이스와 관련한 프로젝트의 주요 디렉토리와 파일 구조는 다음과 같다(일부 생략)├── cmd│ └── gocore│ └── main.g..
개요 두 컬럼의 조합이 Unique 해야할 상황이 종종 발생한다. 예를 들어 하나의 이미지(image_id)를 여러 일(job_id)에 중복 할당을 할 수 있지만 특정한 일(job_id)에 할당한 이미지(image_id)에 중복이 있으면 안되는 경우가 있겠다. 이럴 때에 두 컬럼의 조합이 unique 하다는 제한(constraint)를 걸 수 있다. 참고 링크: https://stackoverflow.com/a/63733203/6513756 생성할 때에 설정하기 예시: 생성시 두 컬럼 값의 조합은 unique 해야 한다는 제약 조건을 가지고 생성한다. CREATE TABLE my_table ( id serial PRIMARYKEY, task_id int NOTNULL, user_id int NOTNULL..

이 글은 Golang이라기 보다는 Postgres 이야기이다. 개요 Postgres는 timestamp, timestamptz 라는 데이터베이스 타입을 제공한다. 두 타입의 차이를 Golang과 bun 패키지를 이용해 확인해본다. TL;DR 두 타입은 저장시의 표현방법의 차이이지 담고있는 절대시간의 값은 같다. timestamptz 타입은 Postgres 서버 내부에 설정되어 있는 timezone 설정에 따라 저장이 된다. 나의 선택은 timestamp를 사용하여 항상 UTC 타임으로 저장하며, 사용자에게 이를 보여주는 애플리케이션에서 사용자의 컴퓨터 timezone에 맞게 변환하여 보여주도록 하는 것이다.(다른 분들의 선택, 모범 답안이 궁금하다.) 준비작업: macOS에 Postgres 설치하기 다양..
TL;DR Postgres 에서 primary key를 unique, autoincrement 로 생성하고 싶다면 serial이 아닌 generated always as identity 를 사용하자 내용 Postgres 에서 table을 생성하며 PK를 하나씩 증가하는 8바이트 정수형으로 선언하려 BIGSERIAL 을 사용하였는데그 보다는 generated always as identity 를 사용하는 것이 낫다 한다. 그 이유는 1. serial은 Postgres 에서 "auto-generated unique value"를 생성하게 하는 구현이며, SQL 스탠다드가 아니다2. Postgres 10 부터는 generated as identity 를 지원한다. SQL 스탠다드이다. 상세 참고 링크: h..

- Total
- Today
- Yesterday
- postgres
- solid
- 2023
- agile
- API
- websocket
- go
- OpenAI
- 독서
- 티스토리챌린지
- ChatGPT
- intellij
- strange
- 2024년
- clean agile
- 클린 애자일
- backend
- bun
- 독서후기
- golang
- 노션
- 클린 아키텍처
- Gin
- 오블완
- notion
- Bug
- 잡학툰
- 엉클 밥
- 인텔리제이
- 영화
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |