Branch 란? "나무가지" 또는 "분기"라는 뜻을 가지고 있습니다. git 에서는 특정 커밋을 가리키는 포인터라고 합니다. Branch는 왜 사용할까? 실무에서는 master 브랜치에서 쭉 개발을 하지 않고, 각 기능별로 개발 흐름을 쪼개서 병렬적으로 처리할 수 있도록 해줍니다. 이런식으로 기능별로 각 브랜치를 생성해 개발 흐름을 쪼개서 다른 브랜치의 영향을 받지 않고 독립적으로 그 기능을 개발 할 수 있도록 해주는 개념입니다. Branch 실습해보기 master 브랜치에서 개발에 필요한 develop 브랜치로 쪼개고 또 그 안에서 기능 A(Func-A)와 기능 B(Func-B) 브랜치로 나눠보겠습니다. 1. 현재 커밋 로그 확인 현재 HEAD가 master 브랜치를 가리키고 있습니다. 이제 mast..
HEAD 란? 현재 내가 위치해있는 커밋을 가리키는 식별자입니다. 보통 커밋을 가리킬 때에는 HEAD가 간접적으로 브랜치를 통해서 가리키게 되는데 아래의 형태가 바로 그 모습입니다. HEAD가 master 브랜치를 통해 간접적으로 세번째 커밋을 가리키고 있습니다. $ git reset --{option} {commit_id} HEAD가 가리키는 커밋에 따라 working directory의 형태도 바뀌게 됩니다. 한번 첫번째 커밋으로 이동해 보겠습니다. (옵션은 아래에서 설명하겠습니다.) $ git reset --hard {commit_id} 첫번째 커밋으로 이동했더니 두번째 커밋과 세번째 커밋이 없어졌습니다. 자 이제 다시 최신 커밋인 세번째 커밋으로 이동합시다. 어라, $ git log로 세번째 커밋..
Staging Area Commit을 할 때, 총 3가지 영역을 바탕으로 작동합니다. Working Directory : 내가 작업하고 있는 프로젝트의 디렉토리 Staging Area : 커밋을 하기 위해 $ git add 명령어로 추가한 파일들이 모여있는 공간 Repository : 커밋들이 모여있는 저장소 열심히 코드를 작성하다가 커밋을 해야하는 순간이 오면 git add .를 통해 커밋할 파일들을 추가합니다. 이 파일은 바로 Repository에 올라가지 않고, Staging Area에 올라가게 됩니다. Staging Area에 추가한 파일들을 Commit을 한다면 최종적으로 저장소(Repository)로 저장되게 됩니다. File Status LifeCycle File 관점에서는 다시 4가지 단계..
Git 이란 ? 소스코드의 버전관리와 다른 개발자와 협업하기 위해 사용하는 프로그램입니다. Git vs GitHub 나는 예전에 Git과 GitHub이 같은 것인 줄 알았었다. Github은 Git 기반의 저장소 서비스를 말합니다. Git 시작 개발 환경 Mac OS , IntelliJ (Git 설치에 대해서는 다루지 않겠습니다.) 먼저 버전관리를 하고 싶은 프로젝트를 만듭니다. 저는 Tutorial_Git 이라는 디렉토리를 생성하였습니다. IntelliJ의 내장 Terminal을 열어줍니다. $ git init $ git init 명령어 아래에 보면 우리의 프로젝트 디렉토리 아래에 .git이라는 디렉토리가 생성되었는데 이 디렉토리에서 버전관리를 위하여 필요한 것들을 알아서 관리를 해줌으로써 우리가 Gi..
https://www.acmicpc.net/problem/1074 1074번: Z 한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. 만약, N > 1이 라서 www.acmicpc.net ✏️ 문제 🔐 문제 해결 주의! 이 문제는 하나 하나 탐색하여 DFS를 시도하면 시간초과되어 통과할 수 없게 된다. 아래는 시간 초과 받은 풀이..ㅠ 더보기 시간 초과 받은 풀이이다. import java.util.*; import java.io.*; public class Main { static int N, r, c; static int count; static int[][] arr; ..
https://www.acmicpc.net/problem/9466 9466번: 텀 프로젝트 이번 가을학기에 '문제 해결' 강의를 신청한 학생들은 텀 프로젝트를 수행해야 한다. 프로젝트 팀원 수에는 제한이 없다. 심지어 모든 학생들이 동일한 팀의 팀원인 경우와 같이 한 팀만 있을 www.acmicpc.net ✏️ 문제 🔐 문제 해결 이 문제는 생각보다 간단한데 어렵다. 위 예제 중 하나를 그림으로 표현해보았다. 그림을 보면, (1번, 5번) -> 3번 과 팀을 이루고 싶어한다. 하지만 3번은 혼자 팀을 하길 원한다. 이렇게 되면 1번 5번은 팀을 이룰 수 없게 된다. 또, 2번-> 1번 -> 3번(혼자 팀) 이므로 2번도 팀을 이룰 수 없게 된다. 4번, 6번, 7번은 서로를 가리키고 있으므로 팀이 완성이..