PHP란? PHP(PHP : Hypertext Preprocessor)는 C언어를 기반으로 만들어진 서버 측에서 실행되는 서버 사이드 스크립트 언어이다.PHP는 동적 웹페이지를 쉽고 빠르게 만들 수 있도록 해주는 데 그 목적이 있다. PHP로 작성된 코드를 HTML 코드 안에 추가하면, 웹 서버는 해당 PHP 코드를 해석하여 동적 웹 페이지를 생성한다.더욱 자세한 내용은 PHP 가이드 문서를 참고한다. 장점 :→ 대부분의 OS와 웹 서버에서 지원한다.→ 텍스트 처리에 특화되어 있어 HTML 문서 처리에 적합하다.단점 :→ 소규모의 사이트에는 적합하지만 복잡한 사이트에는 효율적이지 못하다.→ 보안에 안전하지 못한 언어 구조를 가진다. PHP의 동작원리다음 그림은 PHP의 동작 원리를 간략하게 보여준다. ..
분류 전체보기
Apache NiFi란 Apachi NiFi는 데이터 플로우 자동화 및 관리를 위한 워크플로우 오케스트레이션 도구이다. 쉽게 말해서, 다양한 데이터 소스로부터 데이터를 가져오고, 가공한 후, 원하는 목적지로 전송하는 역할을 한다. 위 이미지의 구성에 대한 특징은 아래와 같다. Web ServerNiFi의 웹 UI를 제공하는 서버사용자는 웹 UI를 통해 데이터 플로우를 관리 및 모니터링할 수 있다Flow ControllerNiFi의 핵심 관리 엔진데이터 플로우를 조정하며, Processor 및 데이터 저장소를 제어한다.Processor데이터 ETL(수집, 변환 ,전송 등)의 역할을 수행하는 핵심 컴포넌트이다.여러 개의 Processor가 연결되어 데이터 흐름을 처리한다(예: HTTP 요청 처리, 데이터 ..

프론트엔드 개발을 하다 보면 웹팩(Webpack)이라는 도구를 마주하게 된다. 하지만 처음 접하는 사람들에게는 "대체 이게 왜 필요한 거지?"라는 의문이 들 수 있다. 이번 글에서는 웹팩이 무엇인지, 왜 사용하는지, 번들링 전략등에 대하여 알아보겠다.웹팩(WebPack)이란? 웹팩은 다양한 자원(파일)들을 번들(bundle)로 묶어주는 모듈 번들러(module bundler)이다. 즉, 여러 개의 파일(JS, CSS, 이미지 등)을 하나로 합쳐서 최적화하는 역할을 한다.단순히 파일을 하나로 묶는 것뿐만 아니라 코드 스플리팅, 트리 셰이킹, 로더 등을 활용하여 프로젝트의 성능을 최적화할 수도 있다. 웹팩을 사용해야하는 이유 웹 개발이 발전하면서 프로젝트의 규모도 커졌고, 사용하는 파일과 라이브러리도 많..
메세지 큐(Message Queue) 란? MSA(Micro Service Architecture)구조에서는 하나하나의 애플리케이션끼리 통신을 해야 하거나 한 API에서 다른 API로 데이터를 넘겨야 하는 순간들이 생긴다. 메세지 큐는 프로세스 혹은 프로그램간 데이터 교환할 때 사용하는 통신 방법 중에 하나로, 메세지 지향 미들웨어(Message Oriented Middleware : MOM)을 구현한 시스템을 의미한다.Pub/Sub(Publish-Subscribe) 이란? Pub/Sub (Publish-Subscribe)는 메시지 큐와 유사한 비동기 메시징 패턴으로, 생산자(publisher)가 메시지를 보내고, 구독자(Subscriber)가 해당 메시지를 받아 처리하는 구조를 가진다.간단하게 본..
Apache Airflow란? Apache Airflow는 데이터 파이프라인을 자동화하고 관리하는 워크플로우 오케스트레이션 도구이다. 쉽게 말해서, 어떤 작업을 언제, 어떤 순서로 실행할지 결정하고 관리해주는 도구라고 보면 된다.만약 ETL(Extract, Transform, Load) 작업을 수행해야 하는 데이터 엔지니어라면, Airflow를 사용하면 데이터를 일정 시간마다 자동으로 불러오고 가공하고 저장할 수 있다. 개발자가 수동으로 작업할 필요 없이, Airflow가 지정한 일정에 맞춰 실행할 수 있다.Apache Airflow의 플러그인 리스트는 여기에서 확인 가능하고, 이외에 자세한 내용은 여기에서 확인할 수 있다.Airflow를 왜 사용할까?데이터 파이프라인을 운영할 때, 대부분 다음과 같..
무중단 배포란? 무중단 배포(Zero Downtime Deployment)는 애플리케이션을 배포하는 동안 서비스의 가용성을 유지하면서 사용자 경험에 영향을 주지 않는 배포 방식이다. 일반적으로 서비스 중단 없이 새로운 애플리케이션 버전을 릴리스하기 위해 여러 배포 전략이 사용됩니다. 그중 블루그린 배포는 간단하면서도 효과적인 방식으로 널리 사용된다. 블루그린 배포 방식 이외에도 여러가지 방식이 있는데, 이 게시글에 자세하게 나와있으니 참고하면 좋을 것 같다. 블루/그린 배포 방식을 선택한 이유대중적인 배포 방식 세가지를 비교해 보자 배포 전략특징롤링 배포기존 환경에서 하나씩 새로운 버전으로 업데이트. 일부 인스턴스는 기존 버전, 일부는 새 버전을 동시에 실행.- 점진적 배포로 리소스 사용 효율적- 대..
이전 게시글 [.NET] - 서버 모니터링 및 데이터 시각화(Prometheus, Jaeger, Grafana) 구현 - 1개요 이 글에서는 OpenTelemetry를 통해 시스템에서 발생하는 트레이스와 메트릭 데이터를 수집하고, 이 를 Prometheus와 Jaeger로 각각 관리한 후, Grafana를 활용해 데이터를 시각화하는 과정을 설명하codingdoit.tistory.com 4. Jaeger 체크 Jaeger가 열려있는 포트를 타고 들어가서 확인을 하면, 위와 같이 데이터를 확인할 수 있다. 이제 Grafana의 설정만 진행하면 된다. 5. Grafana 설정5-1. Prometheus Connection수집된 데이터를 기반으로 Grafana를 통해 두 개의 데이터를 종합한 대시보..
개요 이 글에서는 OpenTelemetry를 통해 시스템에서 발생하는 트레이스와 메트릭 데이터를 수집하고, 이 를 Prometheus와 Jaeger로 각각 관리한 후, Grafana를 활용해 데이터를 시각화하는 과정을 설명하려고 한다.이 과정은 시스템 성능의 전반적인 모니터링과 더불어 API 요청의 병목 현상을 효과적으로 분석하는 데 필수적인 역할을 한다.OpenTelemetry를 통해 .NET Core 앱에서 발생하는 Metric 및 Trace를 수집 및 변환하여 Prometheus 및 Jaeger에 exporting 한다.이후 exporting된 데이터들을 Grafana를 통해 시각화하여 직관적으로 추적 가능하게 한다. 전체적인 흐름은 아래와 같다. 1. NET CORE App 구성1-1. N..