전체 글 107

[Design Pattern] 변하는 코드 분리(2) Strategy Pattern

❑ 패턴 소개 1) GoF 패턴 분류 행위 패턴(Behavioral Pattern) [참고] GoF Patterns 더보기 생성 패턴 구조 패턴 행위 패턴 - 객체를 생성하는 것과 관련된 패턴 - 객체의 생성과 변경이 전체 시스템에 미치는 영향을 최소화하고 코드의 유연성을 높임 - 큰 구조를 형성하기 위해 클래스, 객체들을 어떻게 구성하고 합성할지 정하는데 활용할수 있는 패턴화한 것 - 복잡한 구조의 개발과 유지보수를 쉽게 만듦 - 반복적으로 사용되는 객체들의 상호작용을 패턴화한 것 ❑ Factory Method ❑ Abstract Factory ❑ Builder ❑ Prototype ❑ Singleton ❑ Adapter ❑ Bridge ❑ Composite ❑ Decorator ❑ Facade ❑ F..

Design Pattern 2022.11.21

[Design Pattern] 변하는 코드 분리(1) Template Method

❑ 패턴 소개 1) GoF 패턴 분류 행위 패턴(Behavioral Pattern) [참고] GoF's Patterns 더보기 생성 패턴 구조 패턴 행위 패턴 - 객체를 생성하는 것과 관련된 패턴 - 객체의 생성과 변경이 전체 시스템에 미치는 영향을 최소화하고 코드의 유연성을 높임 - 큰 구조를 형성하기 위해 클래스, 객체들을 어떻게 구성하고 합성할지 정하는데 활용할수 있는 패턴화한 것 - 복잡한 구조의 개발과 유지보수를 쉽게 만듦 - 반복적으로 사용되는 객체들의 상호작용을 패턴화한 것 ❑ Factory Method ❑ Abstract Factory ❑ Builder ❑ Prototype ❑ Singleton ❑ Adapter ❑ Bridge ❑ Composite ❑ Decorator ❑ Facade ❑..

Design Pattern 2022.11.16

[Docker] 도커파일(Dockerfile)을 이용한 이미지 생성(build) 방법

❑ 도커파일(Dockerfile)을 이용한 이미지 생성(build) 방법 1. Full Grammar $ docker build -f -t : Dockerfile은 이미지를 생성하기 위한 명세서로 일종의 레시피와 같은 것이다. 완성된 Dockerfile과 docker build 명령어를 이용해 이미지를 생성할 수 있다. Dockerfile을 이용해 이미지를 생성할 땐 아래 세 가지가 필요하다. -f -f 옵션을 이용해 Dockerfile의 위치를 설정한다(호스트 시스템에서의 위치). context 경로에 Dockerfile이 존재할 경우 생략할 수 있는데, 이 경우 반드시 파일명이 'Dockerfile'이어야 한다(확장자 없음). -t : -t 옵션을 이용해 이미지 명과 태그를 설정한다(태그 미설정시 l..

카테고리 없음 2022.10.04

[Kafka] 기초3 - 컨슈머 기본 동작과 예시

❑ 컨슈머의 기본 동작 컨슈머는 프로듀서가 카프카의 토픽으로 전송한 메시지를 가져오는 역할을 한다. 단순히 메시지만 가져오는 것으로 보일 수 있으나, 내부적으로는 컨슈머 그룹, 리밸런싱 등의 동작을 수행한다. 컨슈머 그룹(Consumer Group) 컨슈머 그룹은 하나 이상의 컨슈머들이 모여 있는 그룹을 의미하고, 컨슈머는 반드시 컨슈머 그룹에 속하게 된다. 그룹 내의 컨슈머들은 서로의 정보를 공유한다. 예를 들어, 특정 컨슈머에 문제가 생겨 종료된다면, 그룹 내 다른 컨슈머가 대신해 토픽의 파티션을 컨슘한다. 컨슈머 그룹은 파티션의 리더에게 토픽에 저장된 메시지를 가져오기 위한 요청을 보낸다. 필수는 아니지만, 파티션 수와 한 그룹 안의 컨슈머 수는 1:1 매핑이 이상적이다. 단, '파티션 수 < 컨슈..

Back-End/Kafka 2022.08.23

[Kafka] 기초2 - 프로듀서 기본 동작과 예시

❑ 프로듀서 디자인 프로듀서는 카프카의 토픽으로 메시지를 전송하는 역할을 담당한다. 프로듀서를 설정할 수 있는 여러가지 옵션이 있으므로 원하는 조건으로 메시지를 보내기 위해선 옵션을 적절히 사용할 수 있어야한다. 레코드(ProducerRecord) 레코드는 카프카로 전송하기 위한 실제 데이터이며, 토픽(Topic), 파티션(Partition), 키(Key), 밸류(Value)으로 구성된다. 토픽과 밸류(메시지 내용)는 필수 값이다. 파티션(특정 파티션을 지정), 키(특정 파티션에 레코드를 정렬)은 선택 옵션이다. 시리얼라이저(Serializer) 레코드의 키와 밸류를 Byte Array로 변환시킨다. 파티셔너(Partitioner) 레코드들은 프로듀서의 send() 메시지를 통해 시리얼라이저와 파티셔너를..

Back-End/Kafka 2022.08.11

[Kafka] 기초1 - 기본 구성과 핵심 개념(토픽, 파티션, 리플리케이션 등)

❑ 카프카 구성 Overview 구성 요소 설명 주키퍼(Zookeeper) 코디네이터 역할을 하는 아파치 프로젝트 애플리케이션. 카프카의 정상 동작을 보장하기 위해 메타데이터(metadata)를 관리하고 브로커의 상태 점검(Health check)을 한다. 카프카(또는 카프카 클러스터) 여러 개의 브로커를 구성한 클러스터를 의미 브로커(Broker) 카프카가 설치된 서버 또는 노드 프로듀서(Producer) 카프카로 메시지를 보내는 역할을 하는 클라이언트를 총칭 컨슈머(Consumer) 카프카에서 메시지를 꺼내가는 역할을 하는 클라이언트를 총칭 토픽(Topic) 카프카는 메시지 피드들을 토픽으로 구분하고, 각 토픽의 이름은 카프카 내에서 고유함 파티션(Partition) 병렬 처리 및 고성능을 얻기 위해..

Back-End/Kafka 2022.08.09

[Clean Code] 6장. 객체와 자료구조 : Objects and Data Structures

[Clean Code 시리즈 포스팅] [Clean Code] 1장. 깨끗한 코드: Clean Code [Clean Code] 2장. 의미 있는 이름 : Meaningful Names [Clean Code] 3장. 함수 : Functions [Clean Code] 4장. 주석 : Comments [Clean Code] 5장. 형식 맞추기 : Formatting [Clean Code] 6장. 객체와 자료구조 : Objects and Data Structures (Now) [Clean Code] 9장. 단위 테스트 : Unit Tests ❑ 들어가기에 앞서 본 장의 제목은 '객체'와 '자료구조'다. 책의 내용을 보기에 앞서 필자가 말하는 객체와 자료구조에 대해 먼저 이해하면 도움이 될 것이다. 필자가 본 장에..

[Clean Code] 5장. 형식 맞추기 : Formatting

[Clean Code 시리즈 포스팅] [Clean Code] 1장. 깨끗한 코드: Clean Code [Clean Code] 2장. 의미 있는 이름 : Meaningful Names [Clean Code] 3장. 함수 : Functions [Clean Code] 4장. 주석 : Comments [Clean Code] 5장. 형식 맞추기 : Formatting (Now) [Clean Code] 6장. 객체와 자료구조 : Objects and Data Structures [Clean Code] 9장. 단위 테스트 : Unit Tests 5장 형식 맞추기는 현업 개발자라면 당연하다고 생각할 내용들이 많다. 예를 들어 들여쓰기 같은 것들이 있다. 본 포스팅에서는 다시 한 번 기억해야할 것들 위주로 요약했다. ❑..

[Docker] 기초 시리즈 (10) 도커 컨테이너 - Volume 관리

[도커 기초 시리즈 포스팅] [Docker] 기초 시리즈 (1) 도커의 개념과 사용이유 [Docker] 기초 시리즈 (2) Ubuntu에 도커 엔진 설치 [Docker] 기초 시리즈 (3) 이미지와 컨테이너 관계, 도커 아키텍처 [Docker] 기초 시리즈 (4) 도커 이미지의 구조 [Docker] 기초 시리즈 (5) 도커 이미지 다루기 - Docker Hub(Registry) [Docker] 기초 시리즈 (6) 도커 이미지 다루기 - 이미지 직접 생성 [Docker] 기초 시리즈 (7) 자주 사용하는 Dockerfile 명령어 [Docker] 기초 시리즈 (8) 자주 사용하는 도커 명령어 모음 [Docker] 기초 시리즈 (9) 도커 컨테이너 - 개념, 기본 사용법 [Docker] 기초 시리즈 (10)..

DevOps/Docker 2022.06.07