Gandis Blog

What did I do

git push후 rebase를 하면? commit message 중복 생성

git push후 rebase를 하면?

여러개발자들과 함께 Git Repository를 생성해서 개발하다보면, dev branch를 생성해서 개발하고, 개발이 완료되면 master branch에 dev branch를 병합하는 방식으로 개발한다. 이 때, 서로 다른 두 branch를 병합하는 방법으로는 Merge와 Rebase가 있다. Merge는 3-way-merge방식을 사용하기 때문에...

C/C++에서 global 함수 및 변수, 그리고 extern에 대해.

C/C++에서 global 함수 및 변수, 그리고 extern에 대해.

C/C++로 개발을 하다보면 C Style의 global 함수 및 변수를 사용할 때가 있다. 하지만 이것들이 어떻게 정의되고 선언되어야 하는지도 제대로 모르고 써왔다. 지금까지 문제가 없었던게 참 신기할 정도이다. 아니면, 지금까지 문제가 발견되지 않았을 수도 있다. 앞으로 계속 global 함수 및 변수를 자주 사용하게 될텐데 더 이상 주먹구구 식으...

다익스트라(dijkstra)

다익스트라(dijkstra)

다익스트라 알고리즘 다익스트라 알고리즘은 최단 경로(shortest path)를 찾는 알고리즘이다. 최단 경로를 찾는 문제는 보통 각 정점들을 연결하는 경로들의 가중치의 합이 최소가 되는 경로를 찾는 방식으로 구한다. 지하철 노선을 예로 들었을 때, 정점은 역이 되고, 가중치는 역간의 소요시간이 된다. 위처럼 다익스트라 알고리즘은 지하철역의 최단 경로...

MVP Design Pattern

MVP Design Pattern

MVP Design Pattern MVP 패턴은 MVC(Model View Controller)에서 변형된 Design Pattern으로 Model View Presneter의 약자이다. MVP는 MVC 패턴에서 Controller의 역할이 Presenter로 변경된 것이 주된 차이점이다. 그렇다면 Presenter와 Controller의 역할이 어떻...

MVC Design Pattern

MVC Design Pattern

MVC Design Pattern MVC는 Model View Controller의 약자로 소프트웨어 디자인 패턴을 말한다. 소프트웨어에 디자인 패턴을 적용하는 이유는, 디자인 패턴을 잘 적용할 경우 향후 지속적으로 개발하고 유지관리를 하는데 드는 비용을 줄일 수 있기 때문이다. 대부분의 디자인 패턴은 사용자의 인터페이스(UI)와 비지니스 로직, 그...

C++ 람다(Lambda)

C++ 람다(Lambda)

람다(Lambda) 람다(Lambda)는 프로그래밍 언어에서 익명 함수(Anomymous Functions)를 나타낸다. 즉, 람다의 성질은 함수 객체(Functor)와 동일하지만 몸체가 없는 이름 없는 함수이다. 람다 문법 1 [&](int a) -> bool { std::cout << "test" << std::...

C++ 함수 객체(Functor)

C++ 함수 객체(Functor)

함수 객체(Functor) 함수 객체(Functor)는 함수처럼 동작하는 객체로 Function Object라고도 불린다. 함수 객체는 함수 호출 연산자인 ()를 class 또는 struct내부에서 오버로딩 한것이다. 함수 객체의 장점 함수 객체의 장점은 아래의 두가지로 보인다. 인라인 함수로 만들 수 있다. 상태를 가질 수 있다. 인라인 ...

C++ 함수 포인터(Function Pointer)

C++ 함수 포인터(Function Pointer)

함수 포인터(Function Pointer) 특정 변수의 메모리 주소를 가리키는 변수를 포인터 변수라고 한다. 마찬가지로 특정 함수의 메모리 주소를 가리키는 변수를 함수 포인터(Function Pointer)라고 부른다. 함수 포인터는 모양은 아래와 같은 모양으로 정의 할 수 있다. 1 int (*Func)(int, int); 맨 앞의 int는...

이진트리(Binary Tree)

이진트리(Binary Tree)

트리(Tree) 트리는 그래프 자료구조의 일종이다. 트리는 여러 노드가 하나의 노드를 가리킬 수 없는 구조이다. 이진 트리(Binary Tree) 이진트리는 트리 자료구조의 일종으로 하나의 부모 노드가 최대 2개의 자식 노드를 가지는 자료구조를 이진트리라고 한다. 자식 노드를 가지고 있는 부모 노드는, 다른 부모 노드의 자식노드가 될 수 있다. 반대...