Go언어에서 사용할 수 있는 GORM을 사용하다 보면, 자연스럽게 Soft Delete라는 개념을 마주치게 된다. 나에게는 좀 색다른 개념이였는데, DB에 데이터를 저장하는 한 가지 패턴이라는 것을 알게 되었고 오늘은 이에 대해 정리해보고자 한다. Go, GORM을 기준으로 정리할 것이다. import "gorm.io/gorm" type Users struct { gorm.Model Name string `gorm:"size:255"` Email string Password string } GORM의 Entity는 위와 같이 선언할 수 있다. 여기서 gorm.Model이라는 필드가 보이는데, 이는 GORM 측에서 제공하는 기본적인 모델 스키마이다. 그래서 이를 선언하면, 기본적으로 아래의 4가지 colu..
회사에서 Go를 주 언어로 밀고 있고, 배정받은 팀에서도 Go로 개발을 진행하고 있기에 Go 언어를 학습하기 시작했다. 그러던 중 Goroutine을 마주치게 되었다. Goroutine이란? 고루틴은 Go 언어의 동시성 프로그래밍을 가능하게 해주는 경량 스레드이다. 좀더 쉽게 풀어서 얘기하면, 가벼운 스레드라고 생각하면 된다. Multi Thread와 Goroutine의 차이 멀티 스레드와 고루틴은 모두 '병행성(Concurrency)'을 위한 기술이지만, 몇가지 차이점이 존재한다. 첫째로, 스레드는 OS 수준에서 관리되며, 많은 자원을 사용하여 생성하고 관리된다. 반면 고루틴은 Go 언어 런타임에서 관리되기에 더 적은 메모리를 사용한다. 두 번째로, 스레드는 OS에서 스케줄링 되어 작업을 수행한다. 반..