본문 바로가기

전체 글47

[React] 리액트 사용 시, 쓸만한 패키지 모음(1) 사이드 프로젝트를 개발하면서 FrontEnd 에 React 를 적용해보고 있는데, 편한 라이브러리들이 많아 몇 가지 정리해본 포스팅입니다. 1. styled-component 설치방법 #npm npm install styled-components #yarn yarn add styled-components 공식사이트 https://styled-components.com/ styled-components CSS for the Age styled-components.com 가장 먼저 styled-component 입니다. styled-component 를 사용하면 아래처럼 css 가 적용된 tag 를 커스텀해서 사용할 수 있습니다. const StyledWrapper = styled.div` margin:0 .. 2023. 6. 23.
[DDD] 애그리거트 트랜잭션과 Lock 기법 본 포스팅은 DDD 를 공부하면서 정리하기 위한 포스팅입니다. 출처: 도메인 주도 개발 시작하기 - DDD 핵심 개념 정리부터 구현까지 (저자. 최범균) 0. 트랜잭션과 Lock 트랜잭션과 Lock 이라는 용어는 보통 데이터베이스와 관련된 용어로 많이 사용됩니다. 트랜잭션(transaction)은 데이터베이스에서 발생하는 작업의 최소단위 를 의미하며, ACID 라고 불리우는 속성을 가지고, Lock은 데이터베이스가 데이터의 무결성와 일관성을 유지하기 위해 다른 트랜잭션이 데이터에 접근하지 못하도록 막는 기법입니다. 즉, 어떤 사용자가 특정 데이터를 수정/삭제/추가 하는 과정을 "데이터의 상태를 변경한다." 라고 했을 때, 데이터의 상태를 변경하는 과정 자체를 "트랜잭션" 이라고 부르고, 이 때 다른 사용.. 2023. 6. 18.
[DDD] 도메인 서비스(Domain Service) 본 포스팅은 DDD 를 공부하면서 정리하기 위한 포스팅입니다. 출처: 도메인 주도 개발 시작하기 - DDD 핵심 개념 정리부터 구현까지 (저자. 최범균) 1. 도메인 서비스(Domain Service) 란? 비지니스 로직을 개발하다보면, 애그리거트 1가지만 가지곤 개발할 수 없는 기능이 발생할 수 있습니다. 예를 들면, 아래와 같은 기능이 있다고 가정해보겠습니다. 판매처에서 할인쿠폰을 발급해 구매자가 해당 판매처의 상품을 구매시, 쿠폰을 통해 금액을 할인받을 수 있는 기능 위 기능을 개발하기 위해 필요한 애그리거트는 대략 3가지 정도로 생각해볼 수 있습니다. (물론, 더 디테일하게 고민해보면 더 많아질 수 도, 더 적어질 수 도 있습니다.) 주문 애그리거트 : 실제 주문 정보를 생성 상품 애그리거트 : .. 2023. 6. 14.
[DDD] 응용 서비스 구현과 표현 계층 본 포스팅은 DDD 를 공부하면서 정리하기 위한 포스팅입니다. 출처: 도메인 주도 개발 시작하기 - DDD 핵심 개념 정리부터 구현까지 (저자. 최범균) 1. 응용 서비스 구현 방향 1-1. 도메인 로직 구현 안하기 DDD 를 공부하면서 가장 중요하게 생각했던 내용이라 해도 과언이 아닙니다. 저 같은 경우, 과거에는 비지니스 로직을 Application 계층(Service 계층) 에 개발하는 트랜잭션 스크립트 패턴을 많이 활용했다면, 요즘 DDD 를 공부하며 비지니스 로직을 Domain 계층에 개발하는 도메인 모델 패턴을 많이 활용하고 있습니다. DDD 는 도메인 로직을 도메인 계층에 구현하는 것을 대원칙으로 두고 있습니다. 주문 취소 로직을 작성한다 했을 때, 트랜잭션 스크립트 패턴으로 개발한다면 아래.. 2023. 6. 7.
[DDD] 주문 애그리거트 구현하기(with JPA) 본 포스팅은 DDD 를 공부하면서 정리하기 위한 포스팅입니다. 출처: 도메인 주도 개발 시작하기 - DDD 핵심 개념 정리부터 구현까지 (저자. 최범균) 이번 포스팅에선 쇼핑몰 도메인의 일부분인 주문 도메인을 애그리거트 개념을 설명하면서 코드로 어떻게 구현될 수 있는지를 알아보겠습니다. 설명의 기준은 Spring 과 JPA를 예시로 적용할 것이므로 간단하게 프로젝트 세팅 방법부터 알아보겠습니다. 0. 준비하기 - 프로젝트 세팅 및 설정 추가하기 스프링 프로젝트를 생성할 때 저는 https://start.spring.io/ 페이지를 이용합니다. 해당 URL 로 접속하면 아래와 같은 화면이 나타납니다. https://start.spring.io/ 위 화면에서 아래 순서로 설정해주시면 됩니다. 가장 기본으로 .. 2023. 6. 3.
[DDD] 애그리거트(Aggregate) 이해하기 본 포스팅은 DDD 를 공부하면서 정리하기 위한 포스팅입니다. 출처 : 도메인 주도 개발 시작하기 - DDD 핵심 개념 정리부터 구현까지 (저자. 최범균) 1. 애그리거트(Aggregate) 애그리거트는 도메인 영역을 구성하는 요소 중 하나로, 관련된 도메인 객체들의 집합을 뜻합니다. 어떠한 도메인 모델을 이해하기 위해, 상위 수준의 도메인 모델과 하위 수준의 도메인 모델을 이해하는데 아래와 같은 예시로 설명할 수 있습니다. 상위 수준 도메인 모델의 경우, 비교적 큰 개념 간의 관계를 나타내는 반면 하위 수준 도메인 모델의 경우, 주로 객체 단위의 관계를 표현합니다. (클래스 다이어그램의 간략화 버전 정도로 이해하셔도 될 듯 합니다.) 문제는 상위 수준 도메인 모델을 기반으로 하위 수준 도메인 모델을 도.. 2023. 6. 2.