목록전체 글 (211)
And Brain said,
오늘은 오픈소스 데이터 수집, 처리, 전송 도구 Logstash에 대해 알아보자. Logstash는 다양한 소스에서 데이터를 수집하고, 필터링, 가공하여 Elasticsearch 등의 저장소에 전송한다. Logstash는 크게 입력(input), 필터(filter), 출력(output) 3가지 파이프라인으로 구성되어있는데 각각은 다채롭게 활용 가능하여 강력한 확장성을 가진다. input, filter, output 설정들에 대해 예제를 통해 알아보자. 기본적으로 conf.d 폴더 내에 설정 파일들을 둬서 설정한다. input { beats { port => 5044 host => "0.0.0.0" }} input 설정을 이런 식으로 해준다면 모든 IP에서 오는 데이터들을 5044 포트로 들어오게 한다. ..
오늘은 Spring Boot의 Profile 설정을 통해, 쉽게 환경 별로 설정을 구분할 수 있도록 해보자. 바로 시작하자. 자, 이렇게 설정하면 된다. 매우 쉬우니 여기서 끝. 부연설명을 해보자면, 일단 이 프로젝트는 Config Server가 따로 존재하여, Config가 프로젝트 외부에 존재한다. 하여 yml 파일에 --- 식으로 다른 환경에 맞춰 Config Server 경로를 잡아주기 위해 Config Server의 IP를 변경해주었다. 기본적으로 Spring boot를 실행하면 프로필은 default로 실행된다. 하지만, 이런 식으로 설정해준다면 각각의 환경에 따라 변화무쌍하게 프로젝트를 운용할 수 있게된다. dev, prod 같은 것들은 예시이므로, 본인이 원하는 프로필네임으로 설정해주어도 ..
오늘은 괄시받던 다트(Dart)가 성장하여 변모한 아름다운 크로스플랫폼 앱 프레임워크 Flutter에 대해 알아보자. 기본적인 Flutter의 특징은 Hot reload 기능을 사용하여 애플리케이션 개발 및 디버깅 시간을 단축할 수 있고 쉽고 간편하게 디자인을 구현할 수 있다. 또한 네이티브 수준의 성능을 제공하면서 다양한 플랫폼을 지원한다. 대표적으로 Android, iOS, 웹, Windows, macOS 및 Linux와 같은 다양한 플랫폼을 지원한다. 마지막으로 Flutter는 오픈소스 프로젝트로, 개발자들은 커뮤니티에서 지원을 받을 수 있다. (Flutter의 기본 개념에 관해 더 배우고 싶다면 아래 링크로) https://theworldaswillandidea.tistory.com/138 Flu..
오늘은 서버의 최전방에서 홀로 고군분투하는 엔진엑스(NGINX)에 대해 알아보고 엔진엑스를 통해 로드밸런싱(Load Balancing)하는 예제까지 같이해보도록 하자. NGINX 대규모 웹 서비스에서 자주 사용되는 Nginx는 고성능 웹 서버, 리버스 프록시, 로드 밸런서 등의 기능을 제공하는 오픈 소스 소프트웨어다. Nginx는 가벼운 구조와 높은 성능을 자랑한다. 이는 Nginx가 단일 프로세스 또는 단일 쓰레드로 처리하는 것이 아니라, 이벤트 기반의 아키텍처를 채택하여 다중 쓰레드를 사용하기 때문이다. 또한, Nginx는 다양한 플러그인을 지원하여 확장성이 높다. Nginx는 리버스 프록시로도 사용되는데, 리버스 프록시는 클라이언트와 서버 사이에서 중계 역할을 수행하며, 클라이언트 요청을 서버에 ..
다들 알다시피 Elasticsearch는 대용량 데이터의 실시간 검색과 분석에 탁월한 검색엔진이다. 오늘은 이 Elasticsearch의 핵심 아키텍처 클러스터(Cluster)와 노드(Node)를 알아보고 실습까지 해보자. IT에서 클러스터와 노드는 Elasticsearch에서만 사용되는 개념은 아니고 예시를 Elasticsearch로 드는 것뿐이다. 먼저 Node는 분산 처리 시스템의 독립적인 단위로, 노드가 곧 하나의 Elastic 서버다. Cluster내에 이러한 노드를 여러 개 둔다면 각 노드는 데이터를 복제하고 검색 요청을 분산 처리하며, 또 클러스터 내 다른 노드들과 통신 가능하여 클러스터의 성능과 안정성을 보장한다. 노드는 Master-eligible 노드와 Data 노드, Ingest 노드..