728x90
반응형

Study 66

[Git] git stash 사용해보기

git stash는 아직 완료하지 않은 작업을 스택에 잠시 저장할 수 있도록 하는 명령어입니다. git stash를 통해서 아직 완료하지 않은 작업을 commit하지 않고 나중에 다시 가져와서 마무리 지을 수 있습니다. git stash 현재 진행중인 작업들 스택에 저장하기 git stash apply 'stash@{0}' 스택에 저장된 0번 항목 적용 ('stash@{번호}' 번호 지정을 안할 경우 기본은 마지막 항목) git stash drop 'stash@{0}' 스택에 저장된 0번 항목 삭제 git stash pop 'stash@{0}' 스택에 저장된 0번 항목 적용 및 삭제 git stash branch 새로운 브랜치 생성 후 pop git stash clear 스택에 저장된 모든 항목들 비우기

Study/Git 2022.03.13

[Git] git log에 대해서 자세히 알아보기

git log에서 유용하게 쓰는 몇 가지의 옵션들을 정리해 보려고 합니다. git log -2 최근 2개 커밋을 출력합니다. git log -p 각 커밋마다 변경사항과 함께 출력합니다. git log --stat 통계와 함께 출력합니다. git log --oneline 로그를 한 줄로 출력합니다. git log -S git log -S First 파일의 변경 사항에서 First가 들어가있는 커밋의 로그 출력합니다. git log --grep git log --grep First 커밋 메시지에 First가 들어가있는 커밋의 로그 출력합니다.

Study/Git 2022.03.10

[Git] 브랜치 병합하기(branch merge)

브랜치를 병합하는 두가지 방법을 소개하도록 하겠습니다. main branch에 dev branch를 merge 시키도록 하겠습니다. merge merge같은 경우에는 branch의 history를 남기기 때문에 협업 시 branch history가 필요할 경우 사용합니다. git branch dev dev branch를 생성해줍니다. git switch dev dev branch로 이동후에 개발을 진행하여 push까지 진행해줍니다. git switch main main branch로 이동해줍니다. git merge dev main branch에 dev branch를 merge시켜 합쳐줍니다. rebase rebase는 history를 깔끔하게 하면서 병합하고 싶은 경우 사용합니다. (많은 branch를 ..

Study/Git 2022.03.09

시간 복잡도란?

시간복잡도 시간 복잡도란 알고리즘을 구성하는 명령어들이 문제를 해결하는데 걸리는 시간을 뜻합니다. Big-O 표기법 Big-O표기법은 알고리즘의 시간 복잡도를 나타내는 표기법입니다. O(1) (Constant) 입력 데이터의 크기와 관계없이 항상 일정한 시간이 걸리는 알고리즘을 뜻합니다. O(log₂ n) (Logarithmic) 입력 데이터의 크기에 비례하여 처리시간이 증가하는 알고리즘을 뜻합니다. O(n) (Linear) 입력 데이터의 크기에 비례해 처리 시간이 증가하는 알고리즘을 뜻합니다. O(n log₂ n) (Linear-Logarithmic) 데이터가 늘어날수록 처리시간이 log 배수만큼 더 증가하는 알고리즘을 뜻합니다 O(n²) (Quadratic) 데이터가 늘어날수록 처리시간이 급수적으로 ..

Study/알고리즘 2022.01.29

Git Flow

git flow는 git으로 형상관리를 할 경우 브랜치를 효율적으로 관리하기 위해 사용하는 브랜치 전략입니다. 프로젝트 규모가 커지면 관리하기가 굉장히 용이해지는 장점때문에 git flow를 사용하는 이유입니다. git flow는 총 5가지 브랜치로 나누어집니다. master, develop, feature, release, hotfix 로 이루어져 있습니다. 브랜치 마다의 역할은 feature : 기능을 구현을 담당하는 브랜치입니다. develop : 개발을 진행하는 브랜치입니다. release : 개발된 애용을 배포하기 위해서 준비하는 브랜치입니다. hotfix : 배포된 코드에서 발생한 버그를 수정하는 브랜치입니다. master : 최종적으로 배포되는 브랜치입니다. 아래 사진은 git flow를 설..

Study/Git 2022.01.27

웹 동작 방식

1,2. 사용자가 웹 브라우저를 통해 찾고 싶은 웹 페이지의 URL 주소를 입력합니다. 3. 사용자가 입력한 URL 주소 중에서 도메인 네임 부분을 DNS 서버에서 검색합니다. 4. DNS 서버에서 해당 도메인 네임에 해당하는 IP 주소를 찾아 사용자가 입력한 URL 정보와 함께 전달합니다. 5,6. 웹 페이지 URL 정보와 전달받은 IP 주소는 HTTP 프로토콜을 사용하여 HTTP 요청 메시지를 생성합니다. 이렇게 생성된 HTTP 요청 메시지는 TCP 프로토콜을 사용하여 인터넷을 거쳐 해당 IP 주소의 컴퓨터로 전송됩니다. 7. 도착한 HTTP 요청 메시지는 HTTP 프로토콜을 사용하여 웹 페이지 URL 정보로 변환됩니다. 8. 웹 서버는 도착한 웹 페이지 URL 정보에 해당하는 데이터를 검색합니다. ..

Study/Network 2022.01.26

이벤트 루프(Event Loop)란?

자바스크립트 엔진은 Memory Heap과 Call Stack으로 구성되어 있습니다. 자바스크립트는 싱글 스레드 기반 언어여서 한 번에 하나의 작업을 처리합니다. 이말은 즉 Call Stack이 하나라는 뜻 입니다. Call Stack에서 실행된 비동기 함수는 Web API를 호출하며, Web API는 콜백함수를 Callback Queue에 넣어줍니다. Memory Heap은 프로그래밍을 할 때 선언된 변수나 함수 등이 담겨 메모리 할당이 일어나는 곳 입니다. Call Stack은 코드가 실행될 때 보관되는 영역입니다.(Stack LIFO(Last In First Out) 선입후출 구조) Callback, Task Queue 는 비동기로 실행된 콜백 함수가 보관되는 영역입니다.(Queue FIFO(Fir..

Study/JavaScript 2022.01.24

모놀로식 / 마이크로서비스 아키텍처

모놀로식 아키텍처 (Monolithic Architecture) 장점 1. 어떤 기능이든 개발되어있는 환경이 같아서 복잡하지않다. 2. 보다 쉽게 고가용성 서버 환경을 만들 수 있다. 3. End-to-End 테스트가 용이하다. 단점 1. 배포 시간이 오래 걸린다. 2. scale-out이 어렵다. 3. 부분 장애가 전체 서비스의 장애로 확대될 수 있다. 4. 서비스 변경이 번거롭고, 유지보수가 힘들다. 마이크로서비스 아키텍처 (MicroService Architecture) 장점 1. 서비스 별 개별 배포가 가능하여 배포 속도가 빠릅니다 2. 확장성이 용이합니다 3. 특별 장애가 전체 서비스로 확장될 가능성이 적습니다. 단점 1. API를 사용하기 때문에 통신비용이나 대기시간이 늘어날 수 있습니다. 2..

Study/용어 2022.01.12

TDD 방법론이란?

TDD TDD란 Test-Driven-Development의 줄임말 이며, 테스트 주도 개발이란 의미입니다. 테스트를 먼저 만들어놓고 테스트를 통과하기 위해 프로세스를 짜는 것을 뜻합니다. 장점 1. 튼튼한 객체 지향적인 코드를 짤 수 있습니다. 2. 예외상황에서의 유연성과 재설계 시 시간을 단축시킬 수 있습니다. 3. 디버깅 시간을 단축시킬 수 있습니다. 단점 1. 생산성이 저하됩니다. 2. 처음부터 완벽한 설계는 어려울 수 있습니다. 3. 버그 검출 능력 감소 또는 코드의 품질이 저하될 수 있습니다. 4. 테스트 비용이 증가할 수 있습니다.

Study/용어 2021.12.22
728x90
반응형