목록2025/02 (24)
개발자공부일기

멀티프로세스와 멀티스레드 멀티프로세스와 멀티스레드는 그림처럼 프로세스가 여러개냐 스레드가 여러개냐의 한 어플리케이션에 대한 처리방식의 차이이다. 멀티 프로세스멀티 프로세스는 운영체제에서 하나의 응용 프로그램에 대해 동시에 여러 개의 프로세스를 실행할 수 있게 하는 기술을 말한다. 보통 하나의 프로그램 실행에 대해 하나의 프로세스가 메모리에 생성되지만, 부가적인 기능을 위해 여러개의 프로세스를 생성하는 것이다. 멀티 프로세스 내부를 보면, 하나의 부모 프로세스가 여러 개의 자식 프로세스를 생성함으로서 다중 프로세스를 구성하는 구조이다. 한 프로세스는 실행되는 도중 프로세스 생성 시스템 콜을 통해 새로운 프로세스들을 생성할 수 있는데, 다른 프로세스를 생성하는 프로세스를 부모 프로세스(Parent Proce..
형상관리 (Configuration Management)구성 관리는 시스템의 서버, 애플리케이션 및 기타 환경 구성이 시간이 지나도 계속 알려지고 일관되며 신뢰할 수 있도록 하는 프로세스입니다. 모든 IT 시스템에는 소프트웨어 버전, 보안, 네트워킹 및 최적의 기능에 필수적인 기타 설정과 관련된 특정 구성이 있습니다. 구성 관리는 이러한 구성을 추적, 업데이트 및 유지 관리하여 시스템이 미리 결정된 기준에 따라 작동하고 변경 시에도 보안을 유지할 수 있도록 합니다. 시스템 성능과 물리적 및 기능적 특성의 일관성을 설정하고 유지합니다. 전체 수명 주기 전반에 걸쳐 시스템의 운영 정보, 설계 및 요구 사항을 고려합니다. 형상 관리가 중요한 이유형상 관리(Configuration Management)는 문서화..

LibuvLibuv 는 이벤트 루프를 기반으로 비동기 I/O를 지원하는 다중 플랫폼 C 라이브러리입니다 . libuv는 원래 Node.js를 위해 작성된 크로스 플랫폼 지원 라이브러리입니다 . 이벤트 기반 비동기 I/O 모델을 중심으로 설계되었습니다.라이브러리는 다양한 I/O 폴링 메커니즘에 대한 간단한 추상화보다 훨씬 더 많은 것을 제공합니다. '핸들'과 '스트림'은 소켓과 다른 엔터티에 대한 고수준의 추상화를 제공합니다. 또한, 특히 크로스 플랫폼 파일 I/O 및 스레딩 기능도 제공됩니다. 다음은 libuv를 구성하는 다양한 부분과 각 부분이 관련된 하위 시스템을 보여주는 다이어그램입니다.비동기 작업에 중요한 libuv 라이브러리입니다. libuv는 C++로 작성된, Node.js가 사용하는 비동기 ..

전송 제어 프로토콜(TCP)과 사용자 데이터그램 프로토콜(UDP)은 모두 전송 계층 프로토콜의 프로토콜입니다. TCP는 연결 지향 프로토콜인 반면 UDP는 UDP/IP이라고 하는 인터넷 프로토콜의 일부입니다. TCP와 달리 신뢰할 수 없고 연결 없는 프로토콜입니다. 이 글에서는 TCP와 UDP의 차이점에 대해 설명합니다.전송 제어 프로토콜(TCP)이란 무엇입니까?TCP(Transmission Control Protocol) 는 인터넷 프로토콜의 주요 프로토콜 중 하나입니다. 이는 안정적인 전송 서비스를 제공하는 데 사용되는 애플리케이션 계층과 네트워크 계층 사이에 있습니다. 이는 네트워크를 통해 서로 다른 장치 간의 메시지 교환을 돕는 통신을 위한 연결 지향 프로토콜입니다. 컴퓨터 간에 데이터 패킷을 전..
데이터 무결성이란 무엇인가요?데이터 무결성이란 조직의 데이터가 라이프사이클의 어느 시점에서든 정확하고 완전하며 일관성이 있다는 것을 보장하는 것입니다. 데이터 무결성 유지에는 손실, 유출 및 손상으로부터 조직의 데이터를 보호하는 것이 포함됩니다.데이터 무결성이 중요한 이유는 무엇인가요?데이터 무결성은 전통적인 제품 지향 비즈니스의 품질 관리와 유사하며 원자재가 의도한 용도에 올바르고 안전하며 적합한지 확인합니다. 조직은 라이프사이클 전반에 걸쳐 데이터를 완전하고 정확하며 일관되고 안전하게 유지해야 합니다. 데이터 무결성은 모든 데이터 요소를 변경, 절단 또는 손실 없이 그대로 유지하고, 분석을 왜곡하고 일관된 테스트 조건을 위태롭게 할 수 있는 변경을 방지하여 이러한 완전성을 촉진하는 데 도움이 됩니다...
ER 모델 (Entity-Relationship Model)ER 모델은 데이터베이스 설계를 위한 개념적 모델로, 현실 세계의 데이터를 엔터티(Entity), 속성(Attribute), 관계(Relationship)로 표현합니다.엔터티(Entity): 데이터를 저장할 대상 (예: 학생, 강의, 고객 등)속성(Attribute): 엔터티가 가지는 정보 (예: 학생의 학번, 이름, 나이 등)관계(Relationship): 엔터티 간의 연관성 (예: 학생이 강의를 수강한다)이를 시각적으로 표현한 것이 ER 다이어그램(ERD)이며, 데이터베이스를 설계할 때 많이 사용됩니다.ER diagram은 테이블 간의 관계를 나타내는 도표입니다. 각 테이블의 이름, 컬럼의 PKey, FKey, Unique Key 여부, 필드..

그래프 와 트리는 컴퓨터 과학에서 객체 간의 관계를 나타내는 데 사용되는 두 가지 기본 데이터 구조입니다. 몇 가지 유사점을 공유하지만, 서로 다른 애플리케이션에 적합하게 만드는 뚜렷한 차이점도 있습니다.그래프와 트리의 차이점Graph란 무엇인가요?그래프 데이터 구조는 노드 (정점이라고도 함)와 이를 연결하는 에지 의 모음입니다 . 노드는 사람, 장소 또는 사물과 같은 엔티티를 나타낼 수 있는 반면 에지는 이러한 엔티티 간의 관계를 나타냅니다.그래프는 소셜 네트워크 , 교통 네트워크 , 컴퓨터 네트워크 등 다양한 실제 시스템을 모델링하는 데 사용됩니다 . Tree란 무엇인가?트리 데이터 구조는 에지로 연결된 노드로 구성된 계층적 데이터 구조입니다. 각 노드는 여러 자식 노드를 가질 수 있지만 부모 노드는..

Node.js Event Loop흔히 Node.js를 싱글 스레드 논 블로킹이라고 한다. Node.js는 하나의 스레드로 동작하지만 I/O 작업이 발생한 경우 이를 비동기적으로 처리할 수 있다. 분명 하나의 스레드는 하나의 실행 흐름만을 가지고 있고 파일 읽기와 같이 기다려야 하는 작업을 실행하면 그 작업이 끝나기 전에는 아무것도 할 수 없어야만 한다. 그러나 Node.js는 하나의 스레드만으로 여러 비동기 작업들을 블로킹 없이 수행할 수 있고 그 기반에는 이벤트 루프가 존재한다. Nods.js 속 이벤트 루프이벤트 루프는 Node.js가 여러 비동기 작업을 관리하기 위한 구현체다. console.log("Hello World")와 같은 동기 작업이 아니라 file.readFile('test.txt', ..