전체 글(560)
-
QueryDSL
보호되어 있는 글입니다.
2023.08.04 -
Fine-tuning Annotation-based Autowiring with @Primary or @Fallback
이 섹션에서는 “다중 후보 빈 중에서 특정 빈을 우선적으로 선택”해야 하는 상황에서 Spring이 제공하는 미세 조정(fine-tuning) 기능을 소개하고 있습니다.과거에는 주로 @Primary(스프링 3.0+)만 알려졌지만, Spring 6.2 버전부터는 새로운 @Fallback 애노테이션도 도입되어, 주입 우선순위를 더욱 세밀하게 제어할 수 있게 되었습니다. 1) 왜 필요한가?스프링에서 “타입에 따른 자동 주입”(@Autowired, @Inject 등)을 쓸 때, 같은 타입을 구현하는 여러 개의 Bean이 등록되어 있으면 스프링은 “어느 한 Bean”을 선택해야 합니다.만약 명시적인 지정(@Qualifier)이나 대표 Bean(@Primary) 지정이 없으면, NoUniqueBeanDefinitio..
2023.07.08 -
Tracking branch와 Upstream
트래킹 브랜치(tracking branch)와 업스트림(upstream)는 Git에서 로컬 브랜치와 원격 브랜치 간의 연결(연관 관계)을 나타내는 핵심 개념입니다. 이 개념들은 fetch, pull, push와 같은 원격 저장소와의 상호작용에서 자동화와 명확성을 제공합니다. 이 두 용어는 밀접하게 연관되어 있으며, 경우에 따라 서로 동의어처럼 사용되기도 하지만, 엄밀히는 약간의 차이가 존재합니다. 🔑 요약용어정의예시Tracking Branch로컬 브랜치에 연결된 원격 브랜치my-feature → origin/my-featureUpstream Branch현재 체크아웃된 브랜치가 기본적으로 push/pull할 대상으로 설정된 원격 브랜치main → origin/main 🧠 트래킹 브랜치(Tracking..
2023.06.30 -
recursive merge strategy
Merge made by the recursive strategy.라는 메시지는 Git이 브랜치 merge 작업을 수행할 때 사용한 merge 전략 을 알려주는 출력입니다. 🔧 recursive merge 전략이란?recursive는 Git의 기본 merge 전략으로, 두 개의 브랜치가 공통 조상을 가질 때 3-way merge를 수행하는 전략입니다.🔁 요약하면:Git이 merge 하려는 두 브랜치가 하나의 공통 조상(base commit) 을 가지면,그 조상과 두 브랜치를 비교해서,3-way merge 방식으로 새로운 merge 커밋을 생성합니다.✅ 예시 상황git merge feature현재 브랜치가 main이고, feature 브랜치를 merge 하려고 할 때,두 브랜치의 공통 조상이 있는 경우..
2023.06.28 -
ort merge strategy
🔍 ort Merge 전략이란?ort는 Git 2.34 (2021년 11월 출시)부터 기본 병합 전략으로 채택된 신형 merge 전략입니다.이 전략은 기존의 recursive 전략을 논리적으로 동일하지만 훨씬 빠르게 수행하기 위해 완전히 새롭게 재작성된 merge 엔진입니다.📌 이름의 유래OptimizedRecursiveTree merge→ 줄여서 ort (발음: 오트) 1. 🎯 도입 배경: 왜 recursive를 대체했는가?기존의 recursive merge 전략은 다음과 같은 문제점이 있었습니다:문제점설명성능 저하대형 리포지토리(예: 리눅스 커널) merge 시, merge에 수 분 이상 소요메모리 비효율트리 비교를 재귀적으로 수행 → call stack 깊이 증가 및 객체 재사용 어려움merg..
2023.06.28 -
git checkout
git checkout 명령어는 단순한 브랜치 전환 이상의 복합적인 Git 내부 작업을 수행하며, Git의 워킹 디렉토리, 인덱스(Index), HEAD, 그리고 리퍼런스(refs) 사이의 동작 원리를 이해해야만 그 진면목을 파악할 수 있습니다. ✅ 개요: git checkout은 무엇인가?git checkout은 Git에서 HEAD 포인터를 이동하거나, 특정 커밋 또는 브랜치의 스냅샷을 워킹 디렉토리에 복원하는 데 사용됩니다. 이것은 다음과 같은 두 가지 유형의 동작으로 구분됩니다:브랜치 기반 checkout: HEAD 포인터를 다른 브랜치로 이동하고, 그 브랜치가 가리키는 커밋을 워킹 디렉토리와 인덱스에 반영합니다.파일/트리 기반 checkout: 특정 커밋이나 브랜치로부터 특정 파일이나 디렉토리를 ..
2023.06.28