분류 전체보기 57

RabbitMQ + DockerCompose 실행시키기 _ 환경설정(2)

2024.01.18 - [RabbitMQ] - RabbitMQ + Docker Compose 실행시키기 (1) RabbitMQ + Docker Compose 실행시키기 1. docker 및 docker-compose 설치 * 이 포스팅에서는 CentOS 기반으로 진행합니다. 아래 링크 들어가서 입맛에 맞게 다운 받을 수 있습니다. > CentOS 기반 : https://docs.docker.com/engine/install/centos/ Install Docker En ddol.tistory.com 앞서 설명한 RabbitMQ + Docker Compose.yml 설정 파일을 추가로 포스팅해보겠습니다. 참고 : https://www.rabbitmq.com/configure.html /conf/defini..

RabbitMQ 2024.01.22

RabbitMQ 란? 주요 용어, Round-Robin, Fair dispatch, Acknowledgment

사전적 정의 오픈 소스 메시지 브로커 소프트웨어 (메시지 지향 미들웨어)로서, AMQP(Advanced Message Queuing Protocol)를 구현하였으며 그 이후로 STOMP, MQTT 등의 프로토콜을 지원하기 위해 플러그인 구조와 함께 확장되고 있다. 메시지를 생산하는 생산자(Producer)가 메시지를 큐에 저장해 두면, 메시지를 수신하는 소비자(Consumer)가 메시지를 가져와 처리하는 Publish/Subscribe 방식의 메시지 전달 브로커이다. RabbitMQ 란? AMQP를 구현한 오픈 소스 메시지 브로커 AMQP 란? Advanced Message Queuing Protocol로 client application과 미들웨어 브로커와의 메시지를 주고받기 위한 프로토콜, Messa..

RabbitMQ 2024.01.21

RabbitMQ + Docker Compose 실행시키기 (1)

docker 및 docker-compose 설치 * 이 포스팅에서는 CentOS 기반으로 진행합니다. 아래 링크 들어가서 입맛에 맞게 다운 받을 수 있습니다. > CentOS 기반 : https://docs.docker.com/engine/install/centos/ Install Docker Engine on CentOS Learn how to install Docker Engine on CentOS. These instructions cover the different installation methods, how to uninstall, and next steps. docs.docker.com 일단 여기서 제가 작업한 내용을 간단히 요약하자면 1. docker-compose를 사용해 rabbitmq..

RabbitMQ 2024.01.18

@Transactional 란?

@Transactional 메서드나 클래스에 적용되어 해당 메서드나 클래스에서 수행되는 모든 작업을 하나의 트랜잭션으로 묶어주는 역할 해당 메서드나 클래스에서 수행된 작업 중 어떤 하나라도 실패하는 경우, 모든 작업이 취소되어 데이터 일관성이 유지된다. Transaction ACID 1) 원자성 (Atomicity) - 한 트랜잭션 내에서 실행한 작업들은 하나의 단위로 처리 - 모두 성공하거나 모두 실패 2) 일관성 (Consistency) - 트랜잭션은 일관성 있는 데이터베이스 상태를 유지 3) 격리성 (Isolation) - 동시에 실행되는 트랜잭션들이 서로 영향을 미치지 않도록 격리 4) 영속성 (Durability) - 트랜잭션을 성공적으로 마치면 결과가 항상 저장 @ 애너테이션 속성 * 접근제어..

Java 2023.05.01

[ DDD ] 02. 아키텍처 개요

이 게시글은 "도메인 주도 개발 시작하기 : DDD 핵심 개념 정리부터 구현까지" 최범균 님의 책을 기반으로 작성하였습니다. [DDD] 01. 도메인 모델 시작하기 이 게시글은 "도메인 주도 개발 시작하기 : DDD 핵심 개념 정리부터 구현까지" 최범균 님의 책을 기반으로 작성하였습니다. DDD란? Domain Driven Design 의 약어 도메인 주도 설계로 도메인을 중점으로 ddol.tistory.com 네 개의 영역 표현 영역 사용자의 요청을 받아 응용 영역에 전달, 응용 영역의 처리 결과를 다시 사용자에게 보여주는 역할을 한다. 표현 영역의 사용자는 웹 브라우저를 사용하는 사람일 수도 있고, REST API를 호출하는 외부 시스템일 수도 있다. 응용 영역 사용자의 요청을 전달받아 사용자에게 제..

DDD 2023.04.30

[DDD] 01. 도메인 모델 시작하기

이 게시글은 "도메인 주도 개발 시작하기 : DDD 핵심 개념 정리부터 구현까지" 최범균 님의 책을 기반으로 작성하였습니다. DDD란? Domain Driven Design 의 약어 도메인 주도 설계로 도메인을 중점으로 설계하는 방식이다. 도메인이란? 우리가 온라인 서점을 구현해야한다고 가정해보면, 온라인 서점은 구현해야 할 소프트웨어의 대상 온라인 서점 안에는 책을 판매하는 데 필요한 상품 조회, 구매, 결제, 배송 추적 등의 기능이 필요 소프트웨어로 해결하고자 하는 문제 영역인 온라인 서점이 도메인에 해당한다. 도메인의 특징 한 도메인은 다시 하위 도메인으로 나뉠 수 있다. ex) 온라인 서점 도메인의 하위 도메인으로 회원, 카탈로그, 주문, 정산, 배송 등등 카탈로그 하위 도메인은 고객에게 구매할 ..

DDD 2023.04.23

[Spring] DAO, DTO, VO, Record 개념 및 차이점

DAO 의 경우 데이터 엑세스를 위한 객체 DTO, VO, RECORD 의 경우 데이터를 표현하기 위한 객체 DAO ( Data Access Object ) 데이터 액세스 객체 DB에서 데이터를 가져오거나 DB에 데이터를 저장하는 등의 작업을 수행하는 객체 비즈니스 계층과 DB 간의 인터페이스 역할 DTO ( Data Transfer Object ) 데이터 전송 객체 데이터를 효율적으로 전송하기 위한 객체 일반적으로 DB에서 가져온 데이터를 다른 계층에서 사용하기 적합한 형식으로 변환하여 전송하는데 사용 DTO 속성은 getter / setter 메서드로 구성 데이터 전송에만 사용 VO ( Value Object ) 값 객체 데이터의 불변성을 보장하고 상태를 가지지 않음 보통 DB의 한 행 또는 여러 행..

Java 2023.04.17

[Spring] Controller Request 값 @valid 이용하여 검증하기

Controller에서 값을 받아 일일이 값을 검증해주다보니 소스가 길어지고 가독성이 안좋아지는 것 방지하고자 @valid를 사용하게 되었다. 1. build.gradle 에 validation 의존성 추가 dependencies { implementation('org.springframework.boot:spring-boot-starter-validation') } 2. Request Class 에 검증할 어노테이션 추가 @Getter @FieldDefaults(level = AccessLevel.PRIVATE) public class CreateUserRequest { @NotBlank(message = "아이디를 입력해주세요.") String id; @Min(value = 8, message = "..

Java 2023.04.16

[Vue.js] Watch 속성

대부분의 경우 computed 속성이 더 적합하지만 간혹 감시자가 필요한 경우 watch 속성이 필요 변경되는 값을 캐치하고 싶을 때 watch 사용 button 클릭시 changeMessage()가 호출되며 메시지가 '안녕하세요' -> 'Hello'로 바뀐다. 그 message가 바뀌는 시점에 watch가 호출되고 파라미터는 새로운 값, 예전 값이 넘어오게 된다. (여기서 새로운 값 : Hello, 예전 값 : 안녕하세요) {{ message }} Button Click {{ updated }}

Vue.js 2021.09.19