전체 글
-
[IPC] IPC(Inter-Process Communication)란?Computer Science 2023. 12. 28. 16:31
IPC IPC는 Inter-Process Communication의 약자로 프로세스 간 통신을 말한다. 프로세스는 독립된 실행 객체로서 서로 독립되어 있기 때문에 다른 프로세스의 영향을 받지 않는다. 대신 서로 간 통신을 위해 커널 영역에서 IPC라는 내부 프로세스 간 통신을 제공한다. 커널 운영체제 자체도 소프트웨어이기 때문에 메모리에 올려야 사용할 수 있다. 하지만 메모리 공간의 제약으로 운영체제 중 필요한 부분 만을 메모리에 올려놓고 그렇지 않은 부분은 필요할 때 메모리에 올려 사용하게 된다. 이때 메모리에 상주하는 운영체제의 부분을 커널이라고 한다. 보통은 운영체제라고 하면 커널을 말한다. 커널은 메모리에 상주하는 부분으로써 운영체제의 핵심적인 부분이다. 프로세스 VS 스레드 프로세스는 컴퓨터에서..
-
[NGINX] Nginx에 대해서Backend 2023. 12. 28. 14:46
Nginx는 높은 성능과 안정성, 그리고 현재 가장 많이 사용되고 있는 웹 서버이다. Apache같은 웹 서버와 비교하면 더 빠르고 가볍, 대규모 어플리케이션에 적합하다는 장점이 있다. 웹서버에 대해 알아보고, Apache와 비교하며 Nginx에 대해 알아보자! 웹 서버란? 웹 서비스의 구성요소로는 클라이언트, 웹서버, WAS, DB를 들 수 있다. 클라이언트 서비스를 이용하기 위해 네트워크를 통해 요청을 보내는 주체 웹 개발 영역에서 클라이언트는 보통 웹 브라우저 웹 서버 클라이언트 요청에 따라 정적 파일(HTML, CSS, JS, 이미지 등)을 응답하여 제공하는 소프트웨어 HTTP 프로토콜을 사용하여 클라이언트와 통신 Nginx, Apache, Node.js 등 WAS(Web Application S..
-
[Java] Record Class란?Programming Language/Java 2023. 12. 20. 03:21
Record란 데이터 클래스로 Java 14에 추가되어 Java 16에 정식으로 포함되었다. Record 클래스를 사용하기 이전에는 변경 불가능한 단순 데이터 클래스를 표현하고자 할 때 불편함이 있었다. 불변 데이터 객체 User가 있다고 해보자. public class User{ private final String name; private final String gender; public Person(String name, String gender) { this.name = name; this.gender= gender; } @Override public int hashCode() { return Objects.hash(name, gender); } @Override public boolean equ..
-
[Kafka] 아파치 카프카(Apache Kafka)에 대해서Computer Science/Database 2023. 12. 20. 01:49
어플리케이션에 사용자가 많아지며 트래픽이 증가하고, 요청에 대한 추가작업이 많아질 때 빠른 응답과 성능을 위해 메시지 큐를 사용할 수 있다. 메시지큐는 Producer와 Consumer 사이에서 메시지를 저장하고 전달하는 중간 장치로서, 비동기적으로 작동하며 큐에 담긴 메시지를 처리한다. 메시지큐를 포함하는 메시지 브로커로는 RabbitMQ, Redis, ActiveMQ, Kafka 등이 있다. 그 중 Kafka에 대해 알아보자! (메시지 큐를 모른다면 여기로) Kafka는 왜 생겼을까? Kafka(카프카)는 미국의 대표적인 비즈니스 인맥 소셜 네트워크 서비스인 링크드인(LinkedIn)에서 처음 출발한 기술이다. 링크드인 사이트가 성장하면서 발생했던 여러 이슈들을 해결하기 위해 개발되었다. 기존의 링크..
-
[메시지 큐] 메시지 큐에 대해서 (메시지 큐, MOM, 특징, 이점 등)Computer Science/Database 2023. 12. 10. 21:18
MOM (Message Oriented Middleware) MOM은 메시지 지향 미들 웨어로서 어플리케이션의 메시지를 중간에서 관리해주는 시스템이다. 여기서 미들웨어란 무엇일까? 개념적으로 미들웨어는 응용프로그램과 운영체제 사이에서 두 요소간 차이에 상관없이 통신을 가능하게 해주는 계층을 말한다. 분산 컴퓨팅 환경에서 미들웨어는 분산 네트워크에서 애플리케이션 또는 애플리케이션 구성요소 간에 통신을 가능하게 하는 소프트웨어라고 한다. 미들웨어는 다음과 같은 범주로 나눌 수 있다. RPC(Remote Procedure Call) 기반 미들웨어 ORB(Object Request Broker) 기반 미들웨어 MOM(Message Oriented Middleware) 기반 미들웨어 이 중 MOM은 분산 응용 프..