본문 바로가기

전체 글128

[헤드퍼스트 디자인패턴] 06. 커맨드 패턴(Command Pattern) [헤드퍼스트 디자인패턴] 06. 커맨드 패턴(Command Pattern) 1. 커맨드 패턴이란? - 커맨드 패턴을 사용하면 요청 내역을 객체로 캡슐화해서 객체를 서로 다른 요청 내역에 따라 매개변수화할 수 있다. 이러면 요청을 큐에 저장하거나 로그로 기록하거나 작업 취소 기능을 사용할 수 있다. 커맨드 패턴은 크게 Invoker(호출자), Receiver(수신자), Command(명령) 객체로 구분된다. 인보커는 기능의 실행을 요청하고 리시버는 명령을 수행하는 객체다. 실행될 기능을 캡슐화함으로써 기능의 실행을 요구하는 호출자(Invoker) 클래스와 실제 기능을 실행하는 수신자(Receiver) 클래스 사이의 의존성을 제거한다. 따라서 실행될 기능의 변경에도 호출자 클래스를 수정 없이 그대로 사용 할.. 2022. 7. 10.
[도메인 주도 개발 시작하기] 04. 응용 서비스와 표현 영역 [도메인 주도 개발 시작하기] 04. 응용 서비스와 표현 영역 1. 표현 영역과 응용 영역 잘 만든 도메인이 제 기능을 하려면 사용자와 도메인을 연결해주는 매개체가 필요하다. 응용 영역과 표현 영역이 사용자와 도메인을 연결해 주는 매개체 역할을 한다. 표현 영역은 사용자의 요청을 해석한다. 사용자의 요청을 받은 표현 영역은 URL, 요청 파라미터, 쿠키, 헤더 등을 이용해서 사용자가 실행하고 싶은 기능을 판별하고 그 기능을 제공하는 응용 서비스를 실행한다. 응용 영역에 위치한 서비스는 실제 사용자가 원하는 기능을 제공한다. 응용 서비스의 메서드가 요구하는 파라미터와 표현 영역이 사용자로부터 전달받은 데이터는 형식이 일치하지 않기 때무에 표현 영역은 응용 서비스가 요구하는 형식으로 사용자 요청을 변환한다... 2022. 7. 9.
[쿠버네티스 / 도커] 04. 쿠버네티스를 이루는 컨테이너 도우미, 도커 [쿠버네티스 / 도커] 04. 쿠버네티스를 이루는 컨테이너 도우미, 도커 1. 도커를 알아야 하는 이유 - 최근에는 여러 공급사에서 만들어둔 컨테이너 이미지로 인해, 도커를 몰라도 쿠버네티스를 배우고 사용하는 것이 가능해졌다. 하지만 쿠버네티스를 이루고 있는 기술 자체는 컨테이너를 벗어날 수 없기 때문에, 트러블 슈팅을 제대로 하려면 컨테이너를 잘 알아야한다. 또한 CI/CD와 모니터링 모두 컨테이너로 관리되기 때문에 컨테이너와 이를 다루는 도커를 자세히 알면 컨테이너 인프라 환경을 한층 더 이해할 수 있다. 1.1 파드, 컨테이너, 도커, 쿠버네티스의 관계 쿠버네티스 클러스터는 워커 노드와 마스터 노드로 이루어져있다. 워커 노드라는 노드 단위로 파드를 관리한다. 파드는 1개 이상의 컨테이너로 이루어져있.. 2022. 7. 6.
[도메인 주도 개발 시작하기] 03. 애그리거트 [도메인 주도 개발 시작하기] 03. 애그리거트 1. 애그리거트 - 온라인 쇼핑몰 시스템을 개발할 때 아래와 같이 상위 수준 개념을 이용해서 전체 모델을 정리하면 전반적인 관계를 이해하는 데 도움이 된다. 위의 상위 수준 모델을 개별 객체 단위로 다시 그려보면 아래와 같다. 상위 모델에 대한 이해 없이 개별 객체 단위 수준에서 개념을 파악하려면 더 오랜 시간이 걸린다. 백 개 이상의 테이블을 한 장의 ERD에 표시하면, 개별 테이블 간의 관게를 파악하느라 전반적인 구조나 큰 수준에서의 도메인 간의 관게를 파악하기 어려워져, 코드를 변경하고 확장하는 것이 어려워진다. 복잡한 도메인을 이해하고 관리하기 쉬운 단위로 만들려면 상위 수준에서 모델을 조망할 수 있는 방법이 필요한데, 그 방법이 바로 애그리거트다... 2022. 7. 3.
[헤드퍼스트 디자인패턴] 05. 팩토리 패턴(Factory Pattern) [헤드퍼스트 디자인패턴] 05. 팩토리 패턴(Factory Pattern) 1. 두가지 팩토리 패턴 추상 팩토리 패턴 - 구상 클래스에 의존하지 않고도 서로 연관되거나 의존적인 객체로 이루어진 제품군을 생성하는 인터페이스를 제공한다. 구상 클래스는 서브클래스에서 만든다. 팩토리 메소드 패턴 - 객체를 생성할 때 필요한 인터페이스를 만든다. 어떤 클래스의 인스턴스를 만들지는 서브클래스에서 결정한다. 팩토리 메소드를 사용하면 인스턴스 만드는 일을 서브 클래스에 맡길 수 있다. 2. 요구사항 - 피자 가게에서 여러 피자를 판매 한다. Pizza orderPizza(String type) { Pizza pizza; // 계속 변경되어야 하는 부분 if(type.equals("cheese")) pizza = ne.. 2022. 7. 3.
[해커톤] KISA 마이 핀테크 서비스 해커톤 후기 [해커톤] KISA 마이 핀테크 서비스 해커톤 후기 그것의 시작은 치킨이었다.... 접수만 해도 치킨을 준다길래 치킨을 받기 위해 시작한 해커톤 접수. 마이 핀테크 서비스 개발 경진대회(해커톤) - 온오프믹스 :: 모임문화 플랫폼 (onoffmix.com) 마이 핀테크 서비스 개발 경진대회(해커톤) 세상의 모든 모임 '온오프믹스' www.onoffmix.com 치킨을 받기 위해 치킨 팟을 꾸렸다. 팀원은 최대 5명까지었기에 프론트2 / 백엔드 3명으로 구성된 치킨팟을 꾸렸다. 지원서를 접수하려고 하니 자필 서명이 필요하다고 하여 우리 5명은 구로디지털단지역 메이비라는 카페에 모였다. 팀명을 정해야 하네? 팀명은..음... 메이비로 하자! 그렇게 팀명은 핀테크와는 하등 상관없는 메이비가 되었다. 그렇게 우.. 2022. 6. 27.
[도메인 주도 개발 시작하기] 02. 아키텍처 개요 [도메인 주도 개발 시작하기] 02. 아키텍처 개요 1. 네 개의 영역 - 아키텍처를 설계할 때 출현하는 전형적인 네 가지 영역 : 표현, 응용, 도메인, 인프라스트럭처 표현 사용자의 요청을 받아 응용 영역에 전달하고 응용 영역의 처리 결과를 다시 사용자에게 보여주는 역할 응용 시스템이 사용자에게 제공해야 할 기능을 구현한다. ex) 주문 등록, 주문 취소, 상품 상세 조회 등 기능을 구현하기 위해 도메인 영역의 도메인 모델을 사용 로직을 직접 수행하기 보다는 도메인 모델에 로직 수행을 위임한다. 도메인 도메인의 핵심 로직을 구현 ex) 배송지 변경, 결제 완료, 주문 총액 계산 등 인프라스트럭처 구현 기술에 대한 것을 다룸. DB연결, 메시징 큐 구현, SMTP를 이용한 메일 발송 기능, REST AP.. 2022. 6. 24.
[쿠버네티스 / 도커] 03. 컨테이너를 다루는 표준 아키텍처, 쿠버네티스 [쿠버네티스 / 도커] 03. 컨테이너를 다루는 표준 아키텍처, 쿠버네티스 1. 쿠버네티스 이해하기 - 쿠버네티스는 컨테이너 오케스트레이션을 위한 솔루션이다. 오케스트레이션이란 복잡한 단계를 관리하고 요소들의 유기적인 관계를 미리 정의해 손쉽게 사용하도록 서비스를 제공하는 것을 의미한다. 다수의 컨테이너를 유기적으로 연결, 실행, 종료할 뿐만 아니라 상태를 추적하고 보존하는 등 컨테이너를 안정적으로 사용할 수 있게 한다. 1.2. 쿠버네티스 구성 방법 3가지 1.2.1 퍼블릭 클라우드 EKS, AKS, GKE등 퍼블릭 클라우드 업체에서 제공하는 관리형 쿠버네티스를 사용한다. 구성이 이미 다 갖춰져 있고 마스터 노드를 클라우드 업체에서 관리한다. 1.2.2 설치형 쿠버네티스 Rancher, OpenShif.. 2022. 6. 21.
[쿠버네티스 / 도커] 01. 새로운 인프라 환경 [쿠버네티스 / 도커] 01. 새로운 인프라 환경 1. 컨테이너 인프라 환경이란? - 컨테이너를 중심으로 구성된 인프라 환경 컨테이너란? - 하나의 운영 체제 커널에서 다른 프로세스에 영향을 받지 않고 독립적으로 실행되는 프로세스 상태 1.1 모놀리식 아키텍처 - 하나의 큰 목적이 있는 서비스 또는 애플리케이션에 여러 기능이 통합되어 있는 구조 초기 단계에서 설계하기 용이하며 개발이 좀더 단순하고 코드 관리가 간편 서비스 운영 중 수정이 많을 경우 연관 된 다른 서비스에 영향을 미칠 가능성이 큼 기능이 추가될 수록 서비스 간의 관계가 매우 복잡해 질 수 있다. 한가지의 서비스를 확장하기 위해서는 다른 모든 서비스도 같이 확장해야하기 때문에 비효율적 하나의 서비스에서 에러가 발생하면 모든 서비스를 이용할 .. 2022. 6. 21.
728x90
반응형