목록Common (30)
나만의 작은 도서관

주의사항: 해당 글은 개인적인 이해를 위해 작성된 글이며, 잘못된 정보가 포함되어 있을 수도 있습니다.목차블로킹(Blocking) 방식과 논블로킹(Non-Blocking) 방식블로킹(Blocking) 방식과 논블로킹(Non-Blocking) 방식블로킹/논블로킹 동작 방식블로킹/논블로킹 방식의 문제동기(Synchronous) 방식과 비동기(Asynchronous) 방식동기(Synchronous) 방식과 비동기(Asynchronous) 방식동기/비동기 동작 방식비동기 방식의 사용이 멀티쓰레드 환경임을 의미하지는 않는다.두 방식의 조합동기-블로킹 방식동기-논블로킹 방식비동기-블로킹 방식비동기-논블로킹 방식참고 자료블로킹(Blocking) 방식과 논블로킹(Non-Blocking) 방식 블로킹(Blocking) ..

프레임워크(Framework) 프레임워크는 소프트웨어 개발을 체계화하고 효율적으로 진행하기 위해 제공되는 구조적 환경을 의미한다. 개발자가 특정 애플리케이션을 개발할 때 필요한 기본 구성 요소, 라이브러리, 규칙을 제공하여, 반복적인 작업을 줄이고 고품질의 소프트웨어를 빠르게 개발할 수 있도록 돕는다. 대표적인 프레임워크로는 다음과 같다. 프레임워크의 종류와 예시웹 프레임워크 : ASP.NET, Django, Flask, Spring, Angular, React.모바일 프레임워크: React Native, Flutter, Xamarin.데스크톱 프레임워크: WPF(.NET Framework), Electron, QT.게임 개발 프레임워크: Unity, Unreal Engine.데이터 처리 및 머신러닝 프..

메모리 컴퓨터에 연산을 처리하는 CPU만 존재하게된다면, 제대로 된 사용이 불가능 할겁니다. 왜냐하면 처리를 해야할 데이터를 기억하는 장치가 존재하지 않기 때문이죠. 물론 CPU내부에 레지스터라는 메모리가 존재하기는 합니다만, 레지스터는 기억 장치에서 가져온 데이터를 임시로 저장하는 장치일 뿐 데이터를 영구적으로 저장하는 역할이 아닙니다. 따라서, 계산을 위한 여러 데이터들을 기억하는 "메모리"가 필요한 것입니다. 대표적으로 CPU가 접근하는 메모리 RAM이 있습니다.RAM (Random Access Memory)RAM은 Random Access Memory의 약자로, 임의 접근 기억 장치라는 의미를 가지고 있습니다. 하지만, 이러한 의미는 잘못되었습니다. 그 이유는 RAM과 구분되는 ROM종류의 메모리..

CPU란?CPU는 Central Processing Unit의 약자로, "중앙 처리 장치"라는 의미를 갖고 있으며, 컴퓨터 시스템의 중심적인 구성 요소입니다. CPU는 컴퓨터 내의 모든 연산 및 제어 기능을 수행하거나, 다른 하드웨어 장치들과의 상호작용을 조율합니다. 이를 통해 컴퓨터는 사용자 명령을 처리하고 프로그램을 실행할 수 있습니다. CPU의 기본 구성 요소CPU의 기본 구성 요소는 크게 ALU, 레지스터, 제어 장치(또는 제어 유닛) 3가지로 이루어져 있습니다. 이 3가지는 CPU내부에 존재하는 버스를 통해 서로 데이터를 교환하며 연산을 처리하게 됩니다. 산술 논리 장치 또는 ALU (Arithmetic Logic Unit)트랜지스터가 집적된 논리회로로 이루어진 장치입니다. 이름에서 볼 수 있..

유의사항: 해당 글은 공부한 내용을 정리하는 용도이므로, 수정이 필요할 경우 내용의 수정이 있을 수 있습니다.protoBufprotoBuf는 Protocol Buffer의 약자이며, Google에서 개발한 직렬화 데이터 구조이다. 효율적인 데이터 교환을 위해 설계되었으며, 특히 네트워크 통신과 저장 시스템에서 널리 사용됩니다. 이런 protoBuf는 여러 가지 데이터 구조 중 하나이기 때문에 자주 접해본 XML, JSON과 방식과 유사하다고 볼 수 있습니다. 직렬화 (serialization)와 역직렬화( Deserialization )protoBuf가 직렬화 데이터 구조인만큼 우선 직렬화와 반대되는 개념인 역직렬화가 무엇이지 알아야합니다.직렬화는 객체 또는 데이터 구조를 연속적인 바이트 스트림(byte..

개요 이번에 바이트 배열을 이용한 TCP 통신을 배우던 중 빅 엔디안 방식과 리틀 엔디안 방식이 있다는 것을 알게 되었다. 자주 보던 용어들이니 이번 기회에 글로 정리하였다. 상위 바이트와 하위 바이트 하나의 데이터는 여러 개의 연속된 바이트로 분리되어 저장된다. 이때 데이터를 구성하는 바이트 중 서로 다른 두 바이트가 저장하고 있는 값을 비교했을 때, 값이 큰 바이트를 상위 바이트, 작은 바이트를 하위 바이트라고 부른다. 즉 정리하면 아래와 같다. 상위 바이트(High Byte): 다중 바이트 값(데이터)에서 큰 값을 가져 높은 위치(상위 비트)에 있는 바이트하위 바이트(Low Byte): 다중 바이트 값(데이터)에서 낮은 값을 가져 낮은 위치(하위 비트)에 있는 바이트이때 가장 높은 위치에 있는 바이..