반응형

삭제

    Git 대화형 rebase를 사용한 커밋 순서변경, 합치기 등등 방법

    저번에 공부했었던 rebase에 대해 더 공부해보자. 이번에 공부할 내용은 대화형 rebase를 통해 커밋한 내용을 지우거나, 순서를 바꾸거나 기존 커밋에 내용을 더 추가하거나 하는 내용을 확인해보자. 커밋 합치기 리베이스를 진행할 때 리베이스를 진행할 브랜치에 커밋된 내용이 길다고 가정해보자. 그러면 그 커밋마다 변경된 내용이 다 달라서 master에 리베이스를 진행할 때 여러번에 conflict를 해결해야 한다. 그래서 오늘 강의해주신 강사님이 말씀하시길 브랜치의 커밋을 하나로 합치고 나서 rebase를 진행하면 좋다고 하셨다. 그럼 합쳐보자. 우선 아래 이미지를 보면 c2와 c3의 커밋을 하나로 합쳐서 아래와 같이 마스터 브랜치에 합쳐보겠다. 우선 위와 같은 상황이 되도록 브랜치를 만들어서 진행해보..

    객체의 생성과 삭제 - 규칙 7 종료자 사용을 피하라

    일반적으로 자주 사용하는 finalizer는 예측 불가능하며, 대체로 위험하고, 불필요하다. 그렇기에 꼭 필요로 하는 작업을 명시할 때에는, 사용해서는 안 된다. 문제 사항 1. final 문장에서 Exception이 발생하였을 경우에 하단에 기재한 문장이 실행되지 않아 결국 문제를 유발할 수도 있다. 123456789try { file = new FileWriter(new File("/test/tt"));} catch (IOException ex) { System.out.println("catch block");} finally { System.out.println(12/0); // 강제로 Exception을 발생시킨다. 하단에 file.close() 문장은 실행되지 않는다. file.close(); ..

    객체의 생성과 삭제 - 규칙 4 객체 생성을 막을 때는 private 생성자를 사용하라.

    객체 생성을 막기위해서는 Abstract Class를 이용하거나, 생성자를 private로 생성하면 막을 수 있다. 하지만 이렇게 객체 생성을 막는다는 것은 객체지향 개념에서 벗어나는 행위일 수 있다. 하지만 다음과 같은 경우에 사용을 위해서 사용되기도 한다. 1. 자바의 기본 자료형 값(primitive value) 또는 배열에 적용되는 메서드를 한 군대에 모아둘 때 유용하다. -> Util성 성질을 가지는 클래스에서 유용 Ex) java.lang.Math, java.lang.Arrays Math.abs(), Math.cos() Arrays.asList() 2. 규칙 1번에서 사용하는 정적 메서드를 모아놓을 때도 사용할 수 있다. Ex) java.util.Collections Collections.em..

    객체의 생성과 삭제 - 규칙 2 생성자 인자가 많을 때는 Builder 패턴 적용을 고려하라

    기존의 생성자로 많은 인자를 넣어 생성자를 추가하려고 하는 경우에는 다음과 같이 점층적 생성자 패턴을 자주 사용한다. 1234567891011121314151617181920점층적 생성자 패턴public class Wedul { private String teamName; private String teamReader; private int memberCnt; public Wedul(String teamName) { this(teamName, "", 0); } public Wedul(String teamName, String teamReader) { this(teamName, teamReader, 0); } public Wedul(String teamName, String teamReader, int m..

반응형