인텔리제이 git rebase 기능, 웹에서 git 연습하기, redis sentinel, cluster 간단 개념정리 및 리뷰

 

인텔리제이 git 관련 옵션

- rebase ->  patch conflict

 : remote branch에 반영된 commit들을 rebase하고, 충돌 발생시 해결 후 진행하겠다는 옵션

- Abort patch 

1. abort and rollback  : patch 시도를 중단하고 rollback하는 옵션. patch 이전 작업 상태로 돌림.

2. continue resolve : 충돌 발생 시 해결하고 진행하는 옵션.

 

# Fetch 원격 리포지토리에서 최신 변경 사항을 가져오기만 하고 로컬 브랜치에 적용하지 않음
git fetch

# 현재 브랜치의 변경 사항을 <base> 브랜치의 끝에 적용 (rebase를 사용할 경우 충돌 발생 가능성 있음)
git rebase <base>

# Rebase 작업 중 충돌이 발생한 경우 작업 취소
git rebase --abort

# 충돌 해결 후 rebase 작업 계속 진행
git rebase --continue

# Fetch와 rebase를 한 번에 수행하여 원격 리포지토리의 변경 사항을 가져오고 현재 브랜치에 rebase 적용
git pull --rebase

# 원격 <branch>의 변경 사항을 가져오고 현재 브랜치에 rebase 적용
git pull --rebase origin <branch>

 

습관적으로 rebase 옵션을 사용했는데, 실제 rebase 반영 시 local branch와 remote branch에서 commit이 어떤식으로 정렬되는지 확인할 예정. 추가로 gerrit 사용시 rebase를 함께 사용하는 부분도 관계가 있는 것으로 생각되는데 확인 필요.

 

 

git 명령어 연습하기

https://learngitbranching.js.org/?locale=ko 

 

Learn Git Branching

An interactive Git visualization tool to educate and challenge!

learngitbranching.js.org

웹에서 git을 설치하지 않고 간단하게 git의 여러가지 기능들을 연습해볼 수 있는 사이트. 

 

별도로 ide 통해서 항상 git을 사용하고 있는데, 틈틈히 터미널에서의 git command 사용을 이해할 필요성을 느낌. 특히나 문제가 생겼을때 해결능력을 키우려면 실제 명령이 어떻게 들어가고 있는지에 대한 이해가 바탕으로 되어야하는 것을 느낌.

 

# 새로운 커밋 생성
git commit -m "커밋 메시지"

# 브랜치 병합
git merge 브랜치이름

# 커밋들을 재배열하여 깔끔한 히스토리 생성
git rebase 브랜치이름

# 다른 브랜치에서 커밋 선택하여 적용
git cherry-pick 커밋해시

# 이전 커밋을 취소하는 새로운 커밋 생성
git revert 커밋해시

# 커밋들을 이전 상태로 되돌림 (soft, mixed, hard 옵션 사용 가능)
git reset 커밋해시

# 새로운 브랜치 생성 및 브랜치 목록 확인
git branch 브랜치이름

# 다른 브랜치로 이동하거나 특정 커밋으로 돌아감
git checkout 브랜치이름

# 작업 중인 변경 사항을 임시로 저장하고 나중에 다시 적용
git stash (save, pop, apply, list 등의 옵션 사용 가능)

# 특정 커밋에 태그 추가하거나 태그 목록 확인
git tag 태그이름

 

Redis Sentinel, Cluster

- Sentinel : 레디스 서버를 master-slave 구조로 구성하고 필요시 slave를 master로 승격시키는 형태. 고가용성을 보장하기 위한 시스템. fail-over 기능을 제공하여 서비스 중단을 최소화.

- Cluster : 데이터베이스 분산처리를 제공하기 위한 클러스터링 시스템. 데이터를 여러 노트에 분산하여 저장, 관리함. 데이터 파티셔닝과 복제등을 통해 고가용성과 확장성을 제공.

 

둘다 레디스 서버의 확장성을 보장하기 위한 기술.

 

- Redis Sentinel -> Cluster로 변경

데이터 분산 초점을 맞췄을때 이점이 있을 것으로 보이나 상세한 내용은 검토필요.

 

- 관련 용어 정리

1. Master-Slave 구조: 데이터베이스에서 마스터 서버가 쓰기 작업을 처리하고, 슬레이브 서버가 마스터 서버의 데이터를 복제하여 읽기 작업을 처리하는 구조.

2. Fail-Over: 서버나 시스템의 장애가 발생할 때, 대체 서버가 자동으로 활성화되는 과정.

3. 고가용성: 시스템이 항상 가동되어 있고 중단이 최소화되는 상태를 나타내며, 장애 발생 시에도 서비스가 계속되는 것을 의미.

4. 데이터 분산: 데이터를 여러 노드에 분산하여 저장하는 기술로, 확장성을 향상시키고 부하를 분산하는 것.

5. 클러스터링: 여러 대의 컴퓨터를 하나의 클러스터로 묶어서 사용하는 기술로, 성능과 가용성을 향상시키는데 사용됨.

6. 데이터 파티셔닝: 데이터를 작은 파티션으로 나누어 분산 저장하는 기술로, 데이터 처리의 효율성을 높이고 확장성을 강화함.

7. 복제: 데이터의 복사본을 여러 위치에 저장하는 것으로, 데이터의 안정성과 가용성을 높임.

8. Rebalance: 클러스터 내의 노드가 추가되거나 제거되면 데이터가 적절하게 재배치되는 과정을 말함.

9. 분산 데이터베이스: 데이터를 여러 노드에 분산하여 저장하고 처리하는 데이터베이스 시스템을 의미함.

10. 오토 스케일링: 서버의 부하나 사용량에 따라 자동으로 리소스를 확장하거나 축소하는 기능을 말함.

 

기록하는 이유

매일 업무 또는 스터디하면서 스쳐가는 개념, 용어, 기능들을 간략하게라도 그때그때 찾아 정리해두면 좋을 것 같다는 생각을 했다. 하나하나 보면 그렇게 중요하지 않을 수 있는 개념들이지만 잠깐 시간내서 기록하지 않으면 1년, 2년이 지나도 계속 모르는 상태로 남아 나중에 기술부채가 스노우볼이 굴러가는 것을 느꼈기 때문이다.

 

 짧게 짧게 필요한 내용을 많은 시간을 투자하지 않고 간략하게 용어정리 위주로 기록해두고, 다음에 시간이 더 넉넉할때 어떤 부분에 초첨을 맞춰서 스터디를 해야할지 방향을 남겨두려고 한다. 짧게 시간을 많이 안들이려고 하는 부분이 포인트인데, 우선순위가 제일 높지 않지만 분명히 필요한 개념들은 계속해서 내일로 미뤄지기 때문이다. 

 

 블로그를 보시는 분들 입장에서는 이런 방식의 기록이 개념이해에 도움은 안되겠지만, 짧고 간략한 개념정의를 확인하고 관련해서 제가 느꼈던 점이나 생각을 간단하게 공유한다는 차원에서 참고해주시면 좋을 것 같다.

원래는 노트앱에 기록하려고 했지만 매일 일기 쓰는것 처럼 과정과 느낀점을 기록하는 것도 나중에 참고가 될 것 같아서 쓰려고 한다. 시행착오나 문제점이 있는 경우에는 기록해두고 추후에 자세한 내용을 포스팅하고 해당 단락에 백링크를 걸 예정이다.

 

 

작성시간 : 35 min

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기