본문 바로가기

Golang3

Golang database/sql 패키지 사용하기 (with Postgres) - sql.DB, Query(), QueryRow(), Exec() ORM ORM(Object-relation mapping)은 객체지향 언어를 사용해서 SQL을 다룰 수 있게 도와주는 기술이다. ORM을 사용하게 되면 가상 객체 데이터베이스를 생성하고, 이 가상 객체 데이터베이스가 class 혹은 struct와 맵핑된다. 결과적으로 오브젝트를 만들었을 때 프레임워크가 SQL Statement를 알아서 만들어주고 그것을 실행하는 것. (하지만 자동화되어 만들어진 Statement는 사람 손으로 만든 Statement보다 최적화된 결과물이 나오지 않을 수 있기 때문에, 복잡한 쿼리가 필요할 수록 ORM이 걸림돌이 될 수 있음) Database/sql Golang의 표준 패키지인 database/sql를 사용해보겠다. Postgres를 사용하기 위해선 pq 드라이버(http.. 2023. 9. 21.
Backend Master Class with Golang - Postgres setup, db migration Golang으로 백엔드 개발을 해보고 싶다고 생각하던 중 귀한 자료를 발견 https://www.youtube.com/watch?v=rx6CPDK_5mU&list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE Gin, Postgres, Redis, gRPC와 이것저것을 다 합하여 개발해보는 강의가 무료로 풀려 있어 찍먹해보려고 한다. 모든 내용을 기록하지는 않고 (경험상 그러면 시간이 너무 오래 걸림;;) 필요하거나 나중에도 보면 좋을 내용들 위주로 정리할 예정 Postgres 이해하기 DB는 Postgres를 Docker로 띄워 진행한다. Postgres는 다른 DB와 구조가 조금 달라서 처음에 감을 잡기 살짝 어려웠던 것 같다. 구조는 아래와 같다. 최상단은 Cluster이며, 그 아.. 2023. 9. 18.
컨테이너 환경에서 Postgres 조작(database create)하기 도커 컨테이너에서 postgres를 띄웠을 때, 해당 postgres를 조작하는 방법 직접 컨테이너 안으로 들어가서 조작하는 경우 컨테이너 안에서 bash 커맨드를 활용하여 db 생성과 삭제 -> psql로 postgres에 접속 $ docker exec -it postgres /bin/bash / # createdb --username=root --owner=root dbname / # psql dbname dbname=# / # dropdb dbname 컨테이너 접속하지 않고 조작하는 경우 $ docker exec -it postgres createdb --username=root --owner=root dbname $ docker exec -it postgres psql -U root dbname .. 2023. 9. 14.