전체 글 408

[Git] git과 github 6/7 - stash로 임시 저장하기

인프런 강의 - git과 github 정리 작업 내용 임시 저장하기 git checkout BRANCH 시 현재 작업 디렉토리가 깨끗해야 한다. 하지만 작업 도중에 체크아웃을 하고 싶을 때가 종종 있을 것이다. 이럴 때 작업 중인 내용을 임시 저장하는 방법으로는 2가지가 있다. 임시 커밋 현재 작업 중인 branch1에서 일단 커밋 branch2로 체크아웃 후 작업 다시 branch1로 돌아와 작업 마무리 커밋 덮어쓰기 (git commit --amend) stash stash 생성 새로운 파일로 작업 중이였다면 일단 스테이징 영역에 추가 branch2로 체크아웃 후 작업 다시 branch1로 돌아와 저장해둔 stash를 꺼냄 새로운 커밋 (git commit)

[Git] git과 github 5/7 - commit 되돌리는 방법

인프런 강의 - git과 github 정리 커밋 되돌리기 이전 커밋으로 되돌리는 방법으로 세 가지가 있다. reset 으로 되돌리기 브랜치를 만들어서 되돌리기 revert 으로 되돌리기 reset git reset --hard 명령어 사용 장점 : 간단하다. 단점 이전 커밋이 날아간다. 강제적으로 푸시해야 한다. (git push --force) 브랜치 만들기 되돌아가고 싶은 커밋을 대상으로 브랜치를 생성하여 작업 후 main과 병합 장점 : 쉽고 모든 기록이 남는다. 단점 : 트리가 지저분해져 혼자 작업할 때 좋다. revert 대상 커밋을 헤드 커밋의 자식으로 새로 생성 즉, revert 대상 커밋이 사라지는 것이 아닌 대상 커밋의 내용을 되돌린 새로운 커밋이 생겨나는 것 장점 : 이전 커밋이 남아있..

[Git] git과 github 3/7 - merge로 병합하기

인프런 강의 - git과 github 정리 merge 현재 브랜치 (head branch) 와 다른 브랜치를 합치는 것을 병합이라고 한다. 병합 시 자주 발생하는 상황 헤드 브랜치에 변경 사항이 없을 경우 합치려는 브랜치가 헤드 브랜치로부터 시작 그 사이 헤드 브랜치에서 아무 작업도 하지 않은 경우 주로 혼자 작업할 때 발생하는 상황이며, fast-forward라고 한다. example # version1 branch에서 작업 $ git branch version1 $ git checkout version1 $ git commit # main branch에서 병합 $ git checkout main $ git merge version1 브랜치가 생겨난 경우 과거의 커밋으로부터 브랜치를 생성해서 작업한 경..

[Git] git과 github 2/7 - branch 나누기

인프런 강의 - git과 github 정리 branch git을 사용하다 보면 브랜치 나눈다라는 말을 되게 많이 듣는다. 그렇다면 대체 어떠한 상황에서 brach를 사용하는지 알아보자. 기능 변경하기 잘 돌아가고 있는 프로그램에서 기능을 바꾸고 싶은 경우가 종종 있다. 만약 A 기능을 B 기능으로 고치고 싶을 때, A 기능 전부를 주석 처리하고 B 기능을 작성할 수도 있다. 하지만 이러한 상황이 반복되면 스파게티 코드 즉, 복잡한 엉망진창의 코드가 될 수 있다. 이를 막기 위해 사용하는 것이 바로 branch이다. # version1 branch 생성 $ git branch version1 # version1 branch로 이동 $ git checkout version1 $ git commit $ git..

[Git] git과 github 1/7 - git이란?

인프런 강의 - git과 github 정리 git git은 VCS(Version Control System)의 한 종류로 개발자들이 프로그램과 관련된 파일들을 저장하는 데 사용한다. 게임을 하다 중간에 세이브 해두고, 나중에 다시 들어와 세이브된 지점부터 게임하는 것과 비슷하다. 개발 도중 문제가 생겼을 때 쉽게 예전에 저장해둔 시점으로 돌아갈 수 있다. 기본 3요소 add commit 하기 전 파일들을 스테이징 영역에 올리는 행위 commit 위에서 설명한 세이브에 해당하는 행위 현재 작업 내용의 세이브 데이터가 로컬에 저장 push 로컬에 저장된 세이브 데이터를 github에 업로드하는 행위 커밋 시 주의사항 한 번에 하나의 논리적인 작업만을 커밋 꼼꼼한 커밋 메시지 작성 git commit mess..

[서버/Server] Apache VS Nginx 짧고 굵게 비교하기

2주에 걸쳐 서버 프로그램으로 Apache와 Nginx를 설치해서 사용해봤다. 두 가지 프로그램이 전체 웹 서비스의 반 이상을 차지할 정도로 폭넓게 사용된다고 하니 어떤 차이점이 있는지 궁금해졌다. Apache http 웹 서버의 대명사라고 불리는 아파치는 MPM(Multi Processing Module : 다중처리모듈) 방식으로 요청을 처리한다. 스레드/프로세스 기반 구조 스레드/프로세스 기반 구조는 기본적으로 한 개의 스레드가 한 개의 요청만을 처리하는 구조이다. 사용자가 늘어날수록 많은 스레드를 생성해 메모리나 CPU 소모가 증가한다. 대표적으로 prefork와 worker 방식이 있다. Prefork MPM 실행 중인 프로세스를 복제하여 처리하는 방식 각 서버 프로세스는 한 번에 하나의 요청만 ..