분류 전체보기
-
키바나(kibana) - 소개 및 설치, 엘라스틱서치 연동Infra 2023. 11. 30. 20:00
주제 11: 키바나(Kibana) 소개 및 설치, 엘라스틱서치와의 연동 11.1 키바나(Kibana)란? 키바나는 엘라스틱서치의 데이터를 시각화하고 탐색할 수 있는 오픈 소스 데이터 대시보드입니다. 엘라스틱서치에 저장된 데이터를 동적인 차트와 그래프 등 다양한 형태로 시각화할 수 있으며, 또한 로그 데이터의 실시간 모니터링, 탐색, 분석도 가능합니다. 11.2 키바나 설치하기 키바나도 엘라스틱서치와 마찬가지로 Docker를 이용하여 간편하게 설치할 수 있습니다. 11.2.1 키바나 Docker 이미지 실행 아래 명령을 통해 키바나 Docker 이미지를 실행합니다. docker run -d --name kibana -p 5601:5601 -e "ELASTICSEARCH_HOSTS=http://localho..
-
엘라스틱 서치 2 - 인덱스 생성과 관리Infra 2023. 11. 27. 20:00
주제 2: 인덱스 생성과 관리 2.1 인덱스란? 인덱스는 엘라스틱서치에서 데이터를 저장하는 핵심 단위입니다. RDBMS의 데이터베이스에 해당하는 개념으로, 하나의 인덱스는 공통된 특성을 가진 문서들의 집합입니다. 각 문서는 고유한 ID를 가지며, 문서 내부의 필드는 각각의 데이터를 저장합니다. 2.2 인덱스 생성하기 엘라스틱서치에서 인덱스를 생성하는 방법은 다음과 같습니다. curl -X PUT "localhost:9200/my_index?pretty" 위 명령은 'my_index'라는 이름의 인덱스를 생성합니다. 여기서 localhost:9200은 엘라스틱서치 서버의 주소이며, my_index는 생성할 인덱스의 이름입니다. 성공적으로 인덱스가 생성되면, 엘라스틱서치는 아래와 같은 JSON 응답을 반환합..
-
엘라스틱서치 1 - 소개 및 설치Infra 2023. 11. 23. 20:00
주제 1: 엘라스틱서치(Elasticsearch) 소개 및 설치 1.1 엘라스틱서치(Elasticsearch)란? 엘라스틱서치는 오픈 소스, 분산형 검색 및 분석 엔진입니다. 텍스트, 숫자, 위치 기반 정보 등 다양한 종류의 데이터를 실시간으로 저장, 검색, 분석할 수 있습니다. 대용량의 데이터를 빠르고 실시간으로 처리할 수 있으며, 이는 로그 또는 트랜잭션 데이터와 같은 시간성 데이터에 특히 유용합니다. 1.2 엘라스틱서치의 주요 기능 분산형 검색 엔진: 대량의 데이터를 저장하고, 검색 및 분석할 수 있습니다. 실시간 분석: 데이터가 색인됨과 동시에 실시간으로 분석이 가능합니다. 분산 데이터 처리: 여러 서버에 데이터를 분산 저장하고 처리할 수 있습니다. 1.3 엘라스틱서치 설치하기 엘라스틱서치는 Do..
-
자바 - DIP (Dependency Inversion Principle, 의존 관계 역전 원칙)Java 2023. 11. 22. 22:19
핵심개념: '의존 관계 역전 원칙(Dependency Inversion Principle, DIP)은 고수준 모듈이 저수준 모듈에 의존하면 안되며, 둘 다 추상화에 의존해야 한다는 원칙입니다.'의존 관계 역전 원칙(Dependency Inversion Principle, DIP)은 소프트웨어의 구조를 결정하는 중요한 원칙 중 하나입니다. 이 원칙은 고수준의 모듈이 저수준의 모듈에 직접 의존하는 대신, 중간에 추상화된 인터페이스를 두어 의존성을 역전시키는 것이 이 원칙의 핵심입니다.자세한 설명:DIP는 소프트웨어 컴포넌트간의 의존 관계를 조절하는 원칙입니다. 이 원칙은 추상화와 구체화 사이의 관계를 역전시키는 것을 목표로 합니다. 일반적으로 고수준의 모듈이 저수준의 모듈에 의존하는 관계를 가지지만, DIP..
-
자바 - ISP (Interface Segregation Principle, 인터페이스 분리 원칙)Java 2023. 11. 22. 22:15
핵심개념: '인터페이스 분리 원칙(Interface Segregation Principle, ISP)은 클래스는 자신이 사용하지 않는 인터페이스는 구현하지 않아야 한다는 원칙입니다.' 인터페이스 분리 원칙(Interface Segregation Principle, ISP)은 클라이언트가 필요하지 않은 메서드에 의존하지 않아야 함을 의미합니다. 이 원칙은 클라이언트가 필요로 하는 메서드만을 가진 인터페이스를 구현하도록 권장하며, 이를 통해 불필요한 의존성을 줄이고 모듈 간의 결합도를 낮출 수 있습니다. 자세한 설명: ISP는 '클라이언트에게 필요한 것만 제공해야 한다'는 원칙입니다. 클라이언트가 사용하지 않는 메서드에 의존하면, 그 메서드에 변화가 생겼을 때 클라이언트에도 영향을 줄 수 있습니다. 따라서 ..
-
자바 - LSP (Liskov Substitution Principle, 리스코프 치환 원칙)Java 2023. 11. 22. 22:12
핵심개념: '리스코프 치환 원칙(Liskov Substitution Principle, LSP)은 서브타입은 언제나 기반이 되는 타입으로 교체될 수 있어야 한다는 원칙입니다.' 리스코프 치환 원칙(Liskov Substitution Principle, LSP)은 상속 관계에 있는 클래스들 사이에서 이루어져야 하는 행동의 규약을 정의합니다. 이 원칙은 상속을 사용할 때 부모 클래스와 자식 클래스 사이의 관계를 규정합니다. 기본 클래스가 들어갈 자리에 하위 클래스를 넣어도 프로그램이 정상적으로 작동해야 한다는 원칙입니다. 자세한 설명: LSP는 하위 타입이 상위 타입의 역할을 완전히 대체할 수 있어야 함을 의미합니다. 이는 상위 타입의 인스턴스를 하위 타입의 인스턴스로 대체해도 프로그램의 의미가 변경되지 않..
-
자바 - SRP (Single Responsibility Principle, 단일책임원칙)Java 2023. 11. 22. 22:09
핵심개념: '단일 책임 원칙(Single Responsibility Principle, SRP)은 하나의 클래스가 하나의 책임만을 가지며, 그 책임이 변경되는 이유는 하나만 있어야한다는 원칙입니다.' 단일 책임 원칙(Single Responsibility Principle, SRP)은 소프트웨어 설계 원칙 중 하나로, 각 클래스가 담당하는 책임이 하나여야 한다는 원칙입니다. 이 원칙은 클래스를 변경할 필요가 생기는 이유가 하나여야 함을 의미합니다. 즉, 하나의 클래스가 너무 많은 책임을 가지게 되면 그 클래스의 복잡도는 증가하게 됩니다. 자세한 설명: SRP의 기본 아이디어는 클래스를 수정해야 하는 이유가 단 한 가지만 있어야 한다는 것입니다. 클래스가 두 가지 이상의 책임을 가지고 있다면, 이 책임들은..
-
자바 - OCP (Open Closed Principle / 개방-폐쇄원칙)Java 2023. 11. 22. 21:32
핵심개념 '자바 OCP(Open Closed Principle)는 소프트웨어 엔터티가 개방되어야 하며(확장 가능), 동시에 닫혀 있어야 한다(수정 불가)는 원칙을 의미합니다.' 자바 OCP(Open Closed Principle)는 솔리드(SOLID) 디자인 원칙 중 하나로, 소프트웨어의 설계와 아키텍처에 있어 중요한 역할을 합니다. 이 원칙을 이해하고 적용하면, 유지보수와 확장성이 좋은 소프트웨어를 만드는 데 도움이 됩니다. 자세한 설명 자바 OCP는 '개방-폐쇄 원칙'이라고도 하며, 이는 소프트웨어 구성 요소(클래스, 모듈, 함수 등)가 새로운 기능에 대해 '개방적'이어야 하며, 기존 코드의 수정 없이 기능을 추가하거나 변경할 수 있어야 한다는 원칙을 의미합니다. 동시에, 기존 코드는 '폐쇄적'이어야..