본문 바로가기

반응형

프로그래밍 독학

(25)
Pro git 독학일지 5장 - Git 브랜치(1)(Branch, Merge) Pro git 독학일지 5장 - Git 브랜치(1)(Branch, Merge) 모든 버전관리 시스템은 브랜치를 지원한다. 개발을 하다 보면 코드를 여러 개로 복사해야 하는 일이 자주 생긴다. 코드를 통째로 복사하고 나서 원래 코드와는 상관없이 독립적으로 개발을 진행할 수 있는데, 이렇게 독립적으로 개발하는 것이 브랜치다. 사람들은 브랜치 모델이 Git의 최고의 장점이라고, Git이 다른 것들과 구분되는 특징이라고 말한다. 당최 어떤 점이 그렇게 특별한 것일까? Git의 브랜치는 매우 가볍다. 순식간에 브랜치를 새로 만들고 브랜치 사이를 이동할 수 있다. 다른 버전관리 시스템과는 달리 Git은 브랜치를 만들어 작업하고 나중에 Merge하는 방법을 권장한다 심지어 하루에 수십번씩 해도 괜찮다. Git 브랜치..
Pro git 독학일지 4장 - Git의 기초(3) Pro git 독학일지 4장 - Git의 기초(3) 되돌리기 일을 하다 보면 모든 단계에서 어떤 것은 되돌리고 싶을 때가 있다. 이번에는 우리가 한 일을 되돌리는 방법을 살펴본다. 한 번 되돌리면 복구할 수 없기에 주의해야 한다. Git을 사용하면 우리가 저지른 실수는 대부분 복구할 수 있지만 되돌린 것은 복구할 수 없다. 종종 완료한 커밋을 수정해야 할 때가 있다. 너무 일찍 커밋했거나 어떤 파일을 빼먹었을 때, 그리고 커밋 메시지를 잘못 적었을 때 한다. $ git commit --amend 이 명령은 Staging Area를 사용하여 커밋한다. 만약 마지막으로 커밋하고 나서 수정한 것이 없다면(커밋하자마자 바로 이 명령을 실행하는 경우) 조금 전에 한 커밋과 모든 것이 같다. 이 때는 커밋 메시지만..
Pro git 독학일지 3장 - Git의 기초(2) Pro git 독학일지 3장 - Git의 기초(2) Staged 와 Unstaged 상태의 변경 내용을 보기 단순히 파일이 변경됐다는 사실이 아니라 어떤 내용이 변경됐는지 살펴보려면 git status 명령이 아니라 git diff 명령을 사용한다. Patch처럼 어떤 라인을 추가했고 삭제했는지가 궁금할 때 사용한다. README 파일을 수정해서 Staged 상태로 만들고 CONTRIBUTING.md 파일은 그냥 수정만 해둔다. 이 상태에서 git status 명령을 실행하면 아래와 같은 메시지를 볼 수 있다. git diff 명령을 실행하면 수정했지만 아직 staged 상태가 아닌 파일을 비교해볼 수 있다. 이 명령은 워킹 디렉토리에 있는 것과 Staging Area에 있는 것을 비교한다. 그래서 수정..
Pro git 독학일지 2장 - Git의 기초(1) Pro git 독학일지 2장 - Git의 기초 2장을 다 읽으면 1. 저장소를 만들고 설정하는 방법 2. 파일을 추적하거나(Track) 추적을 그만두는 방법 3. 변경 내용을 Stage하고 커밋하는 방법 4. 파일이나 패턴을 무시하도록 Git을 설정하는 방법 5. 실수를 쉽고 빠르게 만회하는 방법 6. 프로젝트 히스토리를 조회하고 커밋을 비교하는 방법 7. 리모트 저장소에 Push하고 Pull하는 방법 을 알게 된다. Git 저장소 만들기 두 가지 방법이 있다. 1. 기존 프로젝트나 디렉토리를 Git 저장소로 만드는 방법이 있고, 2. 다른 서버에 있는 저장소를 Clone 하는 방법이 있다. 기존 프로젝트를 Git으로 관리하고 싶을 때, 프로젝트의 디렉토리로 이동한다. 그리고 아래와 같은 명령을 실행한다..
Pro git 독학일지 1장 - 버전관리란? Pro git 독학일지 1장 - 버전관리란? 깃을 처음 시작하는 것은 아니지만, 깃이 뭐냐고 물어보면 정확히 말할 수 없는 내가 깃을 정확하게 설명할 수 있는 사람으로 거듭나기 위해 1장을 정리한다. 이 장을 다 읽고 나면 아래와 같은 질문들에 대한 답을 명확하게 말할 수 있을 것이다. 1. Git은 어떻게 탄생했나요? 2. Git은 왜 쓰는거에요? 3. Git은 어떻게 쓰는거에요? 버전 관리란? 버전 관리는 무엇이고 우리는 왜 이것을 알아야 할까?? 버전관리 시스템은 1. 파일 변화를 시간에 따라 기록했다가 2. 나중에 특정 시점의 버전을 다시 꺼내올 수 있는 시스템이다. 버전 관리 시스템의 종류 많은 사람은 버전을 관리하기 위해 디렉토리로 파일을 복사하는 방법을 쓴다. 간단하지만 잘못되기 쉽다. 작업..
디모의 코틀린 강좌 이해 돕기 #8 - 클래스, 인스턴스와 참조의 이해 디모의 코틀린 강좌 이해 돕기 #8 - 클래스, 인스턴스와 참조의 이해 이 포스팅은 아래 영상의 이해를 돕기 위해 만들어졌음을 밝힙니다. https://www.youtube.com/watch?v=oF3oV98JJuY&list=PLQdnHjXZyYadiw5aV3p6DwUdXV2bZuhlN&index=8 //해석해보았습니다. var a = Person("박보영", 1990) -> a라는 변수를 선언하고, Person 클래스의 인스턴스를 생성하여 그 변수 공간에 할당한다. 그 인스턴스의 속성은 name은 박보영이고 birthYear는 1990이다. println("안녕하세요, ${a.birthYear}년생 ${a.name}입니다.")에서 a.birthYear -> a라는 공간에 참조된 인스턴스의 birthYe..
트리의 불균형을 해소하기 위한 방법 - AVL tree, Red_Black tree 트리의 불균형을 해소하기 위한 방법 - AVL tree, Red_Black tree AVL tree는 Binary tree에 노드를 삽입하거나 삭제할 때마다 균형인수를 따져 불균형한 경우 노드를 재배치하는 알고리즘 균형인수(balance factor) 균형상태를 숫자로 나타낸 것 왼쪽 서브트리의 높이 - 오른쪽 서브트리의 높이
코딩 기본 다지기 - 5. 추상클래스, 인터페이스, 오버로딩, 오버라이딩, 캐스팅 코딩 기본 다지기 - 5. 추상클래스, 인터페이스, 오버로딩, 오버라이딩, 캐스팅 이 포스팅은 아래 영상을 배우고 정리하는 용도임을 밝힙니다. https://www.youtube.com/watch?v=Ky-CvCQp-qs&list=PLQdnHjXZyYaczbigUDPNeRXeQrdpo5Xwi&index=7 오버로딩(Overloading) 하나의 클래스 내에서 이름이 같은 여러 개의 함수를 만들어내는 것 이름은 같지만 패러미터의 자료형이나 개수가 달라서 다른 기능을 가짐 오버로딩이 없다면 위와 같이 addFloat, addDouble 같은 다른 함수명이 필요하다. 하지만 오버로딩이 있다면 패러미터만 바꿔 같은 이름으로 추가가 가능하다. 위와 같이 패러미터가 늘어나도 괜찮다. 두 수가 아니라 새로운 패러미터..

반응형