⏰ 오늘의 공부
-
특정 commit 삭제하기⏰ 오늘의 공부/기타 2022. 1. 21. 22:15
사건의 발단 회사에서 모 작업을 하고 PR을 올렸는데 거기에 들어가면 안되는 요상한 파일 하나가 들어있었음 심지어 그 파일이 들어간 커밋이 최신 커밋도 아니고 중간에 끼인 커밋이었음 내가 원했던 것 특정 커밋을 삭제하면서 잘못 올라간 파일만 삭제한다. 그리고 삭제하려는 커밋에서 변경한 다른 파일의 경우 최신 커밋의 내용을 유지한다. Git rebase 브랜치 병합 전략 중 하나 브랜치의 공통 조상이 되는 base를 다른 브랜치의 커밋 지점으로 바꾸는 것 rebase 원리 HEAD(feature)와 대상 브랜치(master)의 공통 조상(base)을 찾는다. 공통 조상에서 시작해서 HEAD가 가리키는 커밋까지의 diff 를 차례대로 만들어 임시공간인 Patch에 저장 HEAD를 대상 브랜치로 변경 공통 조..
-
이펙티브 자바 - ITEM2⏰ 오늘의 공부/Java 2022. 1. 5. 01:51
많은 Parameter가 있는 Constructor 는 Builder를 고려하라 ex) 클래스에서 여러 파라미터 중 반드시 필요한 파라미터가 있고 없어도 되는 파라미터가 있다. public class NutritionFacts { private final int servingSize; // 1회 제공량 (need) private final int servings; // 총 n회 제공량 (need) private final int calories; // 1회 제공량당 (need) private final int fat; // g/1회 제공량 (option) private final solium; // mg/1회 제공량 (option) private final carbohydrate; // g/1회 제공량 ..
-
이펙티브 자바 - ITEM1⏰ 오늘의 공부/Java 2022. 1. 5. 01:17
Constructor 대신 Static Factory Method 를 고려하라 Constructor public static class Laptop { private String model; private String company; public Laptop(String model, String company) { this.company = company; this.model = model; } } Static Factory Method = 객체 생성의 역할을 하는 메서드 public static class Laptop { private String model; private String company; } // 네이밍 룰 // from~ = 매개변수 하나인 메서드 // of~ = 매개변수가 N개인 메서..
-
Clean Code 정리 - 1. 깨끗한 코드⏰ 오늘의 공부/Clean Code 2021. 9. 30. 00:11
1. 깨끗한 코드 코드가 사라질 가능성은 없다 ! 코드 = 요구사항을 상세히 표현하는 수단 고도로 추상화된 언어나 특정 응용 분야 언어로 기술하는 명세가 코드 르블랑의 법칙 = 나중은 결코 오지 않는다. 나중에 손보겠다고 한 코드 + 돌아간다는 사실에 안도감을 느끼며 위로함 → 고치지 않는다. 깨끗한 코드 우아하고 효율적인 코드 세세한 사항까지 꼼꼼하게 처리하는 코드 한 가지를 잘 하는 코드 (한 가지에 집중 !) 나쁜 코드는 너무 많은 일을 하려 애쓰다가 의도가 뒤섞이고 목적이 흐려진다. 깨끗한 코드는 한가지에 '집중'한다. 각 함수와 클래스와 모듈은 주변 상황에 현혹되거나 오염되지 않은 채 한길만 걷는다. - 클린코드 1장 10p 단순하고 직접적인 코드 = 사실에 기반하여 반드시 필요한 내용만을 담은..
-
Bit Mask⏰ 오늘의 공부/🌪알고리즘 2020. 3. 5. 01:40
예전에 알고리즘 스터디를 할 때, 비트마스크 개념에 대해 배웠는데 너무 오래전 기억이라 다시 문제를 풀려니 기억나지 않아서 제대로 정리를 하고자 한다. 비트마스크 란? - 용어 그대로 bit(0, 1) 에 관련된 기법 / 정수의 이진수 표현을 활용한 기법 - 0 : 꺼져있다 / 1 : 켜져있다 활용 예제 ? - 비트마스크를 이용한 집합의 구현 우리는 길이가 5인 집합 { 0, 1, 2, 3, 4 } 가 존재한다고 가정해본다. 여기서 몇가지 요소를 뽑아 어떤 요소를 선택했는 지 표현할 수 있다. 즉, 집합의 어떤 요소를 구성하고 있는지를 나타내는 부분집합을 어떻게 표현할 수 있는가? { 0, 1, 2, 3, 4 } => 11111 { 1, 2, 3, 4 } => 11110 { 1, 2, 4 } => 101..