728x90

스터디 6

[Gin] GORM 고급 기능 완전 정복 - Soft Delete, Hook, 트랜잭션까지!

Go 언어에서 ORM으로 GORM을 쓰다 보면 관계 설정 말고도 놓치기 쉬운 고급 기능들이 있다. 이번 글에서는 실무에서 정말 유용하게 쓰이는 Soft Delete, Hooks, 트랜잭션을 정리해보자. 📌 목차 Soft Delete란? GORM Hooks란? 트랜잭션 다루기 마무리 및 다음 예고 1. Soft Delete란?Soft Delete는 데이터를 물리적으로 삭제하지 않고, 삭제된 것처럼 다루는 기능이다. 🧾 사용법import "gorm.io/gorm"type User struct { ID uint Name string DeletedAt gorm.DeletedAt `gorm:"index"`} DeletedAt 필드를 추가하면 GORM이 자동으로 Soft D..

개발/Go 2025.05.28

[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

NoSQL DB 종류 알아보기

NoSQL 데이터베이스의 종류에 대해서 알아보자! 1. 개념NoSQL은 "Not Only SQL"의 약자로, 전통적인 관계형 데이터베이스(RDBMS)와 달리 정해진 스키마 없이 유연한 데이터 저장 방식을 지원하는 데이터베이스 유형이다. NoSQL은 일반적으로 대규모 분산 시스템, 빅데이터, 실시간 웹앱 등에 사용된다. 2. 종류- 문서형(Document-based) 대표 DB: MongoDB, CouchDB, Amazon DocumentDB 데이터 형식: JSON, BSON, XML 형태의 "문서" 특징: > 각 문서는 유연한 구조를 가짐 > 컬렉션 단위로 문서 관리 > RDB의 테이블+레코드 개념과 유사하지만 문서 간 구조가 달라도 됨 사용 예: 블로그 글, 사용자 프로필, 전자상거..

개발/ETC 2025.05.18

[Gradle] Gradle을 알아보자!

1. Gradle이란? Gradle은 오픈소스 빌드 도구로, 다음과 같은 특징이 있다. Groovy 또는 Kotlin DSL을 사용해서 빌드 스크립트를 작성의존성 관리: 외부 라이브러리 쉽게 다운로드하고 관리빌드 캐시, 병렬 빌드 지원: 빠른 빌드 가능유연성: 사용자 정의 태스크 추가 가능다양한 언어 지원: Java, Kotlin, Scala, Android 등 2. Gradle 주요 개념 📦 프로젝트와 태스크(Task)Gradle은 기본적으로 프로젝트 단위로 구성됨각 프로젝트에는 여러 개의 태스크(task)가 있음예: 컴파일, 테스트, 패키징, 배포 등예시// build.gradle (Groovy DSL)task hello { doLast { println '..

DB 동시성 제어하는 방법 알아보기

DB 시스템에서 동시성을 제어하는 방법에 대해서 알아보자 !!!   대표적인 동시성 제어 방식은 MVCC(Multi Version Concurrency Control)Lock-Based Concurrency Control이 있다.  1. MVCCMVCC는 데이터의 여러 버전을 유지하여 트랜잭션이 동시에 데이터를 읽고 쓸 수 있도록 하는 방식이다.각 트랜잭션은 자신만의 일관된 스냅샷을 기반으로 데이터를 읽어, 다른 트랜잭션의 변경 사항에 영향을 받지 않는다. 데이터의 각 버전을 유지하여 읽기 작업이 쓰기 작업과 독립적으로 이루어질 수 있다.트랜잭션은 시작 시점의 스냅샷을 기반으로 데이터를 읽어, 다른 트랜잭션의 변경 사항을 보지 못한다. 읽기 작업 시 잠금을 사용하지 안항 높은 동시성을 제공한다.읽기 작업..

개발/ETC 2025.01.06

스레드, 프로세스, 코어 알아보기

스레드, 프로세스, 코어를 알아보자 !!!   1. 개념 - 스레드란?일반적으로 "프로세스 내에서 실행되는 하나의 흐름"을 의미.컴퓨터 프로그램에서 스레드는 프로그램 내에서 동시에 실행되는 여러 작업을 처리하는 단위.스레드는 멀티태스킹을 지원하며, 하나의 프로세스 내에서 여러 작업을 동시에 처리하는 데 사용.프로세스는 하나 이상의 스레드를 포함할 수 있다.  - 프로세스란?운영 체제에서 실행 중인 프로그램을 의미.프로세스는 실행 중인 프로그램에 의해 사용하는 메모리 공간과 시스템 자원들을 포함하는 실행 단위.프로세스는 프로그램 코드뿐만 아니라 그 코드가 실행되는 동안 필요한 데이터, 자원, 상태 정보 등을 포함.  - 코어란?컴퓨터의 중앙 처리 장치(CPU) 내부에서 실제로 명령을 처리하고 실행하는 물리..

개발/ETC 2025.01.03
728x90