분류 전체보기 8

[Kafka] Broker

브로커란 ? 카프카가 설치되어 있는 서버 단위 보통 3개 이상의 broker로 구성하여 사용하는 것을 권장 파티션이 1개이고 replication이 1인 topic이 존재하고 브로커가 3대라면 3대 중 1대에 해당 토픽의 정보(데이터)가 저장됨 replication replication이란, partition의 복제를 뜻함 replication이 1이라면 partition은 1개만 존재 replication이 2이라면 partition은 원본 1개와 복제본 1개 존재 replication이 3이라면 partition은 원본 1개와 본제본 2개 존재 다만, 브로커 개수에 따라서 replication 개수가 제한됨 ⇒ 브로커의 개수보다 클 수 없음 ! 사용 이유 ⇒ partition의 고가용성을 위해서 ex..

Infra/Kafka 2023.01.21

[Kafka] Topic

토픽이란? 카프카에 다양한 데이터가 들어가는 공간 여러개 생성 가능 데이터베이스의 테이블이나 파일시스템의 폴더와 유사한 성질 프로듀서가 데이터를 넣고 컨슈머가 가져가는 구조 이름을 가질 수 있음 (목적에 맞게 담는 데이터를 정확하게 명시하면 유지보수 편리해짐) 토픽의 내부 여러개의 파티션으로 구성 파티션 번호는 0번부터 시작 큐와 같이 데이터가 쌓임 컨슈머는 가장 오래된 순서대로 데이터 가져가며, 더 이상 가져갈 데이터가 없으면 들어올 때까지 대기함 컨슈머가 record 들을 가져가도 데이터 삭제되지 않고 파티션에 그대로 남아 있음 파티션에 남아있는 데이터는 새로운 컨슈머가 붙었을 때 다시 0번부터 가져가서 사용 (아래의 조건 존재) 컨슈머 그룹이 달라야 함 auto.offset.reset = earli..

Infra/Kafka 2023.01.15

[Kafka] Apache Kafka 개요

아파치 카프카는 아파치 소프트웨어 재단이 스칼라로 개발한 오픈 소스 메시지 브로커 프로젝트이다. 이전의 데이터 통신 구조가 서비스가 늘어날수록 데이터 파편화와 유지보수가 어려워져 이를 개선하기 위해 개발되었으며, 소스 애플리케이션과 타켓 애플리케이션의 결합도를 약하게 하는 것이 목적이다. 소스 애플리케이션은 카프카로 데이터를 전송하고 타켓 애플리케이션은 카프카에서 데이터를 가져와 사용하는 형태이다. 소스 애플리케이션은 클릭로그, 결제로그 등을 보낼 수 있고 타켓 애플리케이션은 로그적재 및 처리 등의 역할을 할 수 있다. 전달 데이터 포맷은 json, tsv 등 거의 제한이 없으며 카프카는 아주 유연한 큐 역할을 한다고 볼 수 있다. 카프카의 장점으로는 1. 고가용성으로서 서버가 이슈가 생기거나 데이터 손..

Infra/Kafka 2023.01.15

[Kubernetes] 쿠버네티스란

쿠버네티스란? 컨테이너를 도커 플랫폼에 올려서 관리+운영+클러스터 서비스 지원해 주는 것으로 함축해서 K8s라고 부른다. 운영 수준의 컨테이너 오케스트레이션으로 자동화된 컨테이너 배포, 스케일링과 관리해주는 오픈소스 시스템이다. 쿠버네티스란 명칭은 키잡이나 파일럿을 뜻하는 그리스에서 유래하였고 구글이 2014년에 쿠버네티스 프로젝트를 오픈 소스화했다. 프로덕션 워크로드를 대규모로 운영하는 15년 이상의 구글 경험과 커뮤니티 아이디어와 적용 사례가 결합되어 있다. * 컨테이너 오케스트레이션이란? 웹서버가 잘 운영될 수 있도록 적합하게 애플리케이션을 배치해주는 것 [ 필요성 ] 쿠버네티스는 분산 시스템을 탄력적으로 실행하기 위한 프레임 워크를 제공한다. 애플리케이션의 확장과 장애 조치를 처리하고, 배포 패턴..

Infra/Kubernetes 2021.05.31

[AWS] Amazon Web Services

Amazon Web Services란? 아마존에서 만든 웹 서비스 인프라로 웹서비스를 운영하는데 필요한 기술들을 포괄적으로 제공하는 서비스이다. 일종의 웹호스팅 서비스지만, 통상적인 웹호스팅 서비스에 비해서 편리하고 강력하다. [ 클라우드와 아마존 웹서비스 ] 서버의 구매, 구축, 운영을 대행해주는 서비스 웹호스팅과 유사(+고기능성 기술 제공) 가상화 기술 탄력적인 인프라 운영 ⇒ 컴퓨터 사양을 높이는 것(스케일 업)을 몇 분만에 해결 가능 사용한 만큼 과금 ⇒ 양자택일의 상황을 해소 EC2 Elastic Compute Cloud의 약자 독립적인 컴퓨터 한대 ⇒ 아마존 인프라에 한대를 만드는 것과 같음 Linux, Window와 같은 운영체제 제공 웹서버, 애플리케이션 서버로 주로 사용 웹 서비스를 하도..

Infra 2021.05.24

[Docker] Docker란

Docker란 ? 컨테이너 기반의 오픈소스 가상화 플랫폼으로 각 요소들이 설치된 모습을 '이미지' 형태로 박제해서 저장한다. 각 제품마다 공식적으로 제공되는 이미지도 있고 원하는대로 만들 수 있고 가상 컴퓨팅과는 다른 개념으로 도커는 실행 환경만 독립적으로 돌리는 것이다. 도커는 LXC(Linux Container) 기반으로 시작하여 0.9 version에서는 자체 libcontainer 기술을 사용하였고, 추후 runC기술에 합쳐졌다. 컴퓨터에 직접 요소들을 설치한거랑 별 차이 없는 성능을 낼 수 있음 가상 컴퓨팅보다 훨씬 가볍고 빠르게 각각 설치하고 실행하고 켜고 끄고 서로 연동할 수 있음 서버에 뭐가 잘못돼서 고쳐야 하거나 일부를 업그레이드해야 할 때는 일일이 요소들을 정지하고 새로 깔거나 할 거 ..

Infra/Docker 2021.05.23

[Spring] Spring이란

스프링이란 ? Spring Framework는 자바 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크로서 간단히 스프링이라고도 한다. 동적인 웹 사이트를 개발하기 위한 여러가지 서비스를 제공하고 있다. 공공기관의 웹 서비스 개발 시 사용을 권장하고 있는 전자 정부 표준 프레임워크의 기반 기술로서도 쓰이고 있다. [ 사용 이유 및 장점 ] 애플리케이션을 구축하기 위한 경량화된 솔루션을 제공하여 효율적인 개발 환경을 제공한다. MVC 패턴, AOP, 잘 구조화된 예외계층 구조를 제공한다. 많은 기능들을 제공하지만 모듈화되어 있어 필요한 모듈들을 선택적으로 사용 할 수 있다. 자바 및 JVM 환경의 대체 언어들의 효율적이고 쉬운 엔터프라이즈 애플리케이션 개발 환경을 제공한다. 패키지들 간의 순환 의존성이 없는 ..

Framework/Spring 2021.05.17

[Go] Introduction

Go언어 Go는 2009년 구글에서 일하는 로버트 그리즈머, 롭 파이크, 켄 톰프슨이 개발한 프로그래밍 언어이다. 가비지 컬렉션 기능이 있고, 병행성을 잘 지원하는 컴파일 언어이다. 구문이 C와 비슷하지만 메모리 보안, 쓰레기 수집, 구조 타이핑, CSP 스타일 병행성을 제공한다. (출처: 위키백과) 주요 특징 1) 속도가 엄청 빠름 !!!!! 2) Multi-core processing 지원 (병행성) 다운로드 공식 사이트 : golang.org/ The Go Programming Language Download Go Binary distributions available for Linux, macOS, Windows, and more. // You can edit this code! // Click ..

Programming/Go 2021.05.02