[Algorithm] DFS(Depth-First Search)와 BFS(Breadth-First Search)
·
Algorithm
DFS(Depth-First Search)와 BFS(Breadth-First Search)DFS(Depth-First Search)와 BFS(Breadth-First Search)는 그래프를 탐색하는 두 가지 기본적인 알고리즘이다.그래프 탐색이란 하나의 정적으로부터 시작하여 차례대로 모든 정점들을 한 번씩 방문하는 것을 말한다.두 알고리즘 모두 그래프의 모든 노드를 방문하는 것을 목표로 하지만, 탐색 방식이 다르다그래프? https://github.com/99MinSu/CS-Study/blob/main/DataStructure/Graph.md깊이 우선 탐색 (DFS, Depth-First Search)DFS는 그래프 탐색 알고리즘 중 하나로, 가능한 한 깊게 탐색한 후 더 이상 갈 곳이 없으면 되돌아와서..
[Git] Git-flow
·
Git
Git-flowGit-flow는 Vincent Driessen가 블로그 글( A successful Git branching model )에서 제안한 branching model을 적용하여 소프트웨어의 소스코드를 관리하고 출시하기 위한 '브랜칭 관리 전략branch management strategy’이다.  Vincent의 branching model은 브랜치를 'master - develop-feature - release - hotfix' 5단계로 나눠서 코드를 관리하는 전략이며 항상 유지되는 메인 브랜치들(master, develop)와 일정 기간 동안만 유지되는 보조 브랜치들(feature, release, hotfix)이 있다.master : 기본 브랜치, 제품으로 출시(배포)될 수 있는 브랜..
[Git] 깃(Git)의 원리(4, 충돌과 충돌 해결)와 Git flow
·
Git
깃의 충돌(confilct)깃을 사용하다 보면 많은 사람들이 끊임없이 브랜치를 만들고 병합하고 삭제하기를 반복하면서 개발을 해나간다. 원격 저장소를 사용 한다면 다른 사람이 작업한 내용과 병합하는 작업을 하다보면 오만가지 형태의 충돌이 발생하게 된다.// 기존 master 브랜치의 f1.txt파일function(){ return 'common';}하나의 파일(f1.txt)을 가지고 있는 브랜치(master)에서 새로운 브랜치(exp)를 생성하여 파일의 내용을 수정한 뒤 master 브랜치에서 exp을 병합해 보자$ git checkout -b exp// exp 브랜치의 f1.txt파일function(){ return 'exp';}$ git checkout master// mast..
[Design Pattern] 싱글톤 패턴(Singleton Pattern)
·
Design Pattern
싱글톤 패턴 Singleton pattern(싱글톤 패턴)이란?애플리케이션이 시작될 때 어떤 클래스가 최초 한번만 메모리를 할당하고 (static) 그 메모리에 인스턴스를 만들어 사용하는 디자인패턴이다.즉  '하나'의  인스턴스만 생성하여 사용하는 패턴이다.  클래스의 생성자가 여러 번 호출되더라도 실제로 생성되는 객체는 하나이며 최초 생성 이후 호출된 생성자는 최초에 생성한 객체를 반환한다.싱글톤 패턴을 왜 사용할까?객체를 생성할 때마다 메모리 영역을 할당받아야 한다. 하지만 한번의 new를 통해 객체를 생성한다면 메모리 낭비를 방지할 수 있다. (메모리 측면에서는 이미 생성된 인스턴스를 활용하기 때문에 속도 측면에서도 이점) 또한 싱글톤으로 구현한 인스턴스는 '전역'이므로, 다른 클래스의 인스턴스들이..
[Git] 깃(Git)의 원리(3, Branch 정리)와 브랜치 병합(Merge / rebase)
·
Git
브랜치(Branch)란?소프트웨어를 개발할 때 개발자들은 동일한 소스코드를 공유하고 다루게 된다. 동일한 소스코드 기반으로 여러 사람이 서로 다른 작업을 하게 된다면 서로 다른 버전의 코드가 만들어지게 되는데 이럴 때 여러 개발자들이 동시에 다양한 작업을 할 수 있게 만들어 주는 기능인 브랜치를 사용한다.기존 소스 코드에 새로운 기능을 만들어 새 버전을 만들더라도 기능이 오류 없이 완벽하게 동작한다는 보장이 없고 오히려 기존에 잘 작동되던 기능도 동작하지 않을 가능성도 있다. 깃에서 브랜치는 여러 작업을 각각 독립된 공간에서 진행할 수 있도록 하는 기능이다.하나의 브랜치는 각자의 독립적인  워크스페이스, 인덱스, 로컬 레포지토리, 리모트 레포지토리 공간을 가져 다른 브랜치의 영향을 받지 않고 소스 코드와..
[Git] 커밋 취소/되돌리기/덮어쓰기(reset / revert / amend)
·
Git
커밋 취소하기git resetgit reset 명령어는 현재 커밋한 내역을 특정 시점으로 되돌리고 싶을 때 사용하는 명령어이다. 옵션에 따라 취소, 삭제되는 대상이 달라지기 때문에 상황에 따라 적절한 옵션을 선택하여 사용해야 한다. 자주 사용되는 옵션으로 hard, mixed, soft가 있다.git reset --softreset --soft 옵션을 사용하면 현재 브랜치가 가리키는 커밋을 바꾼다. git commit --soft "커밋 아이디"Index나 워킹 디렉토리는 그대로 놔두고 브랜치가 가리키는 커밋만 이전으로 되돌린다.  HEAD는 계속 현재 브랜치를 가리키고 있기 때문에 HEAD 브랜치를 이동시키는 것과 같다. (저장소만 삭제(HEAD))reset 명령에 커밋을 넘기고 실행하면 언제나 이런 ..
PP_D
'분류 전체보기' 카테고리의 글 목록