분류 전체보기 107

[vscode] macOS에 설치된 vscode 초기화 방법

vscode를 사용하여 업무를 하다보면 여러가지 이유로 잠깐 사용하고 그 뒤로는 사용하지 않게 되는 extension과 설정들이 있습니다. 이런 일이 반복되면 사용하지 않는 extension과 설정들로 vscode를 깔끔하게 정리하고 싶은 순간들이 있는데요. 그래서 이번 문서에서는 macOS에서 vscode를 초기화 하는 방법에 대하여 정리하였습니다. 1. vscode 종료먼저 vscode를 초기화하기 전에 vscode를 안전하게 종료합니다. 2. vscode 설정 폴더 삭제VSCode의 설정 파일과 사용자 데이터는 ~/Library/Application Support/Code 디렉토리에 저장됩니다. 터미널을 열고 아래 명령어를 실행하여 해당 폴더를 삭제합니다.# 사용자 데이터 삭제rm -rf ~/Lib..

ETC 13:33:20

AI 코딩 어시스턴트, 제대로 활용하지 못하는 개발자들의 3가지 특징

최근 Claude Code와 같은 코딩 어시스턴트부터 ChatGPT, Gemini 등 대화형 AI까지, 소프트웨어 개발의 패러다임을 획기적으로 바꾸는 도구들이 쏟아지고 있습니다. 단순한 코드 자동 완성을 넘어 아키텍처 설계와 트러블슈팅, 심지어 테스트 코드 작성까지 지원하는 시대가 도래하였습니다. 하지만 현장 프로젝트를 진행하며 주변 동료들을 둘러보면 동료들의 AI에 대한 반응 차이는 꽤 컸습니다. AI를 적극적으로 업무에 도입하여 생산성을 극대화하는 개발자가 있는 반면, 기대만큼의 효율을 내지 못하거나 오히려 복잡함에 지쳐 기존의 전통적인 검색 방식에만 다시 의존하게 되는 동료들도 종종 보게 됩니다.'대체 왜 이런 극명한 차이가 발생하는 걸까?' 하는 의문을 가지고 동료들의 업무 방식과 AI 활용 패턴..

AI 2026.05.04

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 2026.02.14

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

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

Go언어 2025.11.23