분류 전체보기 101

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

안전하게 개발하기 레츠GO! #2 go testing

TDD란?유닛 테스트 작성법과 Go testing 패키지를 활용한 디버깅 방법을 설명하기 전에, 먼저 TDD(Test-Driven Development, 테스트 주도 개발) 개념을 간단히 짚고 넘어가겠습니다.TDD는 소프트웨어 개발 방법론 중 하나로, 실제 코드를 작성하기 전에 테스트 코드를 먼저 작성하는 방식을 의미합니다. 즉, 먼저 실패하는 테스트를 만들고, 그 테스트를 통과시키기 위한 최소한의 코드를 작성한 뒤, 마지막으로 리팩토링을 진행하는 순서로 개발이 이루어집니다. 이러한 접근 방식은 코드 품질을 높이고, 기능 추가나 수정 시 발생할 수 있는 오류를 빠르게 발견하는 데 큰 도움을 줍니다.TDD에 대한 자세한 내용은 구글링을 통해 보다 더 좋은 자료를 참고할 수 있습니다. testing 패키지란..

Go언어 2025.11.19

안전하게 개발하기 레츠GO! #1 디버깅

제가 Golang을 개발한 지는 벌써 5년이 넘었고, 그동안 Golang을 사용하는 두 개의 회사에서 근무하며 많은 개발자들과 협업해 왔습니다. 여러 팀과 다양한 프로젝트를 경험하면서 가장 크게 느낀 점 중 하나는 생각보다 많은 Golang 개발자들이 디버깅 기능과 유닛 테스트를 충분히 활용하지 않고 있다는 것이었습니다. 특히 Println 디버깅에만 의존하거나, 테스트 코드를 ‘있으면 좋은 것’ 정도로만 생각하는 경우도 꽤 많았습니다. 하지만 규모가 커지는 서비스에서는 이런 방식이 유지보수성과 개발 효율을 크게 떨어뜨릴 수 있습니다.그래서 이번 포스팅에서는 Golang 개발자가 디버깅과 유닛 테스트를 어떻게 하면 보다 효과적으로 활용할 수 있을지, 실무 관점에서 구체적으로 이야기해보려고 합니다.이번 글..

Go언어 2025.11.18

Go언어의 benchmark와 test

benchmark와 testGolang에서 benchmark와 test는 코드의 정확성과 성능을 보장하는 핵심 요소입니다. 특히, 대규모 시스템이나 고성능이 중요한 애플리케이션을 개발하는데 매우 중요한 기능입니다. 이번 문서에서는 benchmark와 test에 대한 사용법을 알아보겠습니다.benchmark란Golang에서 benchmark란 특정 코드, 함수, 알고리즘 또는 시스템의 성능을 측정하여 실행 속도, 처리량, 리소스 사용량(CPU, 메모리 등)을 분석하는 과정입니다. 이를 통해 코드의 최적화 가능성을 평가하고 여러 구현 방식 간의 성능 차이를 비교하며 병목 현상을 식별하여 효율적인 개선 방향을 찾을 수 있습니다. 특히 Golang에서는 go test -bench 명령어를 활용하여 특정 함수의 ..

Go언어 2025.11.18

direnv를 이용하여 디렉토리에 환경변수 자동 관리하기

direnv는 개발 과정에서 특정 환경변수를 팀원과 쉽게 공유하거나, 반대로 중요한 정보를 .gitignore파일에 .envrc 파일을 추가하여 나는 편하게 사용할 수 있지만 다른 사람에게 노출하지 않도록 하기 위해 많이 사용되는 도구입니다..envrc 파일을 이용하여 디렉토리에 진입할 때 자동으로 환경변수를 로드하고, 디렉토리를 벗어나면 자동으로 해제되기 때문에 프로젝트별 환경 분리에 매우 유용합니다. macOs에서 direnv 설치하기macOS에서는 Homebrew로 간단하게 설치할 수 있습니다.brew updatebrew install direnv direnv는 사용 중인 쉘에 “hook”을 등록해야 동작합니다. zsh 사용 중일 때 다음과 같이 설정할 수 있습니다.echo 'eval "$(dire..

DevOps 2025.11.16

GitHub Actions 로컬 테스트 방법 (with act)

GitHub Actions 로컬 테스트 방법 (with act)GitHub Actions를 사용하다 보면, 매번 Commit하고 Push하지 않고도 로컬 환경에서 워크플로우가 정상적으로 동작하는지 간단하게 확인하고 싶을 때가 있습니다. 이런 경우 act라는 도구를 활용하면 로컬에서 GitHub Actions 워크플로우를 직접 실행해볼 수 있습니다. 이번 글에서는 act를 사용하여 로컬 환경에서 GitHub Actions 워크플로우를 테스트하는 방법에 대해 소개하겠습니다.단, act는 간단한 구조의 워크플로우 테스트에 적합하며, 복잡한 조건 분기나 다양한 OS 환경, self-hosted runner, 외부 서비스와의 연동 등 복잡한 구성에서는 한계가 있을 수 있습니다. 따라서 기본적인 기능 확인이나 단순..

git & github 2025.07.15

Ubuntu 24.04 LTS에서 윈도우 정렬 그룹화 비활성

Ubuntu 24.04 LTS에서 윈도우 정렬 그룹화 비활성화Ubuntu 24.04 LTS의 GUI 환경을 회사 업무용으로 사용하면서 가장 불편하게 느꼈던 점 중 하나는 윈도우 창 정렬(타일링) 기능이었습니다. 특히, 하나의 창을 화면 좌측이나 우측으로 정렬했을 때, 자동으로 반대편 공간에 다른 창이 고정되어 그룹화되는 동작이 개인적인 작업 방식과 맞지 않아 불편함을 자주 겪었습니다.예를 들어, 코드 편집기 창을 좌측에 고정하고, 브라우저나 터미널 창을 자유롭게 배치하려고 하면, 우측 공간이 자동으로 다른 창으로 채워지거나, 창 간 간격이 자동 조정되어 의도치 않게 창 배치가 고정되는 문제가 발생하곤 했습니다. 이러한 설정은 일부 사용자에게는 멀티태스킹에 도움이 될 수 있으나, 자유로운 창 배치를 선호하..

ETC 2025.07.10