본문 바로가기

Etc.

(8)
[APM] Message Queue 1. Message Queue란? 1-1) 프로세스 혹은 프로그램이 데이터를 서로 교환할 때 사용하는 방법이다. - 서로 다른 프로세스 사이에 메시지를 교환할 때 AMQP(Advanced Message Queuig Protocol)이라는 프로토콜을 사용한다. (AMQP: 시스템 간 메시지를 교환하기 위해 공개 표준으로 정의한 프로토콜) - AMQP를 사용하면 다른 벤더 사이에 메시지를 전송하는 것이 가능해진다. 1-2) 메시지를 임시로 저장하는 간단한 버퍼이다. - 메시지 전송 시 producer 컴포넌트가 메시지를 메시지큐에 추가한다. 해당 메시지는 consumer 컴포넌트가 메시지를 검색하고, 이를 사용해 특정 작업을 수행할 때 까지 메시지큐에 저장한다. - 각 메시지는 하나의 소비자에 의해 한번만 ..
TCP / UDP TCP와 UDP는 Transport Layer의 대표적인 프로토콜이다. Transport Layer는 End Point간 신뢰성 있는 데이터 전송을 담당하는 계층인데, 2가지 역할을 한다. 1) 신뢰성: 데이터를 순차적, 안정적으로 전달 2) 전송: 포트 번호에 해당하는 프로세스에 데이터를 전달 만약 Transport Layer가 없다면? 1. 데이터의 순차 전송이 원활이 진행되지 않을 수 있다. ex. 1-2-3 데이터가 2-3-1로 전달 2. 송수신자간의 데이터 처리 속도 차이로 흐름 문제가 생길 수 있다. 3. 네트워크의 문제로 혼잡 문제가 발생할 수 있다. 결과로 데이터의 손실이 발생할 수 있다. ex) Hi my name is Kyuri ➡️ Hi name ri 그래서 필요한 것이 TCP, Tr..
[DB] 프로시저 (procedure) 1. 프로시저의 개념 프로시저란 일련의 쿼리를 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합이다. PL/SQL을 통해서 만들어지는 서브 프로그램이라고 생각하면 되는데, PL/SQL은 상용 관계형 데이터베이스 시스템인 오라클 DBMS에서 SQL 언어를 확장하기 위해 사용하는 컴퓨터 프로그래밍 언어 중 하나이다. 호출을 통해서 실행되어 SELECT, INSERT, UPDATE, DELETE 명령을 실행한다. 프로시저는 백단과 구별되어 있기 때문에 프로시저의 쿼리문을 수정한다고해도 백엔드에는 영향을 주지 않는다. (실제로 사용해보니 함수와 유사하다.) 2. 프로시저의 구성 구성 요소 DECLARE [선언부] 프로시저의 명칭, 변수와 인수, 데이터 타입 정의 BEGIN / END [시작/종료부] 프로시저의 시..
[APM] APM 스카우터 1. Scounter란? 현재 오픈소스로 공개되어있는 APM이다. 한국 개발자들이 개발한 것이라 문서를 이해하기 쉽고, 커뮤니티도 잘 되어있는 편이다. 2. Scouter의 구성 Agent: 데이터를 모아 Collector에 전달한다. Host Agent: OS의 CPU, Memory, Disk 등의 성능 정보 전송 Java Agent (Tomcat Agent): 실시간 서비스 성능 정보, Heap Memory, Thread 등 JVM 성능 정보 및 Tomat WAS 성능 수집 및 전송 MariaDB Agent Server(Collector): Agent에서 받은 지표들을 모아서 저장하고, 클라이언트에서 요청하면 수집한 데이터를 내려준다. 지표들은 UDP로 올수도 있고, TCP로 올 수도 있다. Clie..
OSI 7계층 1. OSI 7계층 배경 인터넷을 통한 효율적인 데이터 송수신이라는 이슈를 해결하기 위해서는 아주 많은 분양의 전문가가 필요하며, 이들간의 상호 논의로 만들어진 다양한 약속이 필요하다. 문제를 영역별로 나눠서 해결하다보니 여러 프로토콜이 만들어졌으며, 계층구조를 통해서 상호간에 관계를 맺게 되었다. 2.1. 물리계층 데이터를 전기적 신호로 변환해서 주고받는 기능을 하는 계층이다. 사용되는 통신 단위는 비트로 1,0만 나타내진다. 대표적인 장비로는 케이블, 허브 등이 있다. ex. Coax, Fiber 2.2. 데이터 링크 계층 물리 계층을 통해 송수신되는 정보의 오류와 흐름을 관리하여 안전한 정보 전달을 수행할 수 있도록 도와준다. 크게 두가지의 역할이 있는데 데이터를 보내고, 안전하게 도착할 수 있도록..
TCP/IP 소켓 프로그래밍 기초 지식 1. 파일 디스크립터란? 시스템으로부터 할당 받은 파일 또는 소켓에 부여된 정수를 의미한다. 파일 또는 소켓을 생성할 때마다 운영 체제는 해당 파일 또는 소켓에 부여된 숫자 하나를 건네준다. 파일 디스크립터를 파일 핸들이라고도 한다. 리눅스에서는 소켓도 하나의 파일로 취급하기 때문에 파일을 생성하건, 소켓을 생성하건 파일 디스크립터가 반환된다. 마찬가지로 윈도우에서도 시스템 함수의 호출을 통해서 파일을 생성할 때 핸들이라는 것을 반환한다. 하지만 윈도우에서는 리눅스와 달리 파일 핸들과 소켓 핸들을 구분하고있다. 2. 소켓의 타입 소켓의 타입이란 소켓의 데이터 전송 방식을 의미하는데, 이 정보를 socket 함수의 두번째 인자로 전달해야한다. 1. 연결지향형 소켓 특성: 중간에 데이터가 소멸되지 않고 목적..
소켓프로그래밍이란 1. 소켓이란? 사전적으로 구멍, 연결, 콘센트 등의 의미를 가진다. 전기를 필요로하는 디바이스 또는 부품들이 전기를 공급받을 수 있도록, 전기 공급 인프라 환경에 연결할 수 있게 만들어진 연결부라고 볼 수 있다. 네트워크 프로그래밍에서도 비슷한 의미로 사용된다. 프로그램이 네트워크에서 데이터를 송수신할 수 있도록, "네트워크 환경에 연결할 수 있게 만들어진 연결부"이다. = 데이터를 송수신할 수 있는 연결부 주로 OSI 7 Layer의 네번째 계층인 TCP상에서 동작하는 소켓을 사용하며, 이를 TCP 소켓이라고 한다. ( UDP를 사용하면 UDP 소켓 ) 2.1 클라이언트 소켓과 서버 소켓 소켓을 통해 데이터 통신을 위한 연결을 만들기 위해서는, 연결 요청을 보내는지 또는 요청을 받아들이는지에 따라 소..
WAS란? 웹 서버 (WEB) 이란? 작성된 html 페이지 등을 네트워크망에 종속되지 않고, 웹 서비스를 할 수 있도록 하는 어플리케이션 1. 소프트웨어의 웹 서버: 웹 브라우저 클라이언트로부터 HTTP 요청을 받아들이고, HTML 문서와 같은 웹 페이지에서 흔히 찾아볼 수 있는 자료 콘텐츠에 따라 HTTP에 반응하는 컴퓨터 프로그램. 2. 하드웨어의 웹 서버: 위 기능을 제공하는 컴푸터 프로그램을 실행하는 컴퓨터 ex. Apache, Nginx 사용 목적: 정적인 데이터를 처리하는 서버이다. 이미지나 단순 html 파일과 같은 리소스를 제공하는 서버에 좋다. 웹 서버 (WAS, Web Applicatino Server) 란? 웹 서버 + 웹 컨테이너 인터넷 상에서 HTTP를 통해 사용자 컴퓨터나 장치에 애플리케..