일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- authorizationpolicy
- Kubernetes
- typescript
- replication lag
- go
- redirect-gateway
- 디자인패턴
- RDS
- AI
- GIT
- Intellij
- javascript
- 티스토리챌린지
- 캡슐화
- go-sql-driver
- esbuild
- 오블완
- golang
- sqs fifo queue
- ssh 에이전트
- elasticsearch
- database/sql
- context7
- 구조체
- GoF
- goland
- AWS
- Infra
- blank import
- 2024 톨스토이문학상 수상
- Today
- Total
목록2025/09/02 (2)
Fall in IT.
DDD(Domain Driven Design)를 적용하여 Go 프로젝트를 개발할 때, 데이터베이스에서 조회한 데이터를 도메인 엔티티로 복원하는 과정은 항상 수반되는 아주 귀찮은 작업이다.이 글에서는 엔티티의 캡슐화를 유지하면서 효율적으로 복원하는 방법에 대해 정리해보았다.Go에서 DB → DTO → Domain Entity로 복원하는 세 가지 방법과 각각의 장단점 그리고 마지막으로 Java(Spring boot + JPA)에서의 처리 방법을 비교해보겠다.먼저, 일반적인 Account Entity 구조를 살펴보자.// 계좌 엔티티type Account struct { id ID name string balance money.Money version int createdAt time.Time updatedA..
Go 언어로 Database에 접근하려고 할때, 보통 이런 코드가 들어간다.import ( "database/sql" _ "github.com/go-sql-driver/mysql")여기서 github.com/go-sql-driver/mysql은 MySQL 드라이버인데, 흥미로운 점은 _로 import 한다는 점이다.“어? 명시적으로 사용하지 않는걸 반드시 임포트해야 동작하게 만들어놨다고..?” 란 의문이 생긴다.이 부분에 대해서 그 이유와 동작 방식을 쉽게 풀어보겠다.1. Blank Import (_)의 의미Go에서 import _ “패키지”는 해당 패키지를 코드에서 직접 사용하지는 않지만, 패키지의 init() 함수는 실행되게 만든다.즉, _를 붙이면 명시적으로 패키지를 호출하여 사용하진 않지만, si..