728x90

분류 전체보기 427

[AWS] SQS의 특징과 SNS와의 차이점

※ 일본의 한 블로그 글을 번역한 포스트입니다. 오역 및 의역, 직역이 있을 수 있으며 틀린 내용은 지적해주시면 감사하겠습니다. AWS SQS이란? AWS에서 제공하는 풀 매니지드형 메시지 큐잉 서비스이다. 큐잉 서비스이란 다른 소프트웨어 간의 데이터(메시지) 송수신하는 서비스를 의미한다. 소프트웨어에 직접 데이터를 전달하는 것이 아닌, SQS 경유로 데이터를 전달하는 것으로 송신측 혹은 수식측이 원하는 타이밍에 따라 처리를 실행할 수 있다. SQS의 각 용어를 간단히 설명하자면 다음과 같다. 메시지 : 송수신하는 데이터 프로듀서 : 메시지를 송신하는 측의 어플리케이션 컨슈머 : 메시지를 수신하는 측(받으러 가는 쪽)의 어플리케이션 큐란? 큐는 메시지를 관리하기 위한 수납 역할을 한다. 이용 시작시에 생..

IT/기초 지식 2023.05.29

[DDD] Entity, ValueObject에 대해서

※ 일본의 한 블로그 글을 번역한 포스트입니다. 오역 및 의역, 직역이 있을 수 있으며 틀린 내용은 지적해주시면 감사하겠습니다. DDD의 구현 패턴으로 Entity와 ValueObject이라는 것이 있다. 이번 포스트에서는 각각의 개념과 사용법에 대해서 소개하려고 한다. 아래의 이미지를 이용해서 설명할 예정이다. 어떤 목적으로 만는가? DDD의 접근법은 아래의 두 가지 스텝이 있다. 도메인(소프트웨어화 대상의 세계)에 대해, 시스템으로 사용하기 위한 모델을 작성한다. 모델을 소프트웨어(코드)로 만들어간다. DDD에서는 이 두 번째 스텝을 위해 아래의 네 가지를 정의하고 있다. Entity Value Object Domain Service Domain Event 이 중에서 모델을 "오브젝트(값과 행동을 가..

IT/기초 지식 2023.05.26

[DDD] 바운디드 컨텍스트(bounded context) - 실전편

※ 일본의 한 블로그 글을 번역한 포스트입니다. 오역 및 의역, 직역이 있을 수 있으며 틀린 내용은 지적해주시면 감사하겠습니다. 바운디드 컨텍스트 구현의 기본 이미지 결론부터 말하자면, 기본적으로는 "1컨텍스트 = 1어플리케이션 " 이라고 생각하면 된다. 이것을 바탕으로 용도나 구현 코스트등을 고려하면서 조금씩 설계를 바꾸는 것도 검토할 수 있다. 이전 포스트에서 소개했던 아래의 두 개 컨텍스트를 이용해서 설명하자면 이렇게 두개의 어플리케이션을 만들게 된다는 것이다. 도메인층을 외부 경계와 격리하고 외부에 공개하는 작업을 주변 층에서 정의하며, 최종적으로 마이크로 서비스 2개를 만들어진다고 생각하면 된다. 이렇게 된다면 DB를 다루는 방법이나 통신을 어떻게 할지에 대해서도 자연스럽게 생각하게 될 것이다...

IT/기초 지식 2023.05.22

[DDD] 바운디드 컨텍스트(bounded context) - 개념편

※ 일본의 한 블로그 글을 번역한 포스트입니다. 오역 및 의역, 직역이 있을 수 있으며 틀린 내용은 지적해주시면 감사하겠습니다. 바운디드 컨텍스트란? 공식 DDD Reference의 정의는 다음과 같다. 바운디드 컨텍스트(Bounded Context) 특정 모델의 정의, 적용하는 경계를 명시적으로 나타내는 것. 대표적인 예는 서브 시스템이나 팀등이 있다. 바운디드 컨텍스트는 두 가지 시점에서 해설이 필요하다. 개념으로서의 바운디드 컨텍스트 바운디드 컨텍스트의 구현 방법 개념으로서의 바운디드 컨텍스트 모델의 공유 DDD에서는 모든 사람 (소프트웨어 개발자, 도메인 전문가)가 동일한 의미로 말을 사용하는 것을 목적으로 한다. 예를 들어, EC 사이트 상품을 판매하는 시스템을 생각해보자. 여기에서는 엔지니어와..

IT/기초 지식 2023.05.18

[DDD] CQRS 입문

※ 일본의 한 블로그 글을 번역한 포스트입니다. 오역 및 의역, 직역이 있을 수 있으며 틀린 내용은 지적해주시면 감사하겠습니다. DDD의 참조 처리에서 발생하는 과제 DDD에서 정의되어 있는 구현 패턴을 사용하고 있다면, 기본적으로는 영속화층마다의 입출력은 Repository를 사용할 것이다. 갱신계의 처리에서는 Entity나 ValuObject로 도메인의 지식을 표현하고, Repository를 사용하여 집약 단위로 영속화한다는 구성하게 되면 매우 유지/보수가 편리해진다. 한편, 참조 처리 특히 리스트 화면과 같은 처리에서는 여러 개의 집약 값을 엮거나 합쳐서 화면에 나타내는 경우가 많다. 예를 들어, 태스크, 유저, 라벨이라는 세 개의 집약이 있으며, 각각 Repository가 있다고 하자. 이 세 가..

IT/기초 지식 2023.05.17

[Java] 자주 사용되는 Lombok 어노테이션

※ 일본의 한 블로그 글을 번역한 포스트입니다. 오역 및 의역, 직역이 있을 수 있으며 틀린 내용은 지적해주시면 감사하겠습니다. Lombok이란? 어노테이션을 부여하는 것으로 Java의 상용구 코드를 쓰지 않도록 해주는 라이브러리이다. 어노테이션을 부여하는 것만으로 모든 필드에 대해서 getter, setter을 구현해주거나, 생성자를 구현해주거나한다. 데이터 클래스의 작성이나 생성자 인젝션이 편해지므로, Spring-Boot와 매우 궁합이 좋다고 개인적으로 생각한다. 그리고 immutable 객체를 쓰고 싶을 때에도 도움이 되므로, 써보길 바란다. Getter, Setter 클래스 혹은 필드에 @Getter, @Setter을 부여하면 getter, setter이 자동적으로 구현된다. 예를 들면 다음과 ..

IT/언어 2023.05.15

[Java] 생성자(Constructor)의 기본과 사용법

※ 일본의 한 블로그 글을 번역한 포스트입니다. 오역 및 의역, 직역이 있을 수 있으며 틀린 내용은 지적해주시면 감사하겠습니다. 1. 생성자(Constructor)의 기본 Java의 생성자(Constructor)란 클래스로부터 인스턴스를 만들 때 에 실행되는 처리이다. 생성자(Constructor)이라는 단어는 영어의 “만들다”와 “사람”이므로, 건설업자, 제조업자 등과 같은 의미를 지닌다. 인스턴스를 만드는 사람과 같은 의미이다. 1-1. 생성자(Constructor)는 특별한 메소드와 같은 것 생성자(Constructor)는 인스턴스가 만들어질때에 실행되는 특별한 메소드라고 자주 설명된다. 그러나 메소드와 다르게 다음과 같은 특징이 있다. 클래스명과 동일한 이름을 가진다. 메소드로서 반환값을 가지지 ..

IT/언어 2023.05.13

[CSS] CSS로 긴 문자를 생략형(...)으로 바꾸는 방법

※ 일본의 한 블로그 글을 번역한 포스트입니다. 오역 및 의역, 직역이 존재하며 틀린 내용은 지적해주시면 감사하겠습니다. CSS로 규정의 폭보다 문자 수가 많아지는 경우에 텍스트를 생략형으로 바꾸는 방법에 대해서 설명하고자한다. 그리고 한 줄의 텍스트뿐만 아니라 2줄 이상의 텍스트도 적용가능하다. 한 줄 텍스트의 경우 text-overflow를 사용한다. 사용할 때는 두 가지 규칙이 있다. overflow: hidden; 및 white-space: nowrap; 과 함께 사용해야한다. text-overflow는 Block요소에 대해 inline(옆 방향)으로 튀어 나온 텍스트에 효과가 있다. Block 요소 샘플 코드 // HTML CSS로 텍스트를 생략하는 테스트입니다. // CSS .text-over..

IT/기초 지식 2023.05.10

[git] Git 충돌(conflict) 해결 방법

※ 일본의 한 블로그 글을 번역한 포스트입니다. 오역 및 의역, 직역이 있을 수 있으며 틀린 내용은 지적해주시면 감사하겠습니다. 개요 작업 브랜치로 편집한 후에 pull request를 냈을 때 충돌이 발생했을 때 어떻게 해결해야하는지에 대해서 설명하고자 한다. 이 포스트에서 등장하는 브랜치는 총 세 가지이다. develop (merge할 곳) a_branch (이미 develop에 merge되어 있는 브랜치) b_branch (작업 브랜치) 전제 조건은 작업 브랜치(b_branch)에서 develop로 pull request를 냈을 때이다. 그리고 이미 a_branch는 merge되어 있어, 그 브랜치에서 편집편집된 것과 충돌이 발생한 상황이라고 가정한다. 충돌이 발생한 상황에서 pull request..

IT/기초 지식 2023.05.08

[Vue3] 이제는 Vuex나 Pinia를 사용하지 않아도 되지 않을까? (Composition API)

※ 일본의 한 블로그 글을 번역할 포스트입니다. 오역 및 의역,. 직역이 있을 수 있으며 틀린 내용은 지적해주시면 감사하겠습니다. Vue의 상태 관리로 Vuex나 Pinia를 사용합시다라는 말이 많지만 외부의 라이브러리를 사용하지 않고 Vue3 자체의 기능으로 충분하지 않은가에 대한 이야기이다. 상태 관리 라이브러리를 사용하지 않고 어떻게 스토어(상태과 액션)을 정의하는가? Vue3에서 도입된 Composition API를 사용하면 된다. 예를 들어 다음과 같다. // ~/composables/todo.js import { reactive, computed, readonly } from 'vue'; export function useTodo() { const items = reactive([]); con..

IT/언어 2023.05.06
728x90