Daehong TIL Blog
Algorithm - Sieve of Eratosthenes
Algorithm - Factorial
Algorithm - Fibonacci ( Memoization )
Algorithm - BinaryTree ( DFS )
Algorithm - Find Subset ( DFS )
Algorithm - BinaryTree ( BFS )
Algorithm - Find Calf ( BFS )
Algorithm - Shortest Distance ( DFS, BFS )
Algorithm - Route Navigation ( Graph / DFS )
Algorithm - Route Navigation2 ( Graph List / DFS )
Algorithm - Graph Shortest Distance ( Graph / BFS )
Algorithm - String CodingTest Tip
Algorithm - Find Subsets Same Sum ( DFS )
Algorithm - Baduki Riding ( DFS )
Algorithm - Hash CodingTest Tip
Algorithm - ETC CodingTest Tip
Algorithm - Two Pointers Algorithm
Algorithm - Sliding Window
Algorithm - Sum Of Consecutive Natural Numbers
Algorithm - Stack and Queue CodingTest Tip
Algorithm - Sort Algorithm
Algorithm - Maximum Score ( DFS )
Algorithm - String CodingTest Tip
Algorithm - Finding Duplicate Permutations ( DFS )
Algorithm - Coin Exchange ( DFS )
Algorithm - Number of Combinations Memoization ( DFS )
Algorithm - Finding Permutations ( DFS )
Algorithm - Guess Sequence ( DFS )
Algorithm - Finding Combinations ( DFS )
Algorithm - Maze Navigation ( DFS )
Algorithm - Maze Navigation ( BFS )
Algorithm - Tomato ( BFS )
Algorithm - Island ( DFS )
Algorithm - Mischief
Algorithm - Island ( BFS )
Algorithm - Wrestler ( Greedy )
Algorithm - Pizza Delivery Distance ( DFS )
Algorithm - MeetingRoom Assignment ( Greedy )
Algorithm - Wedding Ceremony ( Greedy )
Algorithm - Maximum Earnings Schedule ( Greedy )
Algorithm - Dijkstra_Algorithm
Algorithm - Union&Find
Algorithm - Wonderland ( Union&Find )
Algorithm - Wonderland ( Prim Algorithm )
Algorithm - TwoDimensional Array Sorting
Algorithm - Climbing Stairs
Algorithm - Cross Stone Bridge
Algorithm - Maximum Partially Increasing Sequence
Algorithm - Build Tallest Tower
Algorithm - Knapsack Algorithm
Algorithm - Maximum Score
Algorithm - Binary Search
Algorithm - Binary Search
Algorithm - Binary Search
Algorithm - DFS(Recursive Function)
ETL vs CDC
Development Book - Computer structure and operating system for self-study
CS - Early Return Pattern
CS - Layered Architecture
CS - UML Basic
CS - Process vs Thread Deep
CS - Design Pattern Basic
CS - Singleton Pattern
CS - Why computers use binary numbers
CS - Interrupt
CS - Ram vs Disk and Cache
CS - System Bus
CS - File writing process in Java (OS, interrupt, I/O perspective)
CS - Process vs Thread Basic
CS - TCP vs UDP
High Availability (HA)
Directed Acyclic Graph (DAG)
Git - Git & Github Basic
Git - Git Rollback
Git - Branch & Interaction
Important Study - Mutex & Semaphore
Important Study - Concurrency issues And Lock
Important Study - DB index to improve performance
Important Study - Redis Cache & Update Strategy
Important Study - Very Important Transaction
Important Study - DB Lock
Java - OOP and SOLID
Java - Error in Floating Point
Java - Short Circuit vs Eager Operator
Java - Static ?
Java - Immutable Class vs Mutable Class
Java - Operators, TypeConversion, and MemoryOverflow
Java - String
Java - Java Basic JDK, JRE, JVM & JVM WarmUp
Java - Java Etc Study
Java - Libraries vs Frameworks
Java - Final
Java - Multithread Synchronization Issues Basic
Java - Method Dispatch
Java - Inner Class
Java - Exception
Java - Collection Basic & Hash Basic
Java - Annotation
Java - Java Version
Java - Generic
Java - GC (Garbage Collection)
Java - Shallow Copy vs Deep Copy
Java - Daemon Thread
Java - Assignment vs Equality vs Equals
Java - IO & NIO ( Blocking vs Non-Blocking )
Java - JSP & Servlet
Java - JDBC & Connection Pool
Java - JVM Stack and Stack Frame
Java - Blocking IO, Non Blocking IO, Sync, Async
Java - Equals & HashCode
Java - Call By Value vs Call By Reference
Java - 7 features of Java
Java - Classes, Objects and Instances
Spring - IoC & DI
Spring - DTO vs VO vs Entity
Spring - IoC Container & DI Container
Spring - Why use springs?
Spring - Spring Etc Study
Spring - Autowired
Spring - Quilifier vs Primary
Spring - Spring Bean
Spring - POJO
Spring - Filter vs Interceptor
Development Tip - Lock
Development Tip - Iamge Upload
Development Tip - When modifying a session in a hurry
Development Tip - How to prepare for high volume traffic
Development Tip - Transactional(readOnly = true)
Development Tip - Why you should avoid NoArgsConstructor and AllArgsConstructor
Web - GET, POST, PUT, PATCH, DELETE
Web - URL vs URI
Web - API vs RestAPI
Web - Web internal operation
Web - Cookie vs Session
Java - Primitive vs Wrapper
Java - Abstract Class vs Interface
Fork it Now!
Git - Git Rollback
1. git reset 을 통한 되돌리기
$ git reset 이라는 명령어를 통해서 버전을 되돌릴 수 있다.
이 때 무조건 한 번이상 Commit 하여야지만 사용 가능하다.
아래 명령어에서 HEAD는 현재 작업중인 브랜치/커밋 중 가장 최근 커밋을 의미한다.
^ 한 개는, 한 번을 되돌린다는 뜻이다.( HEAD^ 이면, 가장 최근 버전 하나를 되돌린다는 것이다. ) ( HEAD^^ 이면, 가장 최근 버전과 가 이전 버전까지 두 개를 되돌린다는 의미이다. )
$ git reset –hard HEAD^
—> Local Repository 에서 최근 버전의 모든 파일들을 수정하기 이전으로 되돌린다.
$ git reset –mixed HEAD^
—> Local Repository 에서 Working Directory 까지 되돌린다.( Default가 mixed 이기 때문에, $ git reset HEAD^ 만 해도, mixed로 리셋해준다. )
$ git reset –soft HEAD^
—> Local Repository 에서 Staging Area 까지만 되돌린다.
2. git diff 그리고 git revert
$ git diff : 변경 내역들끼리 비교 결과를 보여준다.
예를 들면, $ gitt diff 2845ce53054627b3(A) f7fe32715c4bd70511019613(B) 라고 입력한다.( 이 숫자는 git log를 통해 볼 수 있는 commit hash이다. - 그 버전의 고유 코드 같은 것 )
$ git diff branch이름 origin/branch이름 을 통해 원격 저장소와 로컬 저장소를 비교할 수도 있다.
$ git diff HEAD HEAD^ 를 통해, 최근 커밋과 바로 한 단계 이전 커밋을 비교할 수도 있다.
$ git revert : reset과 비슷하게 버전을 되돌려주는 역할을 한다.
예를 들면, $ git revert 2845ce53054627b3381c9f2515dc7545cff2347b ( 이 숫자는 git log를 통해 볼 수 있는 commit hash이다. - 그 버전의 고유 코드 같은 것 )
reset 처럼 이전 버전으로 되돌리는 것이지만, 가장 큰 차이는 reset은 현재 버전부터 되돌리려는 버전까지의 모든 버전이사라지는데 revert는 현재 버전과, revert 하려는 버전 사이의 버전들이 사라지지 않는다.
예를들면 1 2 3 4 5 6 7(HEAD) 버전이 있을 때, 7(HEAD)에서 3으로 reset 하면, 3(HEAD)가 되고 4 5 6 7은 사라진다. 그러나 revert를 통해 3으로 revert 하면, 1 2 3 4 5 6 7 8(HEAD = 3과 똑같은 내용임) 으로 새로 커밋된다.
-n 옵션을 이용하면 revert를 사용해도, commit을 남기지 않을 수 있다.