2021년 07월 27일 TIL
오늘은 Stream API / Git Rebase Merge에 대해 공부했다.
Git Rebase
Merge vs Rebase
- Merge는 브랜치를 통합하는 것
- Rebase는 브랜치의 base를 옮기는 것
따라서, Merge or Rebase가 아니라 Merge or ( Merge & Rebase ) 가 있다고 봐야합니다.
소스트리 기준 Rebase Merge 방법
git Rebase
-
Rebase를 할 대상 브랜치로 체크아웃
-
브랜치를 떼서 붙이고 싶은 부모 커밋에 우클릭 - 재배치 선택
Rebase 가 끝났으니, Merge
-
병합하려는 브랜치의 최신 커밋으로 체크아웃
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의 특징에 대해 알아보고 더 깊게 공부해볼까한다.