Data Engineering/Zeppelin

Data Engineering/Zeppelin

[Zeppelin] 앵귤러와 리액트

앵귤러앵귤러는 구글이 개발 및 유지보수하고 있는 오픈소스 웹 애플리케이션 프레임워크임.앵귤러는 앵귤러JS로 시작해, 2016년 완전히 재설계된 앵귤러가 등장했고, 이전 버전과 구별됨.앵귤러는 대규모 웹 애플리케이션을 구축하는 데 필요한 다양한 기능을 통합적으로 제공하는 프레임워크임.강력한 구조화와 일관성을 갖춤.현대의 리치 프론트엔드 애플리케이션을 만들기 위한 다양한 도구와 기능을 내장하고 있으며, 규모가 크고 복잡한 프로젝트에 적합함. 1. 프레임워크와 라이브러리의 차이앵귤러는 프레임워크로 리액트와 같은 라이브러리와는 근본적으로 다름.프레임워크는 애플리케이션의 구조와 설계를 규정하고, 개발자의 코드가 프레임워크의 규칙에 따라 동작하도록 강제함.반면, 라이브러리는 특정 기능을 제공하며 개발자가 필요에 따..

Data Engineering/Zeppelin

[Zeppelin] org.glassfish.hk2

org.glassfish.hk2org.glassfish.hk2 패키지는 Java EE (Enterprise Edition) 및 Jakarta EE 환경에서 사용되는 의존성 주입 프레임워크인 HK2(Hundred Kilobyte Kernel)를 제공하는 GlassFish 프로젝트의 일부임.HK2는 경량(헤드리스) 의존성 주입 시스템으로, GlassFish 애플리케이션 서버 및 다른 다양한 Java 기반 시스템에서 사용됨. 주요 개념과 기능1. 의존성 주입HK2는 객체 간의 의존성을 관리하며, 개발자가 직접 객체를 생성하거나 관리할 필요 없이 의존성을 주입하는 방식으로 애플리케이션을 구성할 수 있게 해줌.Java EE 환경에서 자주 사용되는 CDI와 비슷한 개념임. 2. 서비스 및 서비스 로케이터HK2에서는..

Data Engineering/Zeppelin

[Zeppelin] org.eclipse.jetty

org.eclipse.jettyorg.eclipse.jetty 패키지는 Jetty라는 경량화된 웹 서버와 서블릿 컨테이너의 구현체를 제공하는 Java 기반 라이브러리임.Jetty는 웹 애플리케이션, HTTP 서버, 그리고 다양한 네트워크 기반 애플리케이션을 개발하기 위해 널리 사용됨.경량화되고, 임베디드 방식으로 쉽게 통합할 수 있음.Spring Boot, Spark Java, Hadoop, Atlassian Jira 등의 프로젝트에 사용됨. Jetty의 특징1. 경량화Jetty는 메모리 및 리소스 사용량이 매우 적은 경량화된 서버임.2. 임베디드 사용 가능Jetty는 다른 애플리케이션 내에 내장(임베디드) 서버로 쉽게 통합할 수 있음.자바 애플리케이션 내에서 직접 실행할 수 있어 개발 중 서버 배포 ..

Data Engineering/Zeppelin

[Zeppelin] io.micrometer.core.instrument 패키지

io.micrometer.core.instrument 패키지io.micrometer.core.instrument 패키지는 Micrometer의 핵심 부분임.애플리케이션의 메트릭을 수집하고 관리하는 데 필요한 주요 인터페이스와 클래스를 제공함.Micrometer는 JVM 기반 애플리케이션에서 성능 모니터링과 메트릭 수집을 위한 라이브러리로, 다양한 모니터링 시스템과 연동할 수 있는 일관된 API를 제공함. Micrometer 소개Micrometer는 메트릭을 수집하고 이를 다양한 모니터링 시스템(Prometheus, Grafana, Datadog, New Relic 등)으로 전송하는 기능을 제공함.이를 통해 애플리케이션의 성능, 리소스 사용량, 이벤트 발생 등을 모니터링 하고 분석할 수 있음. io.mic..

Data Engineering/Zeppelin

[Zeppelin] Maven 기본 구조

Maven 기본 구조Maven은 자바 프로젝트의 빌드, 관리, 배포를 자동화하는 도구임.프로젝트 구조와 설정을 표준화하여 개발자들이 쉽게 프로젝트를 관리할 수 있도록 도와줌.Maven 프로젝트는 특정 디렉토리 구조와 설정 파일을 기반으로 동작함. 1. Maven 프로젝트의 디렉토리 구조Maven은 표준화된 디렉토리 구조를 사용함.기본 디렉토리 구조는 다음과 같음.my-app/ # 프로젝트의 루트 디렉토리│├── pom.xml # 프로젝트의 핵심 설정 파일├── src/ # 소스 파일을 포함하는 디렉토리│ ├── main/ # 애플리케이션의 메인 소스 코드│ │ ├── java/ ..

Data Engineering/Zeppelin

[Zeppelin] Maven

MavenMaven은 Java 프로젝트의 빌드 자동화 및 프로젝트 관리 도구로 널리 사용됨.특히 의존성 관리와 빌드 프로세스 표준화 측면에서 큰 이점을 제공함.Apache Software Foundation이 개발했으며, Java 뿐만 아니라 여러 다른 언어의 프로젝트도 관리할 수 있음.Maven의 핵심 목표는 프로젝트의 구조화와 라이브러리 의존성 관리를 자동화하여 개발 효율성을 극대화 하는 것임. Maven의 핵심 개념1. POM (Project Object Model)Maven의 중심이 되는 파일이 POM.xml임.각 프로젝트는 POM 파일을 통해 Maven의 동작을 정의함.POM 파일에는 프로젝트 정보, 빌드 설정, 의존성, 플러그인, 배포 설정 등이 포함됨. 주요 태그는 다음과 같음.- : PO..

Data Engineering/Zeppelin

[Zeppelin] SLF4J

SLF4JSLF4J(Simple Logging Facade for Java)는 자바에서 널리 사용되는 로깅 추상회 라이브러리임.SLF4J는 여러 로깅 프레임워크(java.util.logging, Logback, Log4j 등)와의 인터페이스 역할을 함.개발자가 특정 로깅 프레임워크에 종속되지 않고 유연하게 로깅 기능을 사용할 수 있게 해줌. SLF4J 주요 특징1. 로깅 프레임워크에 대한 추상화SLF4J는 여러 로깅 프레임워크를 지원하는 공통 인터페이스를 제공함.애플리케이션 코드에서 SLF4J를 사용해 로깅을 하면, 실제 로깅 프레임워크는 런타임에 결정됨.예를 들어, Logback을 사용하는 경우, SLF4J와 Logback을 연동할 수 있고, 만약 Log4j2로 바꾸고 싶다면 해당 바인딩만 교체하면 됨..

Data Engineering/Zeppelin

[Zeppelin] 아파치 제플린의 인터프리터

아파치 제플린의 인터프리터아파치 제플린은 데이터 분석 및 시각화를 위한 웹 기반의 협업 도구임.다양한 언어로 데이터 소스를 지원함.인터프리터는 제플린의 핵심적인 기능 중 하나로 여러 언어 및 도구와의 상호작용을 가능하게 하는 모듈임. 아파치 제플린의 인터프리터 개요인터프리터는 사용자가 Zeppelin 노트북에서 다양한 언어로 코드를 실행할 수 있도록 해줌.제플린은 여러 언어를 지원하며, 그 각각에 대해 인터프리터를 설정할 수 있음.예를 들어, Python, SQL, Scala, R 등 다양한 언어를 사용하는 코드가 한 노트북 안에서 실행될 수 있음. 주요 인터프리터 종류1. Spark 인터프리터Apache Spark와 연결하여 대규모 데이터 처리를 수행할 수 있음.Spark SQL, Spark Strea..

Data Engineering/Zeppelin

[Zeppelin] 아파치 제플린의 장단점

아파치 제플린의 장단점아파치 제플린은 데이터 분석과 시각화, 협업을 위한 웹 기반 노트북 도구임.다양한 장점을 제공하지만 특정 상황에서는 단점도 존재함. 아파치 제플린의 장점1. 다양한 프로그래밍 언어 지원아파치 제플린은 파이썬, 스칼라, SQL, R, 자바 등 다양한 언어를 지원하여 유연한 개발 환경을 제공함.이를 통해 사용자는 여러 언어를 한 노트북에서 혼합하여 사용할 수 있음.분석, 시각화, 데이터 처리 등을 통합된 환경에서 수행할 수 있음.예를 들어, 한 노트북에서 데이터 전처리를 파이썬으로 수행하고, SQL 쿼리를 통해 데이터베이스에서 데이터를 가져오며, 스칼라로 머신러닝 모델을 훈련할 수 있음. 2. Apache Spark와의 긴밀한 통합제플린은 Apache Spark와 강력하게 통합되어 있어..

Data Engineering/Zeppelin

[Zeppelin] Raft Consensus Algorithm

Raft Consensus Algorithm 개요Raft는 분산 시스템에서 합의 문제를 해결하기 위한 알고리즘임.이는 Paxos와 같은 다른 합의 알고리즘들과 목적은 동일하지만, Raft는 가독성과 구현 용이성을 우선시하여 설계됨.Raft는 리더 선출, 로그 복제, 안정성 보장을 포함한 세 가지 주요 목표에 초점을 맞추며, 분산 환경에서 상태 머신의 일관성을 유지하는 데 도움을 줌. Raft는 특정한 조건 하에서 여러 노드들이 동일한 결정을 내릴 수 있도록 보장하며, 이는 특히 분산된 시스템에서 중요한 요구사항임.분산 환경에서는 노드 간의 통신 지연, 네트워크 분할, 일부 노드의 장애와 같은 문제들이 발생할 수 있는데, Raft는 이를 극복하면서도 안정적인 상태 유지가 가능함. 1. 노드와 리더쉽Raft..

박경태
'Data Engineering/Zeppelin' 카테고리의 글 목록 (2 Page)