반응형

분류 전체보기 509

DMA (Direct Memory Access)

What? DMA(Direct Memory Access)는 주변 장치들이 메모리에 직접 접근해서 읽고 쓸 수 있게 해주는 기능입니다. 아래 그림에서 Without DMA를 보시면 CPU가 항상 개입하여 메모리에 접근합니다. 이러한 방식을 PIO(Programmed Input/Output)이라고 합니다. 아래 그림에서 Processor WITH DMA를 보시면, CPU 개입 없이 메모리에 접근할 수 있습니다. 메모리에 접근할 때에는 DMA 컨트롤러에게 요청을 보내서 접근합니다. When? 많은 데이터 입출력이 있는 경우에 DMA를 사용하면 CPU에 부담을 주지 않을 수 있습니다. DMA가 없다면 데이터 입출력 처리가 끝날 때까지 CPU는 대기해야 합니다. How? 참고 블로그 : https://m.blog..

IT/Others 2022.05.11

Spring boot와 MariaDB를 JPA로 연동

Dependency를 추가합니다. 저는 gradle에서 진행했습니다. maven은 이곳에서 찾아서 넣어주시면 됩니다. implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.mariadb.jdbc:mariadb-java-client' // MariaDB DB의 설정 정보를 추가합니다. application.yaml에 아래와 같이 넣어줍니다. spring: datasource: url: jdbc:mariadb://localhost:3306/[DB 이름] driver-class-name: org.mariadb.jdbc.Driver username: root password: 1234 jpa: open-..

IT/Spring 2022.03.20

DBeaver 설치 및 MariaDB와 연동

환경 Mac OS M1 DBeaver 설치 https://dbeaver.io/download/ DB 연동 MariaDB를 선택합니다. 필요한 정보를 입력해줍니다. DBeaver 만져보기 데이터베이스, 테이블, 컬럼 등을 만들어 줍니다. 쿼리로 데이터베이스, 테이블, 컬럼 만들기 더보기 create database 'database_name'; create table 'table_name' ( orderNo INT NOT NULL AUTO_INCREMENT, name VARCHAR(20), address VARCHAR(50), price INT, PRIMARY KEY(orderNo) ) ENGINE=innoDB; 데이터 넣기 하단의 row 추가를 눌러서 데이터를 넣어줍니다. [계속 추가할 예정] 끝.

IT/Others 2022.03.13

인터넷 네트워크

인터넷 네트워크에 대해서 알아보겠습니다. 인터넷 통신을 위해서 크게 아래 4가지에 대해서 알아보겠습니다. IP TCP, UDP PORT DNS IP 클라이언트와 서버가 통신하기 위해서는 인터넷의 여러 노드들을 거쳐야 합니다. 노드들은 IP 주소를 보고 다른 노드로 패킷을 보내줍니다. 패킷을 그냥 보내기에는 몇 가지 문제가 발생합니다. 1. 서버가 켜져있지 않은데 패킷을 보낸다면 2. 패킷이 중간에 유실된다면 3. 패킷의 순서가 엉망이라면 4. 한 IP에서 여러 애플리케이션이 동작중이라면 이러한 문제는 TCP, PORT로 해결할 수 있습니다. TCP, UDP TCP (Transmission Control Protocol) TCP는 4계층에서 전송 계층에 해당합니다. 애플리케이션에서 보낸 메시지를 Socke..

IT/Others 2022.02.18

컨테이너 가상화

컨테이너 가상화 개요입니다. 하이퍼바이저 (Hypervisor) Virtual Machine Manager (VMM) 다수의 운영체제를 동시에 실행하기 위한 논리적인 플랫폼 Native (bare metal) 과 Hosted 타입 가상화 OS Virtualization Container Virtualization Host OS 위에 Guest OS 전체를 가상화 VMWare, VirtualBox 시스템 부하가 많고 느림 Host OS의 리소스를 적게 사용하며, 필요한 프로세스만 실행 최소한의 라이브러리와 도구만 포함 Container의 생성 속도가 빠름 용어 Image : 설정 값들을 모아 놓은 것 Container : Image를 실체화한 것 Dockerfile : Docker Image를 생성하기 위..

IT/Spring Cloud 2022.02.05

모니터링 - Prometheus, Grafana

앞으로 구현할 Prometheus와 Grafana 개요입니다. Prometheus Metrics를 수집하고 모니터링 및 알람에 사용되는 오픈소스 애플리케이션 Pull 방식의 구조와 다양한 Metrics Exporter 제공 시계열 DB에 Metrics 저장 -> 조회 가능 Grafana 데이터 시각화, 모니터링 및 분석을 위한 오픈소스 애플리케이션 시계열 데이터를 시각화하기 위한 대시보드 제공 요약 프로메테우스 & 그라파나 설치 프로메테우스 설정 파일 그라파나에 프로메테우스 연동 다운로드 프로메테우스 (2.33.1) : https://prometheus.io/download/ 그라파나 (8.3.4) : https://grafana.com/grafana/download 소스코드 프로메테우스 promethe..

IT/Spring Cloud 2022.02.04

모니터링 - Micrometer

앞으로 구현할 Micrometer 개요입니다. Micrometer JVM 기반의 애플리케이션의 Metrics를 제공 Prometheus 등의 다양한 모니터링 시스템 지원 Timer 짧은 지연 시간, 이벤트의 사용 빈도를 측정 시계열로 이벤트의 시간, 호출 빈도 등을 제공 @Timed 제공 요약 설정 정보 추가 테스트 소스코드 user-service pom.xml에 dependency를 추가합니다. io.micrometer micrometer-registry-prometheus application.yml에 설정 정보(info, prometheus, metrics)를 추가합니다. # Actuator 설정 management: endpoints: web: exposure: include: refresh, h..

IT/Spring Cloud 2022.02.04

Zipkin - 분산 추적

앞으로 구현할 Zipkin 개요입니다. Zipkin은 마이크로서비스와 같은 분산 환경에서 데이터를 추적하기 위한 시스템 (오픈소스)입니다. 요청이 시작되면 Trace ID가 생성되고 이 ID로 분산 추적을 합니다. Span - 하나의 요청에 사용되는 작업의 단위 - 64 bits unique ID Trace - 트리 구조로 이루어진 Span set - 하나의 요청에 대한 같은 Trace ID 발급 Spring Cloud Sleuth - Spring Boot Application을 Zipkin과 연동 - 요청 값에 따른 Trace ID와 Span ID 부여 요약 Zipkin 설치 Zipkin과 Sleuth 설정 테스트 소스코드 설치 curl -sSL https://zipkin.io/quickstart.sh..

IT/Spring Cloud 2022.01.30

CircuitBreaker

앞으로 구현할 CircuitBreaker 개요입니다. CircuitBreaker는 장애가 발생하는 서비스에 반복적인 호출이 되지 못하도록 차단하는 기능을 합니다. 대신에 다른 기능을 수행하게 하여 장애를 회피합니다. 현상 어떤 현상인지 확인해보겠습니다. 사용자는 자신이 주문한 상품을 조회하려는 상황입니다. 그런데 Order 서비스에 문제가 발생한 상황입니다. Postman에서는 아래와 같이 500이 나타나고 있습니다. 애플리케이션에서 보니, 'UnknownHostException'이 발생했습니다. 요약 Resilliance4J Dependency 추가 CircuitBreaker Config 수정 CircuitBreaker 추가 소스코드 User Service에서 Order Service를 호출하고 있습니..

IT/Spring Cloud 2022.01.30
반응형