본문 바로가기
728x90

전체 글259

[Git] branch 생성 Git과 같은 VCS(버전관리시스템)를 사용할 때, branch는 매우 많이 사용하고 그 이상으로 중요한 부분을 차지하고 있다. 일반적으로 브랜치를 사용하여 코드를 복사하여 기존의 코드와는 독립적으로 코드를 변경하는데에 사용이 된다. 하지만 사용법이 단순해 보인다하여 아무 지식없이 사용하다 보면 나중에 상당히 난감한 상황에 처할 수 있다... 후에 난감한 상황에 마주하지 않기 위해, 마주하더라도 문제점을 파악하고 해결하기 위해 branch에 대해서 잘 알아야 할 필요가 있다. 또한 Git의 branch는 매우 가볍다라는 특징을 가지고 있다. 그렇기 때문에 브랜치의 생성이 너무나 쉽고 브랜치 사이를 이동하고 다른 브랜치와 merge 하는 등의 작업이 쉽게 가능하다. 이러한 Git이 가지는 branch의 장.. 2024. 1. 2.
[Git] remote 리모트 저장소란? 개발을 하다보면 다른 개발자들과 협업을 할 일이 많다. 다른 사람과 같이 작업하는 파일을 관리하기 위해서는 자신만 접근할 수 있는 로컬이 아닌 모두가 접근할 수 있는 공간이 필요하다. 이러한 공간을 리모트 저장소, 즉 원격 저장소라 부른다. 단어가 생소할 수 있기 때문에, 간단하게 Git으로 관리되는 파일들을 클라우드 시스템을 통해 공유한다고 생각하여도 된다. 대표적으로는 현재 많은 개발자들이 사용하는 Github이 있다. 다른 사람과 공유할 수 있기 때문에, 여러 사람이 파일에 접근하여 개인의 컴퓨터에서 작업하고 작업 결과물을 적용시키고 하는 등의 협업이 가능하게 되는 것이다. 협업에 있어서 리모트 저장소는 중요한 부분을 차지하기 때문에, Git은 이를 위한 여러 명렁어를 지원하고 있.. 2023. 12. 31.
[Git] 되돌리기 git commit --amend Git은 버전 관리 시스템으로, Git으로 관리되는 모든 파일은 이전의 커밋 상태로 되돌릴 수 있다. 하지만 이 글에서 다룰 커밋 되돌리기는 직전에 진행된 커밋을 없는 상태로 되돌리고 새로운 커밋으로 덮어씌우는 것을 뜻한다. 만약 커밋한 후, 커밋 메세지를 잘못 입력했음을 알게 되었거나 파일 하나를 빼먹었는 등의 실수가 일어났을 때에 해당 커밋을 되돌리고( 없애고 ) 다시 새로운 커밋 개체로 덮어씌울 수 있는 것이다. Git은 이를 위해 git commit 명렁어의 --amend 옵션을 제공한다. 커밋 메세지를 잘못 입력한다고 하였을 때 이 명렁어를 이용하여 다음과 같이 커밋을 되돌릴 수 있다. user@DESKTOP-UCJOAKJ MINGW64 /d/git/simple.. 2023. 12. 27.
[Git] log git log git 은 버전 관리 시스템으로, commit을 통해 git 이 관리하는 파일들의 기록들을 저장해온다. 그리고 이렇게 저장해온 기록(커밋 히스토리)들을 열람하는 것 또한 가능한데, 이를 위한 명렁어가 git log 명렁어이다. 버전관리 시스템이 기록한 버전들을 열람하는 명렁어인 만큼 자주 사용되는 명렁어이다. git log는 특별한 동작 과정을 거쳐서 작업을 하는 명렁어가 아닌 단순히 commit을 통해 기록한 커밋 히스토리를 보기 위한 명렁어이기 때문에, 동작 과정보다는 git log가 어떤 정보를 보여주고 옵션으로는 어떤 것이 있는지를 알아보겠다. 이를 위해, 현재 git 공부를 위해 참고하고 있는 pro git에서 사용하는 예제 코드인 simplegit을 사용하겠다. user@DESK.. 2023. 12. 20.
[Git] mv git mv Git이 관리하는 파일의 이름을 변경하기 위해서는 git mv 명렁어를 사용하면 된다. git mv [origin_file_name] [new_file_name] 해당 명렁어를 통해 git이 관리하는 파일의 이름을 변경한다면 어떻게 될까? 직접 파일 이름을 변경하고 git status 명렁어를 통해 살펴보자. user@DESKTOP-UCJOAKJ MINGW64 /d/git (master) $ ls file1.txt user@DESKTOP-UCJOAKJ MINGW64 /d/git (master) $ git mv file1.txt file2.txt user@DESKTOP-UCJOAKJ MINGW64 /d/git (master) $ ls file2.txt user@DESKTOP-UCJOAKJ MI.. 2023. 12. 20.
[Git] rm git rm rm은 remove, 즉 파일을 삭제하기 위한 명렁어이다. git rm 명렁어를 사용하면 tracked 상태( Git이 관리하고 있는 상태 )의 파일을 staging area 에서 제거한다. 해당 명렁어를 사용하면 working directory ( 현재 작업 폴더 )에서도 파일이 지워진다. git rm 명렁어를 사용하여 파일 하나를 지워보자. user@DESKTOP-UCJOAKJ MINGW64 /d/git (master) $ ls file1.txt user@DESKTOP-UCJOAKJ MINGW64 /d/git (master) $ git rm file1.txt rm 'file1.txt' user@DESKTOP-UCJOAKJ MINGW64 /d/git (master) $ ls git rm 명.. 2023. 12. 14.
[Git] Commit Commit git commit 명령어는 정말 많이 사용하는 명렁어 중 하나로, 이전 글에 git diff 를 통해 알아본 staging area에 변경 사항들을 커밋하기 위한 명렁어이다. 여기서 주의할 점은 staging area에 있는 staged 상태의 파일만을 커밋하는데, 즉 git add를 통해 staging area에 추가된 파일만을 커밋한다는 의미이다. git commit 명렁어를 이해하기 위해서는 commit이 무엇인지 알아야 한다. 'commit'은 사전적 용어로 기록한다는 의미를 지닌다. 이러한 사전적 의미와 git commit 명렁어의 적용 대상이 staging area에 있는 파일인 점을 통해 commit 은 staging area에 있는 현재 파일의 상태를 기록함을 의미한다. ( .. 2023. 12. 6.
[Git] diff diff 지금까지 git status를 통해 파일의 변경 사항 등을 확인을 해 왔다. 하지만 git status의 경우, 단순히 파일이 어떻게 변경되었다는 사실만을 알 수 있는데, 만약 파일의 어떤 내용이 변경 되었는지 알고 싶기 위해서는 어떻게 해야 할까? 현재 파일이 staged 상태인지 unstaged(modified, untracked) 상태인지를 확인하기 위해서는 status 명령어만으로 충분하지만 해당 파일이 어떻게 변경되었는지 자세히 알아보기 위해서는 git diff 명령어를 사용하여야 한다. 해당 명령어를 사용하면 Patch 처럼 어떤 라인이 추가가 되고 삭제가 되었는지를 확인할 수 있다. 이를 위해서 파일 하나를 생성 후, staged 상태로 만든다음 그 파일을 다시 변경하여 보자. us.. 2023. 12. 4.
[토비의 스프링] Application Context에 대한 이해 이전까지 배웠던 것은 스프링이 추구하는 가치를 이해하고 스프링이 그러한 가치를 제공하기 위해 제공하는 기능을 보다 잘 사용하기 위한 사전 지식이다. 관심사를 분리하고 인터페이스를 통해 확장성을 가질 수 있도록 하고 객체의 생성과 관심 설정까지도 factory 클래스에게 맡겨서 코드가 점차 객체지향에 가까워지는 과정을 통해 여러 개념에 대해서 공부하였다. 이번에는 이전의 factory 클래스를 스프링을 사용하여 구현해봄으로써 스프링이 제공하는 강력한 IoC 컨테이너에 대해서 보다 깊게 알아보는 시간을 가지겠다. Application Context이란? Spring의 Application Context를 알기 위해서는 Bean 객체가 무엇인지 알아야 한다. Bean 객체란 단순하게 말하면 컨테이너에 의해 관.. 2023. 11. 27.
Template Method Pattern Template Method Pattern 템플릿 메소드 패턴이란 상속을 이용하여 슈퍼 클래스의 기능을 확장하기 위해 사용하는 디자인 패턴이다. 공통적으로 중복되는 변하지 않는 기능은 슈퍼 클래스에 선언하고 자주 변경되는 특정 작업(기능)의 경우, 서브 클래스에서 확장하여 구현하도록 하는 방법이다. 슈퍼 클래스가 추상 메소드 또는 오버라이드 가능한 메소드를 정의하여 이를 이용한 기본 알고리즘을 구현하기 때문에 서브 클래스에서 해당 기능을 확장하는 방법도 두 가지가 있다. 먼저 추상 메소드를 구현하는 방법과 템플릿 메소드 패턴에서 슈퍼 클래스가 오버라이드 가능하게 만든 메소드를 훅 메소드라고 하는데 이를 서브 클래스에서 오버라이드하는 방법이 있다. 설명에서도 알 수 있듯이, 여러 메소드로 이루어진 특정 알.. 2023. 11. 26.
[Git] .gitignore .gitignore 프로젝트 파일을 관리하다보면, Git이 관리할 필요가 없는 파일들이 생기게 된다. 일반적으로는 로그 파일이나 빌드 시스템이 자동으로 생성하는 파일이 이러한 경우에 속하게 된다. Git이 관리하지 않아도 되는 파일을 설정하기 위해서는 Git은 .gitignore라는 파일을 이용하여 사용자가 지정한 파일을 Git이 무시할 수 있도록 설정할 수 있다. 아래의 예제는 .txt 파일은 무시하도록 .gitignore 파일을 생성한 것이다. user@DESKTOP-UCJOAKJ MINGW64 /d/GitStudy (master) $ echo '*.txt' > .gitignore user@DESKTOP-UCJOAKJ MINGW64 /d/GitStudy (master) $ cat .gitignore .. 2023. 11. 26.
[Git] status --short git status 심플 버전 git status를 통해 현재 워킹 디렉토리의 파일의 상태 변경 등 여러 내용을 확인 할 수 있다. 이런 내용을 간략하게 보여주는 옵션이 존재하는데 바로 -s ( or --short ) 이다. 해당 옵션을 이용하여 status를 출력하였을 경우, 어떻게 출력되는지 살펴보자. 이를 위해 먼저, file.txt 파일을 생성 후 수정하고 file2.txt 파일을 하나 추가로 생성한 후 옵션 없이 status를 출력해보자. user@DESKTOP-UCJOAKJ MINGW64 /d/GitStudy (master) $ echo 'file' > file.txt user@DESKTOP-UCJOAKJ MINGW64 /d/GitStudy (master) $ git add file.txt u.. 2023. 11. 26.
728x90
반응형