🏃‍♀️
Today I Learned
  • Today I Learned
  • algorithm
    • Binary Search (이진 탐색)
    • Brute Force Search (완전탐색)
    • DFS와 BFS
    • Dijkstra Algorithm (다익스트라 알고리즘)
    • Dynamic Programming (동적 계획법)
    • Floyd-Warshall Algorithm (플로이드-워셜 알고리즘)
    • Greedy
    • 정렬 알고리즘(Sorting Algorithm)
  • data-structure
    • Array, List, LinkedList
    • Graph vs Tree
    • Hash, Map, HashMap
    • Heap
    • Stack, Queue (스택, 큐)
  • database
    • Database Lock
    • Execution Plan
    • Index
    • Join Algorithm
    • MySQL 사용자 권한부여
    • Normalization (정규화)
    • Row-Oriented vs Column-Oriented
    • Transaction
    • 트랜잭션 격리 수준 (Transaction Isolation Level)
    • VARCHAR의 길이제한
  • 디자인 패턴의 종류
    • Abstract Factory Pattern
    • Adapter Pattern
    • Bridge Pattern
    • Builder Pattern
    • Chain of Responsibility Pattern
    • Class Diagram
    • Command Pattern
    • Composite Pattern
    • Decorator Pattern
    • Facade Pattern
    • Factory Method Pattern (팩토리 메소드 패턴)
    • Flyweight Pattern
    • Iterator Pattern
    • Mediator Pattern
    • Memento Pattern
    • Observer Pattern
    • Prototype Pattern
    • Proxy Pattern
    • SOLID
    • Singleton Pattern
    • State Pattern
    • Strategy Pattern
    • Template Method
    • UML
    • 객체지향_패러다임
  • docker
    • Docker
    • Docker Network
  • etc
    • Block vs Non-block, Sync vs Async
  • git
    • Git Merge vs Git Rebase
    • 자주 사용하는 Git 명령어 모음
  • java
    • Annotation
    • Exception Handling (예외 처리)
    • Generic
    • JVM
    • Java 코드의 실행 과정
    • Lambda Expression
    • Object Class
    • Optional
    • Primitive Type & Reference Type
    • Reflection
    • Serialize And Deserialize
    • Stream
    • String, StringBuilder, StringBuffer
    • Tiles
    • Type Casting
    • 왜 Java의 정렬 함수 sort()는 static 메소드일까?
    • 추상클래스와 인터페이스의 차이
    • effective-java
      • Item 1. 생성자 대신 정적 팩토리 메서드를 고려하라
      • Item 10. equals는 일반 규약을 지켜 재정의(오버라이딩)하라
      • Item 11. equals를 오버라이딩할 거면 hashCode도 오버라이딩하라
      • Item 12. toString은 항상 오버라이딩하라
      • Item 13. clone 오버라이딩은 주의해서 진행하라
      • Item 14. Comparable을 구현할지 고려하라
      • Item 15. 클래스와 멤버의 접근 권한을 최소화하라
      • Item 16. public 클래스에서는 public 필드가 아닌 접근자 메서드를 사용하라
      • Item 17. 변경 가능성을 최소화하라
      • Item 18. 상속 대신 컴포지션을 사용하라
      • Item 19. 상속을 고려해 설계하고 문서화하라. 그렇지 않았다면 상속을 금지하라
      • Item 2. 생성자에 매개변수가 많다면 빌더를 고려하라
      • Item 20. 추상 클래스보다는 인터페이스를 우선하라
      • Item 21. 인터페이스는 구현하는 쪽을 생각해 설계
      • Item 22. 인터페이스는 타입을 정의하는 용도로만 사용하라
      • 태그 달린 클래스보다는 클래스 계층구조를 활용
      • Item 24. 멤버 클래스는 되도록 static으로 만들라
      • Top Level Class는 한 파일 당 하나만 선언하라
      • Item 26. 로우 타입(raw type)은 사용하지 말라
      • Item 27. 비검사 경고를 제거하라
      • Item 28. 배열보다는 리스트를 사용하라
      • Item 29. 이왕이면 제네릭 타입으로(클래스로) 만들라
      • Item 3. private 생성자나 열거 타입으로 싱글턴임을 보증하라
      • Item 4. 인스턴스화를 막으려거든 private 생성자를 사용하라
      • Item 5. 자원을 직접 명시하지 말고 의존 객체 주입을 사용하라
      • Item 6. 불필요한 객체 생성을 피하라
      • Item 7. 다 쓴 객체 참조를 해제하라
      • Item 8. finalizer와 cleaner의 사용을 피하라
      • Item 9. try-finally보다는 try-with-resources를 사용하라
  • linux
    • Linux의 Permission
  • network
    • OSI 7 Layer
    • Subnet
    • 그림으로_배우는_http_&_network_basic
  • python
    • 파이썬의 재귀 제한(Recursion Limit)
  • server
    • CI & CD
    • Cache
    • Cloud Service
    • REST API
    • 정적 서버(Web Server)와 동적 서버(Web Application Server, WAS)
  • spring
    • Configuration
    • @RequestParam, @RequestBody, @ModelAttribute
    • AOP (Aspect Oriented Programming)
    • 의존성 자동 주입
    • Bean Scope (빈의 유효 범위)
    • [Error] Bean could not be injected because it is a JDK dynamic proxy
    • Component Scan
    • 🐱‍👤 Component vs Bean
    • 여러 개의 @Configuration(설정 파일)을 사용하는 방법
    • DI (Dependency Injection, 의존성 주입)
    • Filter, Interceptor, (Spring) AOP
    • IoC Container
    • Nested Class의 Bean 등록
    • Profile
    • Properties
    • Spring Bean의 생명주기(life-cycle)
    • Spring vs Spring Boot
    • Thymeleaf
    • jpa
      • Dirty Checking
      • JPA의 Fetch 전략
      • JPA N+1 Problem
    • spring-boot
      • Spring Web Layer (스프링 웹 계층)
      • Spring Boot
    • spring-mvc
      • Argument Resolver
      • Filter
      • Interceptor
      • RestController
      • Validator
      • Exception Handling
      • Spring MVC
    • spring-security
      • Spring Security
  • testing
    • Test Double (테스트 더블)
    • 화이트박스 테스트, 블랙박스 테스트
  • web
    • Browser Caching
    • CORS
    • HTTP Header
    • HTTP와_HTTPS
    • 🛡️OAuth
    • PRG Pattern
    • Query Parameter, Path Variable
    • 🟢🟡🔴 Status Code (상태 코드)
    • WebSocket
    • application/octet-stream
    • Cookie-Session
    • JWT
    • multipart/form-data
Powered by GitBook
On this page
  • Pull - 원격 저장소로부터 내려받을 때
  • fetch-rebase
  • 이미 디렉토리 내에 무언가 있는데 clone 받고 싶을 때
  • 변경 사항 스택에 저장
  • Commit - 원격 저장소에 코드를 올릴 때
  • git reset —soft head^
  • 원격 저장소에 올린 파일을 없애고 추적하지 않도록 하기
  • 원격 저장소에 올린 파일을 유지하되 더이상 추적하지 않도록 하기
  • Branch Management - 협업 시의 브랜치 관리
  • 브랜치 생성 및 이동
  1. git

자주 사용하는 Git 명령어 모음

아! 그거! 뭐였지! 의 그거를 바로바로 깨닫기 위해 정리해보았다. 밥먹듯이 쓰는 기본 명령어(add, commit, push, pull 등)들을 다루지는 않는다.

Pull - 원격 저장소로부터 내려받을 때

fetch-rebase

git pull과 마찬가지로 원격 저장소의 내용을 로컬에도 반영

혼자 작업하는 게 아니라면 branch가 무수히 많이 나뉘므로 fetch-rebase 방식을 사용하는 것이 git pull을 사용하는 것보다 graph가 깔끔해짐

git fetch {원격} {브랜치명}
git rebase

이미 디렉토리 내에 무언가 있는데 clone 받고 싶을 때

그냥 받으면 already exist 오류가 뜬다.

이럴 때에는 직접 원격 저장소로 등록하고 임의로 pull을 받아야 한다.

git remote add origin {repository url}
git pull origin {브랜치명}

변경 사항 스택에 저장

pull을 받거나 branch를 옮기는 등의 작업을 하려고 하는데 변경 사항 때문에 수행할 수 없을 때 주로 사용

git stash // 현재 변경 사항을 stack에 보관
git stash pop // stack에서 다시 꺼냄

Commit - 원격 저장소에 코드를 올릴 때

git reset —soft head^

방금 커밋한 내용이 잘못했을 때 시간을 달려서 커밋을 되돌릴 수만 있다면

(거친 세상속에 내 손을 잡아주길~)

git commit // 문제

git reset --soft head^ // 직전의 커밋을 취소 (add는 유지)

원격 저장소에 올린 파일을 없애고 추적하지 않도록 하기

.gitignore에 포함되어야 하는데 원격 저장소에 올려버려서 추적 대상에 들어가버린 파일을 원격 저장소에서도 지우고 추적 대상에서도 제외하고자 할 때 사용하는 방법

git rm --cached {파일명}
git rm -r --cached {폴더명}

원격 저장소에 올린 파일을 유지하되 더이상 추적하지 않도록 하기

위와 달리 원격 저장소에 올라간 것은 그대로 두되 앞으로 추적 대상에서는 제외하고자 할 때 사용하는 방법

기본 틀만 github에 올려 놓고 내용물은 환경에 따라 달리하고 싶을 때 사용

즉, develop/production에 따라 값이 달라지는 환경 변수들을 관리할 때 사용

git update-index --skip-worktree {파일명}

Branch Management - 협업 시의 브랜치 관리

브랜치 생성 및 이동

git checkout -b {브랜치명}
PreviousGit Merge vs Git RebaseNextjava

Last updated 2 years ago