목록개발 기타 (20)
취미가 좋다
HEAD 현재 작업중인 커밋을 가리킨다. 커밋을 직접 가리킬 수도 있지만 일반적으로 커밋을 가리키는 브랜치를 가리킨다. HEAD → main → c1 - HEAD 는 * 표시로 표현된다. - 현재 HEAD 는 main 브랜치를 가리킨다. - 현재 main 브랜치는 c1 커밋을 가리킨다. git checkout c1 or git switch c1 HEAD → c1 main → c1 - HEAD 가 브랜치가 아니라 커밋을 직접 가리키도록 분리됐다. HEAD 이동 - HEAD 를 옮기기 위해서는 캐럿(^) 과 틸드(~) 를 사용한다. - 이를 상대 참조 라고 한다. - 커밋의 해시를 직접 작성하기엔 어렵기 때문에 많이 사용한다. - switch 나 checkout 명령어를 사용하면 된다. (둘의 차이는 나중에..
git rebase git merge 와 같이 두 커밋을 합치는 작업이다. git rebase 는 커밋들을 한 줄로 깔끔하게 만들고 커밋의 순서를 만들어준다는 특징이 있다. 아래 예시를 보며 쉽게 이해해보자. - 왼쪽처럼 c2, c3 커밋을 각각 가리키는 bugFix, main 브랜치가 있다고 하자. - 현재 가리키고 있는 브랜치는 bugFix 이다. - git rebase 명령어로 2개를 합쳐보자. git rebase main - main 과 bugFix 는 따로 작업했지만 순서대로 작업한 것처럼 보이게 된다. - 기존에 있던 c3 커밋은 없어지지 않았지만 가리키는 브랜치가 없어서 흐릿해진 상황이다. - 같은 방법으로 main 을 c3' 커밋으로 옮겨보자. git switch main git rebas..
git merge 2개의 커밋을 부모로 갖는 새로운 커밋을 만드는 작업이다. 2개의 커밋을 합친다고 생각해도 된다. - 왼쪽처럼 c2, c3 커밋을 각각 가리키는 bugFix, main 브랜치가 있다고 하자. - 현재 가리키고 있는 브랜치는 main 이다. - git merge 명령어로 2개를 합쳐보자. git merge bugFix - c2, c3 를 부모로 갖는 새로운 커밋 c4 가 생성됐다. - 기존에 가리키고 있던 main 브랜치가 c4 를 가리키게 됐다. - 같은 방법으로 git merge 로 bugFix 도 c4 를 가리키게 해보자. git switch bugFix git merge main - 이를 통해 알 수 있는 것은 어디서 어디로 merge 하든 결국 같은 커밋이 만들어진다는 것이다. ..
깃 (git) 이란 코드의 버전을 관리하기 위한 버전 관리 시스템이다. 쉽게 말해, 우리는 문서를 작성할 때 _1차.ppt / _2차.ppt / _최종.ppt / _최최종.ppt 과 같은 파일들을 만들기도 한다. 중간중간 파일을 저장하는 것처럼 깃은 중간중간 코드를 저장하는 것이라고 볼 수 있다. 커밋 (commit) 이란 위에서 중간중간 저장한 코드(파일)를 말한다. 커밋한다는 것은 새로운 버전의 코드(파일)을 저장하는 것이다. 이 때 저장되는 커밋의 특징으로는 부모가 존재한다. 예를 들어, _2차.ppt 파일의 부모는 _1차.ppt 파일이라고 볼 수 있다. _2차.ppt 를 새로운 커밋이라고 하면 부모(_1차.ppt)로부터 변경된 점만 저장해서 _2차.ppt 커밋을 만든다. 따라서 커밋한다는 것은 부..
JVM : 운영체제의 메모리 영역에 접근하여 메모리를 관리하는 프로그램 메모리 관리, Garbage Collector 수행 Garbage Collector : 동적으로 할당한 메모리 영역 중 사용하지 않는 영역을 탐지하여 해제하는 기능 Stack : 정적으로 할당한 메모리 영역 원시 타입의 데이터가 값과 함께 할당. Heap 영역에 생성된 Object 타입의 데이터의 참조 값 할당 Heap에 있는 객체의 주소를 갖는다. Heap : 동적으로 할당한 메모리 영역 모든 Object 타입의 데이터가 할당. Heap 영역의 Object를 가리키는 참조 변수가 Stack에 할당 객체가 들어간다. Garbage Collector 과정 1. (Mark) Garbage Collector 가 Stack 의 모든 변수를 ..
Proxy Server 클라이언트와 서버 사이에 위치하여 통신을 대리 수행하는 서버이다. 캐시, 보안, 트래픽 분산 등 여러 장점을 가진다. Forward Proxy 클라이언트와 인터넷 사이에 있는 프록시 서버이다. 일반적으로 말하는 프록시 서버이다. 캐싱 클라이언트가 요청한 내용을 캐싱한다. 연결된 클라이언트가 요청한 데이터를 반환할 때 저장했다가 다른 클라이언트가 동일한 데이터를 요청하면 인터넷을 거치지 않고 바로 반환해준다. 전송 시간이 절약되고 외부 요청이 감소되어 네트워크 병목 현상을 방지한다. 익명성 클라이언트가 보낸 요청을 감춘다. 클라이언트의 요청이 프록시 서버를 거치면서 프록시 서버가 요청한 것처럼 보인다. 서버가 받은 요청은 프록시 서버의 IP이므로 서버가 누가 보냈는 지 알 수 없다...