본문 바로가기

전체 글135

DataLake vs DataWarehouse vs DataMart 데이터 레이크와 데이터 웨어하우스는 둘 다 빅 데이터를 저장하는 데 널리 사용되지만 상호 교환 가능한 용어는 아니다. 데이터 레이크는 용도가 아직 정해지지 않은 raw data의 방대한 Pool이며, 데이터 웨어하우스는 특정 목적을 위해 처리된 구조화되고 필터링된 데이터 저장소이다. 데이터 레이크의 유연성과 데이터 웨어하우스의 데이터 관리 기능을 결합한 데이터 레이크하우스의 데이터 관리 아키텍처 추세도 나타나고 있다. Four key differences between a data lake and a data warehouse Data Lake Data Warehouse Data Structure Raw Processed Purpose of Data Not yet determined Currently i.. 2022. 7. 30.
[번역] Kafka Throughput&Latency Best Practices 공식문서 출처는 아래에 있는 confluent 공식 문서입니다. 1. Optimizing for Throughput 처리량을 최적화하기 위해 producer와 consumer는 주어진 시간 내에 가능한 한 많은 데이터를 이동시켜야 한다. 높은 처리량을 얻으려면 데이터가 이동하는 속도를 최대화 해서 가장 빠른 속도로 만들어야 한다. Number of Partitions topic partition은 카프카의 병렬화 단위이다. 생산자는 병렬로 다른 파티션에 메시지를 전송하고, 병렬처리된 서로 다른 브로커를 지나, 병렬 처리된 서로 다른 컨슈머들에게 소비된다. 일반적으로 토픽 파티션이 많은수록 처리량이 증가한다. 처리량을 최대화하려면 병렬 처리된 브로커들에게 전해질 충분한 수의 파티션이 필요하다. 무작정 파티션의 수를.. 2022. 7. 29.
[Java] JVM의 구조와 메모리 영역 JVM(Java Virtual Machine) : 자바 가상 머신으로 자바 바이트 코드를 실행할 수 있는 주체이며, CPU나 운영체제(플랫폼)의 종류와 무관하게 실행이 가능하다. 즉, 운영체제 위에서 동작하는 프로세스로 자바 코드를 컴파일해서 얻은 바이트 코드를 해당 운영체제가 이해할 수 있는 기계어로 바꿔 실행시켜주는 역할을 한다. JVM는 크게 4가지(Class Loader, Execution Engine, Garbage Collector, Runtime Data Area)로 구분된다. 1. Class Loader 자바에서 소스를 작성하면 .java파일이 생성되는데, .java 소스를 자바컴파일러가 컴파일하면 .class파일(바이트코드)이 생성된다. 이렇게 생성된 클래스파일들을 엮어서 JVM이 운영체.. 2022. 7. 28.
[Java] String, StringBuilder, StringBuffer의 차이 String final 관련 글을 보면 String은 immutable class 중 하나라고 되어있다. String에 대해 자세히 살펴보자 String 클래스의 인스턴스는 상수 형태의 인스턴스이다. String의 인스턴스는 상수의 성격을 갖는다고 표현을 한다. String의 인스턴스에 저장된 문자열 데이터의 변경이 불가능하기 때문이다. String str = "Constant String"; 이렇게 저장된 문자열 데이터는 결코 바꿀 수 없다! 바꾸는 메소드가 제공되지 않을 뿐 아니라 문자열 데이터에 직접적인 접근도 불가능하기 때문에 바꿀 수 있는 방법이 전혀 없다. 상수 형태로 String 클래스를 정의한 이유는 무엇일까? 인스턴스의 생성은 시스템에 부담되는 요소인데 자바에서는 문자열을 표현할 때마다 .. 2022. 7. 27.
Docker(Container)와 VM의 차이는 무엇인가? One of the frequent questions asked about Docker is how it differs from VM (virtual machine). VM보다 가볍고 경제적이며 확장 가능한 가상 시스템을 대체할 수 있는 방법이 Docker이다. Docker는 분산 응용프로그램을 개발할 수 있는 컨테이너 기반 기술이다. Virtual Machine 란? 하드웨어(하나의 컴퓨터)에 여러 개별 컴퓨터가 있는 것처럼 보이는 것으로 가상 시스템에는 기본 운영 체제가 필요하며 하드웨어가 가상화된다. Docker 란? 컨테이너를 사용하여 응용 프로그램의 생성, 배포 및 실행을 쉽게 만드는 도구이다. 컨테이너 내에서 응용프로그램 및 종속성을 바인딩한다. Docker Container와 Image란 .. 2022. 7. 25.
Docker Container와 Image란 무엇인가? 목차 LIST Docker란? Docker는 애플리케이션 구축, 구현 및 테스트를 위해 격리된 가상화 환경을 생성하는 서비스형 플랫폼이다. Docker는 컨테이너 엔진으로 리눅스 커널 기능을 사용하여 운영 체제 위에 컨테이너를 만들고, Docker 자체는 서비스의 컨테이너를 관리하는 데몬으로 실행된다. - Linux 커널의 도커 엔진 Docker image란? Application을 포장 및 전송하기 위해 도커는 "docker image"를 사용한다. Docker image는 파일로 어플리케이션 실행에 필요한 독립적인 환경을 포함하며, 런타임 환경을 위한 일종의 템플릿이다. 도커 이미지는 소스 코드, 라이브러리, 종속성, 도구 및 응용 프로그램을 실행하는데 필요한 기타 파일을 포함하는 불변(변경 불가) .. 2022. 7. 25.
public/private IP란? | LAN, NAT, Mac Address IP? 인터넷상에서 서버나 네트워크, PC 등 호스트를 구별하는 주소가 IP 주소이다. IP주소는 IPv4의 경우 10.210.32.40과 같이 4개로 구분된 10진수의 숫자 (최대치는 255)로 표시된다. IP 주소는 네트워크에 접속되어 있는 한 호스트(PC나 스마트폰) 1대에 최소 1개가 필요하다. 단, 특정 호스트와 IP 주소는 고정이라고 할 수 없다. 개인적으로 사용할 경우 유동적으로 할당되는 것이 일반적이다. 한편 서버는 고정해 두지 않으면 사용자가 접속할 수 없게 되므로 고정해야 한다. 참고) IPv4는 IP 주소가 약 43억 개밖에 없어 부족해지고 있다. 따라서 현재는 IPv6로 바꾸는 것을 추천한다. 8개로 구분되어 16진수로 표현하기 때문에 약 340간(숫자의 단위)개를 사용할 수 있다... 2022. 7. 24.
Transport Layer : process-to-process process의 주소 : port network 주소 : ip Process-to-process(Transport Layer) 통신을 위해서 반드시 정의되어야 하는 것 : Lacal host, Local process, Remote host, Remote process - Network Layer에서는 IP주소가 쓰인다. (local host, remote host) - Transport Layer에서는 port number라고 불리는 transport address가 필요하다. (local process, remote process) 우리는 Remote transport address(port number)를 어떻게 알 수 있을까? - 인터넷에서, client/server model은 사용되어 왔다. .. 2022. 7. 24.
TCP 3Handshake는 어떻게 진행되는가? TCP(Transmission Control Protocol) Connection-oriented protocol Reliable transport protocol → The requires the flow and error control. 전송 제어 프로토콜로 신뢰할수 있는 방식으로 데이터의 전송을 제어하기 위한 것을 나타낸다. 데이터를 보내기 위해서 두 TCP(클라이언트-서버) 사이에서 가상의 연결을 만든다. TCP는 flow, error control mechanisms을 transport level에서 사용한다. TCP는 IP 패킷(IP 데이터그램) 이라고 불리는 작은 조각을 통해 데이터를 전송한다. TCP는 Segment라는 단위로 데이터 스트림을 잘게 나누고, IP패킷이라 불리는 봉투에 담아 .. 2022. 7. 24.
반응형