git stash 명령어 사용하기
·
개발도구/Git
git stash 란? 자신이 어떤 작업을 하던 중에 다른 요청이 들어와 하던 작업을 멈추고 잠시 브랜치를 변경해야 할 일이 있다고 하자. 이때, 아직 완료하지 않은 일을 commit하는 것은 껄끄럽다. 이때와 같을때 git stash 명령어를 이용하여 작업을 잠시 저장할 수 있다. git stash는 아직 마무리하지 않은 작업을 스택에 잠시 저장할 수 있도록 하는 명령어로서 이를 통해 아직 완료하지 않은 일을 commit하지 않고 나중에 다시 꺼내와 마무리할 수 있다. git stash 명령을 사용하면 working directory 에서 수정한 파일들만 저장한다. stash란 아래에 해당하는 파일들을 보관해두는 장소 이다. 1. 하던 작업 임시로 저장하기 git stash 위의 명령어를 통해 새로운 ..
로드 밸런싱(Load Balancing)
·
CS 공부/네트워크
요즘 시대에는 웹사이트에 접속하는 인원이 급격히 늘어나게 되었다. 따라서 이 사람들에 대해 모든 트래픽을 감당하기엔 1대의 서버로는 부족하다. → Scale-up / Scale-out ? 대응 방안으로 하드웨어의 성능을 올리거나(Scale-up) 여러대의 서버가 나눠서 일하도록 만드는 것(Scale-out)이 있다. 하드웨어 향상 비용이 더욱 비싸기도 하고, 서버가 여러대면 무중단 서비스를 제공하는 환경 구성이 용이하므로 Scale-out이 효과적이다. 로드 밸런싱이란? 이때 여러 서버에게 균등하게 트래픽을 분산시켜주는 것이 바로 로드 밸런싱이다. 둘 이상의 CPU or 저장장치와 같은 컴퓨터 자원들에게 작업을 나누는 것이다. 로드 밸런싱은 분산식 웹 서비스로, 여러 서버에 부하(Load)를 나누어주는 ..
Blocking/Non-blocking & Synchronous/Asynchronous
·
CS 공부/네트워크
Synchronous(동기)와 Blocking(블로킹)은 무언가를 기다리게 하고, Asynchronous(비동기)와 Nonblocking(논블로킹)은 기다리지 않고 바로 바로 처리된다. 하지만, 분명한 차이점이 존재한다.  Blocking/NonBlocking(블로킹/논블로킹) Blocking/NonBlocking은 호출되는 함수가 바로 리턴을 하느냐 마느냐가 관심사이다  Nonblocking : 호출되는 함수가 바로 리턴한다. 호출되는 함수가 제어권을 바로 호출하는 함수에게 넘겨주어 다른 일을 할 수 있도록 한다.제어권은 호출하는 함수에게 있다.Blocking : 호출되는 함수가 자신의 작업을 완료할 때까지 리턴하지 않는다.호출되는 함수는 자신의 작업을 완료하면, 호출하는 함수에게 제어권을 넘겨주므로 ..
[TCP] 흐름제어/혼잡제어
·
CS 공부/네트워크
흐름제어란? 송신측과 수신측의 데이터 처리 속도 차이를 해결하기 위한 기법 수신측이 Packet을 지나치게 많이 받지 않도록 조절하는 것 기본 개념은 수신측이 송신측에게 현재 자신의 상태를 Feedback 한다는 점 수신측이 송신측보다 데이터 처리 속도가 빠르면 문제없지만, 송신측의 속도가 빠를 경우 문제가 생긴다. 수신측에서 제한된 저장 용량을 초과한 이후에 도착하는 데이터는 손실될 수 있으며, 만약 손실 된다면 불필요하게 응답과 데이터 전송이 송/수신 측 간에 빈번히 발생한다. 이러한 위험을 줄이기 위해 송신측의 데이터 전송량을 수신측에 따라 조절해야한다. → 해결방법? 1. Stop and Wait : 매번 전송한 패킷에 대해 확인 응답을 받아야만 그 다음 패킷을 전송하는 방법 2. Sliding ..
[TCP] 3 way handshake & 4 way handshake
·
CS 공부/네트워크
TCP(Transmission Control Protocol)란? TCP는 네트워크 계층 중 전송 계층에서 사용하는 프로토콜로서, 장치들 사이에 논리적인 접속을 성립하기 위하여 연결을 설정하여 신뢰성을 보장하는 연결형 서비스 이다. 인터넷 상에서 데이터를 메세지의 형태(세그먼트 라는 블록 단위)로 보내기 위해 IP와 함께 사용하는 프로토콜이다. TCP와 IP를 함께 사용하는데, IP가 데이터의 배달을 처리한다면 TCP는 패킷을 추적 및 관리한다. 3-way handshaking과정을 통해 연결을 설정하고, 4-way handshaking을 통해 연결을 해제한다. 흐름제어 및 혼잡제어를 제공한다. 2022.06.26 - [CS 공부/네트워크] - [TCP] 흐름제어/혼잡제어 높은 신뢰성을 보장한다. 대신,..
메모리(Memory)란?
·
CS 공부/운영체제
메모리란? 메인 메모리, RAM을 뜻한다. 프로그램 실행 시 필요한 주소, 정보들을 저장하고 가져다 사용할 수 있게 만드는 공간. 즉, 작업을 위해 사용되는 공간. 메모리 관리가 필요한 이유는? 각각의 프로세스는 독립된 메모리 공간을 갖고, 운영체제 혹은 다른 프로세스의 메모리 공간에 접근할 수 없는 제한이 걸려있다. 단지, 운영체제만이 운영체제 메모리 영역과 사용자 메모리 영역의 접근에 제약을 받지 않기 때문에 운영체제에서 메모리를 관리한다. 또한, 멀티프로그래밍 환경으로 변화하면서 한정된 메모리를 효율적으로 사용해야 했고, 운영체제가 이를 어떻게 관리하는지에 대한 관리방법이 중요해졌다. 운영체제의 역할 실행파일이 로더에 의해 메모리에 올라오고 운영체제는 이 실행파일을 메모리에 어느 부분에 올릴지 결정..