CS & Network/컴퓨터 네트워크(Network)

[네트워크 network] Shared VPC란? (GCP Shared VPC)

현재 진행 중인 프로젝트는 GCP 환경에서 App Engine을 사용해서 운영이 되고 있습니다. 프로젝트는 GCP A Project와 GCP B Project가 동시에 운영이 되고 있는데요. B Project가 A Project의 Cloud sql을 공유해서 사용해야 하는 상황에 놓였습니다. 처음 계획은 A Project VPC Connector를 만들고 B Project에서 app.yaml 파일에 A Project의 VPC Connector를 사용하도록 설정해서 deploy 하기였는데요. 결론적으로는 실패했습니다. 이유는 여기 스택오버플로우에 나와있듯이 App Engine끼리 VPC Connector만을 이용해서 CloudSQL을 사용하는 방식은 지원하지 않기 때문이었죠. 삽질을 하다가 CTO님한테 다..

2022.07.31 게시됨

CS & Network/운영체제(OS) & 컴퓨터구조

[운영체제(OS)] 스와핑(swapping), 가상메모리(virtual memory) 란?

저번 시간에는 페이징과 세그멘테이션 방법에 대해서 살펴봤습니다. 모두 메모리를 어떻게 효율적으로 쓸 것이냐에 대한 고민을 바탕으로 나온 방법들이었는데요. 그렇다면 페이징 + 세그멘테이션 방법을 사용하면 모든 프로세스를 효율적으로 실행시킬 수 있을까요? 정답은 아닙니다. 바로 메인 메모리 크기가 한정되어있기 때문인데요. 이번 시간에는 메모리 크기가 다 찼을 때, 프로세스를 실행시킬 수 있도록 도와주는 스와핑(swapping) 방법과, 메모리 크기보다 크기가 큰 프로세스를 실행시킬 수 있게 해주는 가상 메모리(virtual memory)에 대해서 알아보려고 합니다. 0. 스와핑(swapping) 이란? swap이란 단어는 두 개의 값을 맞바꾼다, 교환한다 의 의미를 가지고 있습니다. 운영체제에서도 의미가 비..

2022.03.03 게시됨

CS & Network/운영체제(OS) & 컴퓨터구조

[운영체제(OS)] 페이징(Paging), 세그멘테이션(Segmentation) 이란?

저번 시간까지는 메모리 관리 방법 중 페이징에 대해서 알아보았습니다. 간단하게 정리해볼까요? 프로세스를 일정 크기인 페이지 단위로 잘라서 메모리에 적재하는 방법을 페이징이라고 하는데요. 페이지는 일정한 간격으로 자르는 단위였습니다. 하지만 기준 없이 일정한 간격으로 자르는 페이징 말고도 기준을 세워서 논리적인 내용 단위인 세그먼트로 자를 수 있는 세그멘테이션 방법이 있습니다. 이번 시간에는 세그멘테이션에 대해서 알아보려고 합니다. 0. 세그멘테이션이란? 세그멘테이션은 하나의 프로세스를 세그먼트의 집합이라고 생각합니다. 세그먼트란? 네트워크TCP/IP 4 계층을 공부할 때도 세그먼트라는 단어가 사용되었었는데요. 전송 계층에서 신뢰할 수 있는 통신을 구현하기 위해 header를 위에서 받은 데이터에 붙입니..

2022.02.28 게시됨

CS & Network/컴퓨터 네트워크(Network)

[네트워크 network] TCP 3-way HandShake & 4-way HandShake

최근 복습을 하면서 TCP와 UDP의 차이점에 대해 공부했습니다. 간단히 정리해보자면. TCP는 연결형 서비스로 3 핸드 세이킹 과정을 통해 연결을 설정하여 가상 회선 방식을 사용해서 순서와 신뢰성을 보장하지만 속도가 느리고, UDP는 비연결형 서비스로 신뢰성이 떨어지고 데이터그램 방식을 사용합니다. 수신 여부 따위는 확인하지 않아 속도가 빠르죠. 이번 시간에는 TCP가 연결을 할 때 사용하는 3 핸드 셰이킹(3-way HandShake), 연결을 해제할 때 사용하는 4 핸드 셰이킹(4-way HandShake)이 무엇인지 한 번 자세히 정리해보려고 합니다. TCP 3방향 핸드셰이크(TCP 3-way HandShake)란? TCP는 안전한 통신을 위해 통신 시작 전, 사전 연결 작업을 진행합니다. 목적지..

2022.02.21 게시됨