목록분류 전체보기 (182)
취미가 좋다
카프카 실시간으로 대용량 스트리밍 데이터를 처리하는 메시지 큐 플랫폼 풀어서 설명 데이터를 주고받는 굉장히 많은 어플리케이션과 DB 들이 있다. 이 많은 데이터 파이프라인을 관리하기란 어렵다. 파이프라인의 중간 통로로 카프카를 사용해서 데이터를 카프카에 넣고 데이터를 카프카로부터 꺼내가도록 한다. 높은 처리량, 확장성, 영속성, 고가용성의 장점을 통해 데이터 파이프라인을 안전하고 확장성 높게 운영할 수 있다. 브로커 데이터를 저장하고 관리하는 서버 주로 여러 서버를 묶어서 클러스터로 운영한다. 컨트롤러 클러스터 내 브로커 중 한 대가 수행 클러스터 내 브로커가 죽으면 그 브로커가 가진 리더 파티션을 재분배한다. 코디네이터 클러스터 내 브로커 중 한 대가 수행 컨슈머 그룹의 상태를 체크하고 파티션과 컨슈머..
문제 상황 - 로컬 : C1 에서 작업해서 C3 커밋을 푸시하고 싶다. - 원격 : C1 뒤에 누가 C2 커밋을 푸시했다. - 따라서 현재 C3 가 push 되지 않는 상황 - 로컬로 C2 를 가져와서 merge/rebase 한 후 push 해야 한다. rebase 후 push // 1번 방법 git pull --rebase git push // 2번 방법 git fetch git rebase o/main git push merge 후 push // 1번 방법 git pull git push // 2번 방법 git fetch git merge o/main git push
git fetch 원격 저장소에는 있고 로컬 저장소에 없는 커밋을 다운로드 한다. 원격 브랜치들이 가리키는 곳들을 업데이트한다. => 즉, 원격 저장소의 상태를 로컬에 있는 원격 브랜치들에 반영한다. => 로컬 저장소의 상태(브랜치)를 변경하진 않는다. git fetch - 원격 저장소에서 데이터를 가져오는 명령어다. - 왼쪽의 상태에서 오른쪽 상태가 된다. - 커밋 C2, C3 를 로컬 저장소로 다운로드하고 o/main 브랜치를 업데이트한다. git pull git fetch 후 원격 브랜치와 로컬 브랜치들의 merge 까지 진행하는 명령 git fetch git merge o/main 위 과정은 pull 명령어와 동일하다. git pull
git 원격 저장소 / 브랜치 git 을 사용할 때는 github 와 같은 원격 저장소를 주로 사용한다. 장점 1 : 백업의 역할을 한다. 로컬에서 코드가 실수로 삭제되어도 원격 저장소에 저장되어있다. 장점 2 : 공동 작업, 공유의 역할을 한다. 여러 명이 동시에 프로젝트를 하거나 코드를 공유할 때 유용하다. 로컬에서 원격 브랜치는 / 으로 표현된다. git 은 원격 저장소를 clone 해 오면 원격 저장소의 이름을 자동으로 origin 으로 설정한다. 특징 HEAD 는 origin 브랜치를 가리킬 수 없다. git 원격 작업들은 두 저장소 간의 데이터를 주고 받는 행위다.
git tag - 깃의 branch 는 유동적으로 커밋을 가리킨다. - 중요한 커밋을 영구적으로 가리키기 위해서는 태그를 사용할 수 있다. git tag v1 C1 - "v1" 이라는 이름의 태그를 C1 커밋에 붙였다. - 커밋 이름을 지정하지 않으면 현재 HEAD 가 가리키는 커밋에 태그가 생성된다. - 만약 생성한 v1 태그로 switch / checkout 을 하게 되면 HEAD 가 분리되어 커밋에 붙는다. - 태그 자체에 HEAD 가 붙을 수는 없다. https://learngitbranching.js.org/?locale=ko Learn Git Branching An interactive Git visualization tool to educate and challenge! learngitbra..
git cherry-pick 현재 브랜치에서 필요한 커밋들을 가져와서 뒤로 붙인다. - 왼쪽 main 에서 c2, c4 커밋을 가져와서 붙이려고 한다. - rebase 와 비슷한 방법으로 붙는다. - 충돌이 날 수 있다. git cherry-pick c2 c4 (main 에서 c4 를 체리픽 했을 때 충돌을 보면 c4 만의 변경 사항을 가져오는 것이 아니라 현재 브랜치와 c4 브랜치와 차이를 비교하는 것 같다.) 그러나 실제로 테스트를 해봤을 때는 충돌이 발생한다. 예를 들어 c2, c3, c4 가 아래와 같이 수정 변화를 가지고 있다고 하자. (1) 충돌이 발생하는 경우 : c2, c3, c4 가 같은 곳을 수정했을 때 // c2 a // c3 a b // c4 a b c (2) 충돌이 발생하지 않는 ..