학습/go 2

[golang] defer를 이용해서 깔끔하게 rollback하기

들어가기복잡한 로직을 설계할 때는 여러 컴포넌트들이 서로 어떻게 상호작용하는지,그리고 특정 작업을 수행하는 데 드는 비용과 그 작업이 실패했을 때 다시 원래 상태로 되돌리는 비용을 고려해야 합니다.그래서 비용이 적게 드는 컴포넌트에 대해 먼저 작업을 시도하고,실패했을 경우에는 빠르게 원래 상태로 되돌리는 '롤백(rollback)' 방식을 사용하기도 합니다.이 과정에서 Golang의 defer를 사용하면 어떻게 효율적으로 개선할 수 있는지에 대해 설명합니다.defergolang에서 defer는 함수가 종료될 때 실행되는 코드 블록을 정의하는데 사용됩니다.그래서 주로 리소스 해제나 파일 닫기, 뮤텍스 잠금 해제 등에 쓰입니다.func example() { defer fmt.Println("이 메시지는 ..

학습/go 2024.12.07

Taskfile을 이용하여 go lang 빌드하기

왜 Taskfile을 사용할까?프로젝트에서 go lang을 쓰고 있는데 Taskfile과 함께 사용하고 있습니다.왜 Taskfile이 도입되었는지 정리하고 발전시키기 위해 이 글을 작성합니다.제가 Taskfile을 사용하는 이유는 다음과 같습니다.빌드 환경 세팅리소스파일 (config, log 등)의 설치 및 초기화프로세스 추상화빌드환경 세팅고정된 환경에서 개발을 하는 경우에는 고려할 필요가 없지만여러 명이 다양한 환경에서 개발을 하는 상황에서는 빌드 환경 세팅이 필요합니다. 따라서 라이브러리 의존성을 해결해야하고 라이브러리 레지스트리를 설정해야하는데Taskfile을 이용하여 간단하게 할 수 있었습니다. 리소스파일 설치 및 초기화또한 프로젝트를 진행하다보면 go lang으로 빌드되는 바이너리 이외의리소스..

학습/go 2024.11.11
반응형