본문 바로가기

분류 전체보기

(72)
[알게 된 것] 서버 <-> 클라 연결 유지 시 서버 부담에 대해 목차서버와 클라의 연결 유지Heartbaet 감지와 서버측 부담그럼 서버측 동시 접속자 수 관리를 왜하는가?  서버와 클라의 연결 유지 클라의 연결을 Accept하고 세션 상태를 관리하는 Stateful 방식의 서버의 경우 클라와의 연결이 완료되면 연결이 끊어질 때까지 연결이 유지된다.  grpc에 대해 학습하며 클라와 연결을 유지하면서 자동으로 heartbeat를 체크하는 grpc를 보며 궁금한점이 생겼다. 클라가 아무런 패킷을 보내지 않고 연결만 유지하는 것만으로 서버에 큰 부담이 될까?  ✅ 결론부터 말하면❌ 부담 거의 없음.👉 이유는 둘 다 비동기 I/O 기반 구조이기 때문에,패킷이 오지 않는 한 스레드나 CPU를 점유하지 않기 때문  📦 실제 서버 자원 소비 요약CPU🟢 매우 낮음 (거의 ..
[네트워크/개념] gRPC(remote procedure call) 목차1. grpc란 무엇인가2. grpc의 장점3. rpc의 핵심 목표4. 예제 코드5. 마치며  🤔 grpc란 무엇인가회사에서 grpc라는 개념을 접하면서 흥미를 가지게 되었다. 그래서 따로 시간을 내서 공부한 내용을 정리해보려한다. gRPC는 Google에서 개발한 고성능, 오픈소스 원격 프로시저 호출(Remote Procedure Call, RPC) 프레임워크입니다. 간단히 말해서, 네트워크를 통해 다른 서버의 함수를 마치 로컬 함수처럼 호출할 수 있게 해주는 기술입니다.  gRPC에 대한 정의는 위와 같다. Remote Procedure Call. 말그대로 서버에 작성된 함수(프로시저)를 클라에서 선언한 함수마냥 쓸수 있게 해주는 기술이다. 물론 실제로 서버의 코드를 클라에서 쓸수 있다는 이야기..
[알게 된 것] 도커 사용 시 WSL, Hyper-V 필요한 이유 목차1. WSL, Hyper-V와 가상화 기술2. 도커 등 컨테이너 기술 사용시 설치하는 이유      WSL, Hyper-V와 가상화 기술 리눅스용 윈도우 하위 시스템(Windows Subsystem for Linux, WSL)은 윈도우 10과 윈도우 11에서 네이티브로 리눅스 실행 파일(ELF)을 실행하기 위한 호환성 계층이다. - 위키백과 정리하자면, 윈도우에서 리눅스 명령어 및 시스템 콜을 사용하기위한 환경을 제공하는 기술이다.    WSL과 VM은 대체 무슨 차이인가?  WSL은 기존의 VM방식과 달리 호스트OS에 가상의 OS를 띄우는 방식이 아니다. 그 차이를 정리하자면 아래와 같다.    VM은 리눅스 OS자체를 가상화 기술을 통해 호스트 OS와 별개의 Guest OS를 만들어 직접 리눅스 ..
[시스템 프로그래밍] 프로그램과 프로세스 목차1. 들어가며2. 프로그램과 프로세스3. 프로세스 메모리4. 스택프레임5. 마치며  들어가며 프로그램과 프로세스는 시스템 프로그래밍 과목에서 초반부에 다뤄지는 내용이며 면접 질문으로도 종종나오는 주제이다. 오늘은 프로그램과 프로세스, 그리고 프로세스 메모리와 스택프레임의 개념까지 더하여 프로그램의 전체적인 흐름을 정리해보려고 한다.  프로그램과 프로세스더보기 프로그램이란 무엇일까? 프로그램의 사전적 정의는 어떤 작업을 하기위해 해야할 일들을 순서대로 나열한 것이다. 단순히 파일 시스템에 존재하는 실행파일을 의미한다. ex) Window 기준 .exe 파일       그렇다면 프로세스란 무엇인가? 위키백과에서는 프로세스에 대해 다음과 같이 정의하였다.  프로세스(process)는 컴퓨터에서 연속적으로 ..
[데이터베이스] - 인덱스에 대한 이모저모 목차1. 들어가며2. 인덱스란?    - 랜덤 I/O, 순차 I/O    - 인덱스에 대하여3. B-Tree 인덱스    - 이진 탐색 트리(Binary Search Tree)    - B-Tree    - B-Tree를 이용한 데이터 접근    - B-Tree 인덱스의 정렬 및 스캔 방향    - B+Tree4. 마치며  들어가며 SSAFY CS 스터디에서 공부한 내용을 블로그에 따로 정리해보려고 한다. 처음으로 정리하게 될 내용은 데이터베이스 중에서도 인덱스에 관한 내용이다. 인덱스에 대해서는 어느정도 알고는 있었지만 본격적으로 학습할 기회는 없었던 것 같다. 이번 기회에 인덱스에 대해 정리해보려한다. 인덱스란?더보기* 랜덤 I/O, 순차 I/O  인덱스에 대해 설명하기 전에 인덱스를 왜 쓰는가에 대..
[Network] - 네트워크 계층 목차1. 들어가며2. 네트워크 계층?3. 네트워크 4계층4. 마치며     들어가며  네트워크 계층은 이전에 학교 수업시간에도 들었던 내용이지만 블로그에 따로 정리해놓은 글이 없어서 이번 기회에 정리를 해놓으려고 한다.    네트워크 계층?더보기  인터넷 protocol suite는 인터넷에서 정보(패킷)을 주고받는 일종의 규약인 프로토콜들의 집합이다. 가장 유명한 것이 OSI 7 layer, 그리고 TCP/IP 4계층 모델 두가지 이다. TCP/IP 4계층을 좀 더 세분화해서 설명하는 것이 OSI 7 layer이므로 결국 둘다 같은 개념을 설명하고 있다고 보면 된다.           OSI 7 layer에서는 애플리케이션 계층을 3개로 세분화하고 Network Access(data link) 계층을 ..
[알게 된 것] - async, await 비동기 제어에 대하여 목차1. 들어가며2. async, await3. 동기 함수와 어떻게 다른가?4. 마치며     들어가며 ASP.Net Core, Node.js 등으로 서비스를 만들게 되면 async, await 키워드를 사용하여 비동기 제어를 하는 것은 필수불가결하다. 이번 글에서는 async, await에 대한 개념과 헷갈리는 개념들을 정리해 보려고 한다.      Async, Await더보기https://learn.microsoft.com/en-us/dotnet/csharp/asynchronous-programming/ Asynchronous programming - C#An overview of the C# language support for asynchronous programming using async, a..
[컴투스 서버 캠퍼스 2기] - ASP.net Core 학습정리 목차1. 들어가며2. ASP.Net core?3. ASP.Net Core에 대하여4. DI(의존성 주입)5. 비동기 제어 Async, Await6. sqlKata7. CloudStructures8. 마치며      들어가며 이번 컴투스 서버 캠퍼스 1, 2주차에는 asp .net core를 이용하여 api 서버를 개발하기 위해 학습을 하였다. asp .net core는 C#을 이용하여 api 서버를 만들기 위해 사용하는 framework로 자바의 spring framework과 유사한 점이 많다고 느꼈다. 이번 글에서는 asp .net core에 대해 정리해보겠다. 여기에 작성된 글은 mark down 문법으로 작성한 파일을 티스토리 블로그에 다시 정리한 내용이다. 아래의 깃허브 링크에서 정리된 문서를 ..