[Algorithm] 이분 탐색 (Binary Search)
·
Algorithm
이분 탐색 (Binary Search)이분 탐색(Binary Search) 알고리즘은 배열이나 리스트에서 원하는 값을 효율적으로 찾는 탐색 알고리즘입니다. 원하는 값을 찾기 위한 여러 탐색 알고리즘이 있지만 이분 탐색(Binary Search)은 정렬된 배열이나 리스트에서 원하는 값을 찾기 위해 탐색 범위를 반복적으로 절반으로 줄여가며 원하는 값을 찾는 알고리즘을 말합니다.여기서 기억해야 할 것은 정렬되어 있어야 한다는 것과 반복적으로 절반씩 줄여 나간다는 것입니다.이진탐색은 탐색 범위를 반복적으로 절반씩 줄여나가기 때문에 순차 검색(Sequential Search)에 비해 빠른 속도를 보장합니다. 하지만 배열이 정렬되어 있어야 한다는 조건이 필요하기 때문에 배열이 정렬되어 있지 않은 경우에는 정렬 작업..
[Git] 내가 보려고 만든 Git-flow기반 브랜치 전략 및 컨벤션
·
Git
Git-flow기반 브랜치 전략 및 컨벤션브랜치 컨벤션1. Master Branch (master)역할: 실제 제품으로 출시되는 안정된 버전이 배포되는 브랜치. 규칙master 브랜치에 직접 커밋을 하지 않습니다.규칙:오직 release 브랜치 또는 hotfix 브랜치를 병합(Merge)할 때만 업데이트됩니다.병합 대상: release, hotfix2. Develop Branch (develop)역할: 다음 출시 버전을 개발하는 메인 개발 브랜치.규칙기능 개발이 완료된 후, feature 브랜치가 develop에 병합됩니다.develop에서 release 브랜치가 생성됩니다.병합 대상: feature, release3. Feature Branch (feature/feature-name)역할: 새로운 기능..
[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를 통해 객체를 생성한다면 메모리 낭비를 방지할 수 있다. (메모리 측면에서는 이미 생성된 인스턴스를 활용하기 때문에 속도 측면에서도 이점) 또한 싱글톤으로 구현한 인스턴스는 '전역'이므로, 다른 클래스의 인스턴스들이..
PP_D
PiggPotato Dev