블로그
-
Git rebase interactive 사용법 | pick·squash·fixup·충돌 해결·실수 복구
git rebase -i로 커밋을 정리하는 법: pick, squash, fixup, reword, edit와 충돌 해결, reflog로 되돌리기까지 실무 순서로 정리합니다. Git·rebase·interactive 중심으로 설명합니다
-
Git submodule 서브모듈 실무 | 추가·업데이트·CI·모노레포 대안
Git submodule로 서브레포를 끌어오는 법, 초기화·업데이트·삭제, CI 캐시·흔한 오류, submodule 대신 모노레포를 쓰는 기준까지 정리합니다. 실전 예제와 코드로 개념부터 활용까지 정리합니다. Git·Submodule·멀티레포 중심으로 설명합니다
-
GitHub Actions CI/CD 완벽 가이드 | 자동 배포·테스트·Docker·AWS
GitHub Actions로 CI/CD 파이프라인을 구축하는 완벽 가이드. 자동 테스트, 빌드, 배포, Docker, AWS, 캐싱, 보안까지 실전 예제로 정리. GitHub Actions·CI/CD·DevOps 중심으로 설명합니다
-
GitHub Actions 완벽 가이드 | CI/CD·자동화·Workflow·배포·실전 활용
GitHub Actions로 CI/CD를 구축하는 완벽 가이드. Workflow 작성, 테스트 자동화, 배포 파이프라인, Secrets 관리까지 실전 예제로 정리. GitHub Actions·CI/CD·Automation 중심으로 설명합니다
-
[Go 2주 완성 #01] Day 1~2: Go 언어의 철학과 기본 문법 - C++ 개발자의 첫인상
[Go 2주 완성 #01] Day 1~2: Go 언어의 철학과 기본 문법 - C++ 개발자의 첫인상. 시리즈 안내·Go 언어와의 첫 만남로 흐름을 잡고 원리·코드·실무 적용을 한글로 정리합니다.
-
[Go 2주 완성 #02] Day 3~4: 메모리와 자료구조 - 포인터 연산은 없지만 포인터는 있다
[Go 2주 완성 #02] Day 3~4: 메모리와 자료구조 - 포인터 연산은 없지만 포인터는 있다. 시리즈 안내·안전한 포인터의 세계로 흐름을 잡고 원리·코드·실무 적용을 한글로 정리합니다.
-
[Go 2주 완성 #03] Day 5~6: 클래스 없는 객체지향 - 상속을 버리고 합성을 취하다
[Go 2주 완성 #03] Day 5~6: 클래스 없는 객체지향 - 상속을 버리고 합성을 취하다. 시리즈 안내·클래스 없는 객체지향로 흐름을 잡고 원리·코드·실무 적용을 한글로 정리합니다.
-
[Go 2주 완성 #04] Day 7: 다형성의 재해석, 인터페이스 - 가상 함수 없이 다형성 구현하기
C++ 가상 함수와 상속 대신 Go 인터페이스로 다형성을 구현하는 방법. implements 키워드 없는 암시적 인터페이스(Duck Typing)와 io.Reader, io.Writer 같은 소형 인터페이스 설계 패턴을 배웁니다.
-
[Go 2주 완성 #05] Day 8~9: 예외 처리의 새로운 접근 - try-catch는 잊어라
C++ try-catch 대신 Go의 명시적 에러 핸들링을 배웁니다. 다중 반환값, if err != nil 패턴, defer로 자원 해제, panic/recover의 올바른 사용법까지 실전 예제로 학습합니다.
-
[Go 2주 완성 #06] Day 10~11: 고루틴과 채널 - 동시성 프로그래밍의 혁명
[Go 2주 완성 #06] Day 10~11: 고루틴과 채널 - 동시성 프로그래밍의 혁명. 시리즈 안내·경량 동시성의 세계로 흐름을 잡고 원리·코드·실무 적용을 한글로 정리합니다.