2021년 07월 27일 TIL

1 minute read

오늘은 Stream API / Git Rebase Merge에 대해 공부했다.

Git Rebase

Merge vs Rebase

  • Merge는 브랜치를 통합하는 것
  • Rebase는 브랜치의 base를 옮기는 것

따라서, Merge or Rebase가 아니라 Merge or ( Merge & Rebase ) 가 있다고 봐야합니다.

소스트리 기준 Rebase Merge 방법

git Rebase

  1. Rebase를 할 대상 브랜치로 체크아웃

  2. 브랜치를 떼서 붙이고 싶은 부모 커밋에 우클릭 - 재배치 선택

Rebase 가 끝났으니, Merge

  1. 병합하려는 브랜치의 최신 커밋으로 체크아웃

    1-1. 빠른 병합이 가능해도 새 커밋 생성 클릭(이 옵션이 없으면 새로운 merge 커밋이 발생하지 않습니다.)

    1-2. 이후 merge

주의점

  • Rebase는 새로 발생한 feature 브랜치 / Merge는 기존의 브랜치(우리의 경우에는 develop이 됩니다.)에 체크아웃한 상태에서 진행해야합니다.

Stream API

데이터를 추상화 & 처리하는 데에 자주 사용되는 함수들을 정의해둔 API

데이터의 추상화라 함은, 데이터의 종류에 상관 없이 같은 방식으로 데이터를 처리할 수 있다는 것을 의미하고, 그에 따라 재사용성을 높일 수 있다는 것을 의미한다.

Stream API 사용 전의 코드

// Stream 사용 전 
String[] nameArr = {"IronMan", "Captain", "Hulk", "Thor"} List<String> nameList = Arrays.asList(nameArr); // 원본의 데이터가 직접 정렬됨 
Arrays.sort(nameArr); 
Collections.sort(nameList); 
for (String str: nameArr) { 
    System.out.println(str); 
} 
for (String str : nameList) { 
    System.out.println(str); 
}

// Stream 사용 후
String[] nameArr = {"IronMan", "Captain", "Hulk", "Thor"} 
List<String> nameList = Arrays.asList(nameArr); // 원본의 데이터가 아닌 별도의 Stream을 생성함 
Stream<String> nameStream = nameList.stream(); 
Stream<String> arrayStream = Arrays.stream(nameArr); // 복사된 데이터를 정렬하여 출력함 
nameStream.sorted().forEach(System.out::println); arrayStream.sorted().forEach(System.out::println);

내일은 Stream API의 특징에 대해 알아보고 더 깊게 공부해볼까한다.

Categories:

Updated: