분류 전체보기 106

iTerm2 기본 단축키

Mac 환경에서 개발을 진행하다 보면 기본 터미널보다 강력하고 유연한 기능을 제공하는 iTerm2를 자연스럽게 사용하게 됩니다. 개발 생산성을 높이려면 마우스 사용을 최소화하고 키보드만으로 화면을 제어하는 것이 중요합니다. 이번 글에서는 iTerm2를 더욱 쾌적하게 사용하기 위해 꼭 알아두어야 할 핵심 단축키들을 기능별로 정리해 보았습니다. iTerm2 기본 단축키탭(Tab) 및 창(Window) 관리여러 프로젝트를 동시에 띄워놓고 작업할 때 가장 빈번하게 사용하는 단축키입니다.새 탭 열기: ⌘ + T현재 탭 닫기: ⌘ + W새 창 열기: ⌘ + N다음 탭으로 이동 : ⌘ + Shift + ] 또는 ⌘ + 방향키(우)이전 탭으로 이동: ⌘ + Shift + [ 또는 ⌘ + 방향키(좌)특정 탭으로 바로 ..

ETC 2026.04.02

안전하게 개발하기 레츠GO! #6 TestMain, testing.M

TestMain과 testing.M은 Go 언어에서 패키지 단위의 테스트 실행 흐름을 통제하기 위해 짝을 이루어 사용되는 핵심 요소입니다. 일반 애플리케이션에서 main() 함수가 프로그램의 시작점 역할을 하듯, 테스트 환경에서는 TestMain이 그 역할을 담당합니다. TestMain이란?TestMain은 특정 패키지 내 테스트들의 전역 진입점(Entry Point) 역할을 하는 사용자 정의 함수입니다.기본적으로 go test 명령어를 실행하면, Go의 내장 테스트 러너가 패키지 내의 모든 TestXxx 함수를 알아서 찾아 실행합니다. 하지만 패키지 내에 TestMain 함수가 정의되어 있다면, Go 러너는 개별 테스트들을 바로 실행하지 않고 오직 TestMain 함수만을 최초로 호출하여 실행 제어권을..

Go언어 2026.04.01

neovim 설정 초기화

Neovim을 처음 접하고 여러 가지 설정을 시도하다 보면, 설정 파일들이 복잡하게 꼬여 아예 처음부터 다시 시작하고 싶어질 때가 있습니다. 이는 Neovim 입문자라면 누구나 한 번쯤 겪는 아주 자연스러운 과정입니다! macOS 환경의 경우, Homebrew로 Neovim을 삭제하고 재설치(brew uninstall neovim 후 설치)하더라도 기존의 설정 파일과 다운로드한 플러그인 데이터는 시스템에 그대로 남습니다. 따라서 완전히 백지상태에서 새로 시작하려면, Neovim이 참조하는 설정, 데이터, 상태 및 캐시 디렉터리를 직접 초기화해 주어야 합니다. 이번 문서에서는 neovim을 초기화하는 방법에 대해 알아보겠습니다. 기존 설정 및 데이터 초기화 (백업 권장)터미널을 열고 아래 명령어를 실행해 ..

ETC 2026.03.28

go reflect 이해하기

reflect란?Go 언어는 강력한 정적 타입(Statically Typed) 언어입니다. 하지만 실무를 하다 보면 ORM 라이브러리를 만들거나, Kubernetes 매니페스트 같은 복잡한 YAML/JSON 데이터를 파싱할 때처럼 런타임에 변수의 타입을 검사하고 제어해야 하는 순간이 반드시 찾아옵니다.이럴때 사용할 수 있는게 바로 reflect 패키지입니다. 이번 문서에서는 Golang의 reflect 패키지를 활용해 프레임워크나 공통 라이브러리, 직렬화/역직렬화(예: JSON) 도구 등을 구현할 수 있는 방법에 대하여 알아보겠습니다. reflect 사용하기Reflection의 기초: Type과 KindReflection의 시작점은 `interface{}` (any) 입니다. 빈 인터페이스 내부에는 데이..

Go언어 2026.03.22

go generic 이해하기

Generic(제네릭)이란?Go 1.18부터 도입된 제네릭(Generic) 기능은 하나의 함수나 타입이 다양한 타입을 처리할 수 있도록 해주는 기능입니다. 제네릭(Generics)이 도입된 지 꽤 시간이 흘렀지만, 실무 환경에서는 기존의 `interface{}`와 타입 단언(Type Assertion) 패턴에 익숙해져 제네릭을 적극적으로 활용하지 못하는 경우가 많습니다. 이번 문서에서는 Golang 제네릭의 핵심 개념부터, 범용 자료구조, 실무 유틸리티 함수, 그리고 아키텍처 레벨에서의 고급 활용법까지 단계별로 정리해 보겠습니다. 제네릭의 핵심은 "타입(Type)을 파라미터로 받는다"는 것입니다. 함수나 구조체를 작성할 때 구체적인 타입(`int`, `string` 등)을 미리 정하지 않고, 실제로 호..

Go언어 2026.03.21

go version upgrade (MacOS)

맥북에서 개발을 하다 보면 새로운 기능이나 보안 패치를 위해 Go 언어의 버전을 올려야 할 때가 있습니다. 만약 처음에 `Homebrew`를 이용해 Go를 설치하셨다면, 아주 간단한 명령어 몇 줄만으로 최신 버전으로 업그레이드할 수 있습니다.오늘은 Homebrew를 이용한 Go 버전 업그레이드 방법과, 기존 프로젝트에 새로운 버전을 적용하는 방법까지 한 번에 알아보겠습니다. 현재 설치된 Go 버전 확인하기업데이트를 진행하기 전에, 현재 맥에 설치되어 있는 Go의 버전을 먼저 확인합니다. 터미널(Terminal)을 열고 아래 명령어를 입력해 주세요.go version출력 결과로 go version go1.x.x darwin/arm64 처럼 현재 사용 중인 버전이 나타납니다. Homebrew를 통한 Go 업..

Go언어 2026.03.21

Antigravity 설치하기

Antigravity 설치하기이번 블로그 포스팅에서는 Google DeepMind의 혁신적인 AI 코딩 어시스턴트인 Antigravity를 누구나 쉽게 설치하고 시작할 수 있도록 상세한 가이드를 준비했습니다. 복잡한 개발 환경 설정에 익숙하지 않은 비개발자나 입문자분들도 어려움 없이 따라 하실 수 있도록, 각 단계를 친절한 설명과 함께 체계적으로 정리해 보았습니다. 이 글을 통해 여러분도 강력한 AI 파트너인 Antigravity와 함께 새로운 차원의 코딩 경험을 시작해 보시길 바랍니다. [참고로 필자는 Gemini AI Pro(2TB) 서비스를 이용하고 있습니다.] Antigravity란 무엇인가?Antigravity는 Google DeepMind의 Advanced Agentic Coding 팀이 개발..

AI/Antigravity 2026.02.14

안전하게 개발하기 레츠GO! #5 실전 테스트

실전 데이터 테스트많은 회사에서 Golang의 testing 패키지를 활용해 다양한 테스트를 수행하고 있습니다. 하지만 실제로는 간단한 Mock 테스트나 기본적인 유닛 테스트 수준에서 멈추는 경우가 대부분입니다. 물론 이러한 테스트 방식도 프로젝트 품질을 높이고 개발 속도를 향상하는데 충분히 의미가 있습니다. 하지만 개인적인 관점에서는, Mock 환경에만 의존한 테스트는 실제 운영 환경과의 갭을 줄이는 데 한계가 있다고 생각합니다. Mock 테스트는 안정적이고 빠르게 동작하지만, 실제 데이터 흐름·스키마 변화·외부 시스템과의 연동 문제 같은 현실적인 오류를 잡아내기 어렵기 때문입니다. 그래서 저는 개발 단계에서부터 Mock 테스트를 넘어, 실제 개발 환경에서 사용하는 Database 또는 Pipeline..

Go언어 2025.11.23

안전하게 개발하기 레츠GO! #4 graceful shutdown

Graceful Shutdown이란?Graceful Shutdown은 애플리케이션이 종료될 때, 현재 처리 중인 작업을 안전하게 마무리하고 사용 중인 리소스를 정리하며, 더 이상 새로운 요청을 받지 않도록 하는 프로세스를 의미합니다. 실제 서비스 운영 환경에서는 배포를 위해 서버를 재시작하거나, 장애 복구를 위해 프로세스를 종료해야 하는 상황이 자주 발생합니다. 이때 단순히 프로세스를 강제로 종료시키면 진행 중이던 요청이 끊기거나, 외부 시스템과의 연결이 비정상적으로 종료되며, 데이터 손실까지 발생할 수 있습니다. 이러한 문제를 방지하기 위해 Golang에서는 Graceful Shutdown 패턴을 활용하여 안전한 종료 절차를 구현할 수 있습니다. Graceful Shutdown의 필요성실제 서비스 운영..

Go언어 2025.11.21

안전하게 개발하기 레츠GO! #3 go benchmark

Benchmark 이해하기Golang의 benchmark(벤치마크)와 test(테스트)는 코드의 정확성과 성능을 보장하기 위한 핵심 도구입니다. 특히 대규모 트래픽을 처리하거나 고성능 연산이 필요한 애플리케이션을 개발할 때, 테스트와 벤치마크는 선택이 아닌 필수 요소입니다. 본 문서에서는 Golang의 벤치마크 개념과 그 중요성, 그리고 기본적인 사용 방법에 대해 자세히 설명합니다. Benchmark란?Golang에서 benchmark란 특정 코드, 함수, 알고리즘 또는 시스템의 성능을 측정하여 실행 속도, 처리량, 리소스 사용량(CPU, 메모리 등)을 분석하는 과정입니다. 이를 통해 코드의 최적화 가능성을 평가하고 여러 구현 방식 간의 성능 차이를 비교하며 병목 현상을 식별하여 효율적인 개선 방향을 찾..

Go언어 2025.11.20