Go 클로저(Closure) 완벽 정리 — 개념부터 트랜잭션 패턴까지

Go 클로저(Closure) 완벽 정리 — 개념부터 트랜잭션 패턴까지

Go 클로저(Closure) 완벽 정리 — 개념부터 트랜잭션 패턴까지Go로 백엔드를 짜다 보면 func(tx *gorm.DB) error { ... } 같은 코드를 자주 마주치게 됩니다. 이게 바로 클로저(Closure)입니다. 이 글에서는 Go 클로저가 정확히 무엇인지, 어떤 상황에서 쓰는지, 장단점과 주의할 점까지 실제 코드 예제로 정리합니다.1. 클로저(Closure)란 무엇인가?클로저는 자신을 둘러싼 스코프(주변 환경)의 변수를 "기억"해서, 그 함수가 밖으로 전달되거나 나중에 실행되어도 해당 변수에 계속 접근하고 값을 바꿀 수 있는 함수를 말합니다.말로만 보면 어려우니 코드로 보겠습니다.func makeCounter() func() int { count := 0 return func(..

Planet에 GitHub Actions CI를 적용한 이유와 과정

Planet에 GitHub Actions CI를 적용한 이유와 과정

회사에서 직장생활을 하면서, 퇴근 후와 주말에는 개인 프로젝트 Planet을 만들고 있습니다. Planet은 연습용 토이 프로젝트가 아니라 실제 서비스를 목표로 개발하고 있는 프로젝트이고, Backend는 Go, Frontend는 SvelteKit으로 구성되어 있습니다.이번 글은 Planet에 GitHub Actions를 이용해서 Pull Request 기반 CI 환경을 구축한 과정을 기록한 글입니다. Frontend와 Backend를 각각 어떤 기준으로 검증하도록 구성했는지, 그리고 이 CI가 정확히 어떤 흐름으로 동작하는지를 중심으로 정리했습니다.Planet에 GitHub Actions CI를 적용한 이유Planet은 혼자 개발하는 프로젝트입니다. 코드 리뷰를 해줄 동료가 없다는 뜻이기도 합니다. 그..

npm 명령어 정리: install, ci, run, check, lint, build 차이

npm 명령어 정리: install, ci, run, check, lint, build 차이

Node.js 기반 프로젝트를 개발하다 보면 습관처럼 입력하게 되는 npm 명령어들이 있습니다. 저도 프로젝트를 진행하면서 다음 명령어들을 거의 매일 사용하고 있습니다.npm cinpm run checknpm run lintnpm run build문제는 이 명령어들을 손에 익어서 습관적으로 치고는 있지만, 막상 "npm ci랑 npm install이 정확히 뭐가 다르지?", "check랑 lint는 왜 따로 나뉘어 있지?" 라는 질문을 받으면 명쾌하게 답하기 어려울 때가 있다는 겁니다.그래서 이번 기회에 실제 프로젝트에서 사용하는 npm 명령어들을 하나씩 정리해보기로 했습니다. 단순히 명령어와 뜻만 나열하는 게 아니라, 무엇을 하는 명령어인지 → 언제 쓰는지 → 왜 필요한지를 중심으로 풀어보겠습니다.No..

혼자 개발하는 사이드 프로젝트에서 Git Branch 전략을 변경한 이유 (master / dev / feature)

혼자 개발하는 사이드 프로젝트에서 Git Branch 전략을 변경한 이유 (master / dev / feature)

안녕하세요. 현재 Planet이라는 서비스를 개발하고 있습니다. 이번 Sprint에서는 새로운 기능을 추가하기보다 앞으로의 개발을 더 안정적으로 진행하기 위한 Git Branch 전략을 변경했습니다.한 줄 요약master, dev, feature 브랜치를 분리하여 개발과 배포를 독립적으로 관리할 수 있도록 개선했습니다.왜 브랜치 전략을 변경했을까?초기에는 master 브랜치 하나만 사용하여 개발을 진행했습니다.혼자 개발하는 프로젝트이다 보니 브랜치를 여러 개 운영하는 것이 오히려 번거롭다고 생각했기 때문입니다.하지만 Planet은 Cloudflare와 Cloud Run을 이용해 자동 배포되고 있습니다. 문제는 master 브랜치에 코드를 Push할 때마다 운영 환경에 새로운 코드가 배포된다는 점이었습니다..

Planet - 사람과 시간을 연결하는 새로운 캘린더 플랫폼

Planet - 사람과 시간을 연결하는 새로운 캘린더 플랫폼

사람이 아니라 시간을 연결하는 SNS, Planet을 만들고 있습니다Planet은 관심 있는 사람들의 시간을 하나의 캘린더에서 함께 관리하는 플랫폼입니다.우리는 하루를 계획하기 위해 여러 서비스를 오갑니다. 내 일정은 캘린더에, 좋아하는 크리에이터는 SNS에, 공연과 행사는 검색 서비스를 통해 확인합니다. 필요한 정보는 많지만 시간은 서로 다른 곳에 흩어져 있습니다.Planet은 이 흩어진 시간을 하나의 공간으로 연결합니다. 내 일정과 관심 있는 사람들의 공개 일정을 함께 보며 하루를 계획할 수 있도록 만드는 것이 Planet의 시작입니다.왜 Planet을 만들게 되었는가?좋아하는 사람들의 시간을 놓치고 싶지 않았습니다.오늘 방송이 있는지, 이번 주 공연은 언제인지, 여행지에서는 어떤 행사가 열리는지 확..

엔비디아·테슬라 적립식 투자 15주차 후기 | 지금도 계속 사는 이유

엔비디아·테슬라 적립식 투자 15주차 후기 | 지금도 계속 사는 이유

15 주차 코카콜라·엔비디아·테슬라·비트코인 투자 기록매주 월요일 매수, 토요일 기록 · 코카콜라, 엔비디아, 테슬라, 비트코인 · 15주차📅 15 주차 코카콜라, 엔비디아, 테슬라, 비트코인 KONVDATSLABTC -3.88%꽤 쌓였다. 초반보다 데이터가 풍부해지고 있다.📊 이번 주 포트폴리오 현황누적 원금₩2,928,158평가액₩2,814,577누적 손익-₩113,580수익률-3.88%이번 주는 미국 증시가 혼조세를 보였다.엔비디아는 단기 조정을 받았고테슬라도 변동성이 컸다.반면 코카콜라는 상대적으로 안정적인 흐름을 유지했다.비트코인은 다시 9천만원 초반까지 하락하면서심리적으로 매수하기 어려운 구간이었다.하지만 적립식 투자에서는 이런 변동성을오히려 평균단가를 낮출 기회라고 생각한다.📋 종목별 ..