728x90

go 27

[Gin] GORM 관계 설정 완전 정복 - 1:N, N:1, N:M 예제로 배우기

Go 언어의 대표적인 ORM인 GORM을 쓰다 보면 꼭 마주치게 되는 기능이 바로 관계 설정(Association)이다. 이번 글에서는 실제 예제와 함께 GORM의 다양한 관계 설정을 정리해보고, 실전에서 어떻게 쓰는지까지 알아보자. 📌 목차 관계 설정이란? 1:N (has many & belongs to) N:M (many to many) Preload로 관계 데이터 로딩하기 팁 & 실수 방지 포인트 마무리 및 다음 예고 1. 관계 설정이란?관계 설정(Association)은 모델 간의 연결 관계를 표현하는 기능이다. 대표적으로 다음과 같은 관계가 있다- 1:N: 하나의 유저가 여러 개의 게시글을 가질 수 있음 - N:1: 게시글은 하나의 유저에 속함 - N:M: 유저는 여러 역할(Ro..

개발/Go 2025.05.26

[Gin] Go + Gin + GORM으로 백엔드 만들기 (기초부터 CRUD까지)

Go로 웹 백엔드를 만들 때 가장 많이 사용되는 조합 중 하나가 바로 Gin + GORM이다. Gin은 가볍고 빠른 웹 프레임워크이고, GORM은 Go 언어에서 가장 널리 쓰이는 ORM(Object Relational Mapping) 라이브러리다. 이번 글에서는 Gin + GORM을 사용해 MySQL 기반의 간단한 백엔드 서버를 만드는 방법을 초보자도 이해할 수 있도록 하나하나 설명해보려 한다. 📌 목차 GORM이란? 프로젝트 설정 및 설치 데이터베이스 연결 모델 정의 마이그레이션 (자동 테이블 생성) CRUD 예제 Gin과 연동하여 REST API 만들기 마무리 및 참고 자료 1. GORM이란?GORM은 Go 언어용 ORM(Object-Relational Mapping) 라이브러리로..

개발/Go 2025.05.24

[Gin] Gin 시작해보자!

타입스크립트를 go로 만든다는데, 그 기념으로 go로 백엔드를 구성해보자. Go 언어를 오랜만에 공부하는데,기존 Fiber 대신 Gin을 시작해보자. 1. Gin 설치go mod init my-gin-appgo get -u github.com/gin-gonic/gin 2. 최소 실행 코드(main.go)package mainimport ( "github.com/gin-gonic/gin" "net/http")func main() { r := gin.Default() // 간단한 GET 라우터 r.GET("/ping", func(c *gin.Context) { c.JSON(http.StatusOK, gin.H{"message": "pong"}) }) // 실행 r.Run(":8080") /..

개발/Go 2025.05.14

[Fiber] Fiber Template 사용하기

Fiber Template 사용하기Springboot처럼 Fiber로 백엔드를 개발하고, 화면은 프론트엔드 프레임워크를 사용하거나 템플릿 엔진을 사용한다. 난 회사에서 Springboot + Thymeleaf로 개발하는데, Fiber에서는 Html을 템플릿 엔진으로 사용할 수 있다. Fiber에서 제공하는 템플릿 엔진은htmlaceamberdjangohandlebarsjetmustachepug이렇게 8가지 이다. 난 전회사에서 사용했었던 html을 템플릿으로 사용하고, 포스팅을 작성했다. - 사용법package mainimport ( "github.com/gofiber/fiber/v2" "github.com/gofiber/template/html")func main() { // Initialize sta..

개발/Go 2022.11.08

[Fiber] Fiber Routing과 Grouping

Fiber Routing과 GroupingFiber의 Routing은 URI가 클라이언트의 요청에 응답하는 방식을 나타낸다. - PathPath는 문자열, 문자열 패턴으로 이루어져있다.app.Get("/", func(c *fiber.Ctx) error { return c.SendString("root")})app.Get("/about", func(c *fiber.Ctx) error { return c.SendString("about")})app.Get("/random.txt", func(c *fiber.Ctx) error { return c.SendString("random.txt")})  - ParameterParameter는 받을 수 있고, 선택적으로 받을 수 있다.// Param..

개발/Go 2022.11.07

[Fiber] Fiber 설정 및 에러

Fiber 설정 및 에러Fiber의 설정과 에러에 대해 공부하려 한다. - Config// 기본값app := fiber.New(fiber.Config{})// 설정 예시app := fiber.New(fiber.Config{ Prefork: true, CaseSensitive: true, StrictRouting: true, ServerHeader: "Fiber", AppName: "Test Fiber"})fiber 서버를 생성할 때 New 함수를 사용한다.서버 생성 시 몇가지 설정을 할 수 있다. - AppName(string)말 그대로 애플리케이션의 이름을 설정할 수 있다.// 기본값┌────────────────────────────────────────────..

개발/Go 2022.11.05

[Fiber] Fiber 기본

Fiber의 기본 라우팅 방식에 대해 공부해보려고 한다. - 기본package mainimport "github.com/gofiber/fiber/v2"func main() { app := fiber.New() app.Get("/", func(c *fiber.Ctx) error { return c.SendString("Hello, World!") }) app.Listen(":3000")} vscode로 코드를 작성하고 F5로 실행 및 디버그를 하면 실행화면이 뜬다.localhost:3000 으로 접속하면 "Hello, World!"를 볼 수 있다.  - 값 받기 app.Get("/:value", func(c *fiber.Ctx) error { return c.SendString("Hello, World..

개발/Go 2022.11.04

[Fiber] Go로 DB Connect하기(MariaDB)

전 회사에서 쓰던 Golang framework Fiber를 공부하려고 한다. - 내가 전 회사에서 개발했던 부분은 여러 DB에 접속하고, 접속이 잘 되었는지 확인하는 부분이었다.- 이번에 다시 해보니 정말 금방 개발할 수 있는 양이었는데, 왜 이렇게 헤맸던 건지 모르겠다. - 예전에 DB에 접속하기 위해서https://github.com/go-sql-driver/mysq GitHub - go-sql-driver/mysql: Go MySQL Driver is a MySQL driver for Go's (golang) database/sql packageGo MySQL Driver is a MySQL driver for Go's (golang) database/sql package - GitHub - go..

개발/Go 2022.08.13

[Fiber] Go로 Backend 시작하기

전 회사에서 쓰던 Golang framework Fiber를 공부하려고 한다.express와 비슷해서 찍먹 수준으로 해봤는데, 조금씩 공부해보려고 한다. 당시 go 버전이 1.12였는데, 지금은 1.17이다.내가 당시 개발했던 기능이 버전에 큰 영향이 있을 것 같진 않을 것 같다. 먼저 fiber를 다운로드.go get -u github.com/gofiber/fiber/v2 예전엔 잘됐는데,cannot find package "github.com/gofiber/fiber/v2" in any of: c:\go\src\github.com\gofiber\fiber\v2 (from $GOROOT) C:\Users\Administrator\go\src\github.com\gofiber\f..

개발/Go 2022.08.10
728x90