공부 기록/C#

[C#/TIL] Git 브랜치 활용법, 깃 컨벤션, 문자열 처리 기능 추가

톰마토 2025. 2. 6. 23:41
728x90

Git 브랜치

브랜치 짤 때 크게 master(main), develop, feature 브랜치들, release, hotfix 로 나누면 충분할 것 같다. 아래 그림에서 전체적인 흐름의 예시를 볼 수 있다.

개발은 master에서 직접하지 않고 develop 브랜치로 받아서 한다. 그 중에서도 기능 브랜치를 나누는 것이 좋고, 작업한 사람이 누구인지까지 알 수 있는 것이 편하다. ex ) 작업자이니셜_기능이름, YD_UI, WG_Character, ...

 

기능 브랜치별로 나눠서 작업하다가 사용자가 버그가 발생했다고 하면 어디서 수정해야할까?

-> 배포된 버전에서 버그가 있는 것이기 때문에 master에 버그가 있는 것임, 그래서 master에서 hotfix로 뻗어서 수정해주면 되는 것이다. 버그가 수정된 것을 develop에도 땡겨주어야 한다.

 

기능이 하나 완료되면 기능 브랜치에서 develop으로 merge한다. 업데이트하는 내용은 release 브랜치에서 테스트한다. release 브랜치는 플랫폼별로 쫙 있을 수 있음. 

 

우리가 프로젝트를 할 때는 feature, develop, main만 있어도 충분할 수 있다. 갑자기 발표 직전에 잘못된 것을 발견하면 hotfix 브랜치를 만들 수 있겠죵? 

 

커밋 컨벤션

코딩할 때 컨벤션이 있으면 좋은 것처럼 깃 커밋을 할 때도 커밋 컨벤션을 잘 지키며 자세한 커밋 메세지를 쓴다면 능률이 오를 수 있다. 

커밋 컨벤션 예시

실제로 다른 프로젝트에서 갑자기 예전에 만든 기능이 작동하지 않아서 커밋을 돌려가며 언제부터 안 된 것인지 찾아야 했는데, 커밋메세지 덕분에 버그 원인을 수월하게 찾은 경험이 있다. (커밋메세지가 자세히 써있지 않았으면 모든 커밋을 되돌려보며 찾았어야 했다.) 그래서 오늘부터 시작하는 팀 프로젝트에서도 커밋 컨벤션을 지켜 써보기로 약속했다. Description도 자세히 써보기로 했다.

우리팀 깃 컨벤션

던전 9조대 팀 화이팅~

문자열 처리 

int, float, char, bool, struct 등은 모두 값 타입에 속한다.

이전에도 다뤘지만 class, object, array 등은 참조 타입이다.

-> string은 클래스이기 때문에 참조 타입이겠다!

Trim

str.Trim() : 문자열에서 선행 및 후행 공백 문자 모두 제거

str.Trim('*', 's', ' ') : 특정 문자를 문자열의 선행 및 후행에서 제거

선행 및 후행에서 시작해서 정해준 특정 문자가 아닌 문자가 나올때까지 제거를 해준다.

Trim 예제 실행

대소문자 변환

str.ToUpper() : 문자열을 모두 대문자로 변환하여 반환 

str.ToLower() : 문자열을 모두 소문자로 변환하여 반환 

 

부분문자열 검색 

Substring(7) : 인덱스 7 문자 위치에서 시작해서 문자열 끝까지 검색한다.

Substring(7, 6) : 7번 문자에서부터 길이가 6인 문자열

 

StringBuilder 

StringBuilder 사용을 연습해볼겸 + 저번 개인 과제 때 while문으로 계속 다시 Console.Clear()하고 출력하는 것을 반복할 경우 깜빡이는 현상이 있었던 것을 해결해보고 싶었다. Console.Clear() 대신 콘솔에 그리기 시작하는 위치 즉, 커서의 위치를 좌상단으로 돌려놓고 덮어 쓰도록해서 해결해봤다.

  • Console.SetCursorPosition(x, y); 를 사용해서 커서 위치를 옮길 수 있다.
  • Console.CursorVisible = false; // 커서 안 보이게 하기

while문에서 계속 출력해도 깜빡이지 않음

근데 꼭 StringBuilder를 사용해서 버퍼로서 사용하지 않아도 커서를 이동시켜 덮는 방법으로 출력하면 똑같이 깜빡거리지 않는다. 모아서 한 번에 출력하는 버퍼 역할이 중요한 게 아니었구나?!

Console.WriteLine으로 해도 똑같이 됨

 

이전에 다뤘던 문자열 처리 함수는 아래 링크에서 더 볼 수 있다.

https://ramenkirby.tistory.com/28

 

[C#/TIL] 진입점 Main 메서드에 대한 이해, 문자열 처리 메서드 , C# switch 조건에 문자열 가능

학습한 것들네임스페이스 & 전역 using "using System;" : System 네임스페이스 내부 기능들을 사용하기 위한 코드. 네임스페이스는 클래스들의 묶음, 기능들의 묶음이라고 생각하면 된다. 예를 들어 Co

ramenkirby.tistory.com

 

 

728x90