분류 전체보기
-
05. 스프링 데이터 JPA를 이용한 조회 기능책 공부/DDD 도메인 주도 개발 시작하기 2024. 1. 24. 08:39
1. CQRS 패턴에 대한 간단한 소개 CQRS에 대해서는 11장에서 학습 p. 174 명령(Command) 모델과 조회(Query) 모델을 분리하는 패턴 명령 모델 command 상태를 변경하는 기능 구현 ex : 회원 가입, 암호 변경, 주문 취소 엔티티, 애그리거트, 리포지터리 등 모델은 명령 모델로 주로 사용된다. 조회 모델 query 데이터를 조회하는 기능 구현 ex : 주문 목록, 주문 상세 정렬, 페이징, 검색 조건 지정과 같은 기능은 조회 기능에 사용된다. 이 장에서 사용하는 예제 코드는 리포지터리(도메인 모델에 속한)와 DAO(데이터 접근을 의미)라는 이름을 혼용해서 사용한다. 2. 검색을 위한 스펙 p. 175 검색 조건이 고정되어 있고 단순하면 다음과 같이 특정 조건으로 조회하는 기능..
-
mermaid - sequenceDiagram 작성시 인스턴스 순서 지정Mermaid 2024. 1. 17. 21:34
participant 키워드를 사용하여 첫 부분에 선언해주면 인스턴스의 순서를 설정 가능하다. sequenceDiagram title 요청 처리 흐름 actor browser participant c as controller participant a as app service participant d as domain object participant r as repository browser ->> +c : 1: Http 요청 c ->> c : 1.1: 요청 데이터를 응용 서비스에 맞게 변환 c ->> a : 1.2: 기능 실행 a ->> r : 1.2.1: find r -->> a : 1.2.2: 도메인 객체 리턴 a ->> d : 1.2.3: 도메인 로직 실행 participant 설정 안한 경우 ..
-
(링크) JPA - @Embedded @Embeddable 소개Spring Boot 🍃 2024. 1. 17. 19:49
https://dandev.tistory.com/entry/JPA-Embedded-Embeddable란-무엇이며-언제-사용할까-🤔 [JPA] @Embedded , @Embeddable란 무엇이며 언제 사용할까? 🤔 오늘은 @Embedded는 무엇이며 언제 어떻게 사용하는지에 대해 알아보자. 바로 시작해보자. 🔥 회원 엔티티가 다음과 같다고 가정해보자. 회원 엔티티는 이름, 도시, 주소 번지, 주소 우편번호를 가 dandev.tistory.com 관련 어노테이션 - @AttributeOverride : https://living-only-today.tistory.com/261 [JPA] @AttributeOverride - 매핑 정보 재정의 @AttributeOverride @MappedSuperclass..
-
DDD - 02. 아키텍처 개요책 공부/DDD 도메인 주도 개발 시작하기 2024. 1. 16. 22:12
응용 영역 p. 63 표현 영역을 통해 사용자의 요청을 전달받는 응용 영역은 시스템이 사용자에게 제공해야 할 기능을 구현한다. 응용 영역은 로직을 직접 수행하기 보다는 도메인 모델(도메인 영역)에 로직 수행을 위임한다. 인프라스트럭처 영역 p. 64 인프라스트럭처 영역은 구현 기술에 대한 것을 다룬다. 이 영역은 RDBMS 연동을 처리하고, 메시징 큐에 메시지를 전송하거나 수신하는 기능을 구현하고(Messging Service), 몽고DB나 레디스와의 데이터 연동(NoSQL 연동)을 처리한다. 이 영역은 SMTP를 이용한 메일 발송 기능을 구현하거나 HTTP 클라이언트(ex. RestTemplate, OpenFeign)를 이용해서 REST API를 호출하는 것도 처리한다. 인프라스트럭처 영역은 논리적인 ..
-
DDD - 01. 도메인 모델 시작하기책 공부/DDD 도메인 주도 개발 시작하기 2024. 1. 16. 21:40
p. 30 어플리케이션 아키텍처 일반적인 어플리케이션의 아키텍처는 네 개의 영역으로 구분된다. 사용자 인터페이스 또는 표현(Presentation) 사용자의 요청을 처리하고 사용자에게 정보를 보여준다. 여기서 사용자는 소프트웨어를 사용하는 사람뿐만 아니라 외부 시스템일 수도 있다. 응용 Application 사용자가 요청한 기능을 실행한다. 업무 로직을 직접 구현하지 않으며 도메인 계층을 조합해서 기능을 실행한다. 도메인 Domain 시스템이 제공할 도메인 규칙을 구현한다. 인프라스트럭처 데이터베이스나 메시징 시스템과 같은 외부 시스템과의 연동을 처리한다. p.41 문서화 문서화를 하는 주된 이유는 지식을 공유하기 위함이다. 코드는 상세한 모든 내용을 다루고 있기 때문에 코드를 이용해서 전체 소프트웨어를..
-
배포시 docker container 존재하면 삭제 후 container 새로 실행하는 코드Jenkins 2024. 1. 15. 20:24
image_name="study-jenkins" container_name="study-jenkins" if [[ "$(docker ps -q -f name=$container_name)" ]]; then echo "Container '$container_name' already exists, stopping and removing" docker stop $container_name docker rm $container_name fi docker build -t $image_name /var/www/project/study-jenkins/. docker run -d -p 1111:8080 --name $container_name $image_name:latest -q : 간결한 출력을 생성 -f name..
-
Jenkins ERROR: Exception when publishing, exception message [Exec exit status not zero. Status [125]]Jenkins 2024. 1. 15. 01:34
jenkins를 통해 build 후 배포시 docker image build 실패하는 경우 Exec command 설정에서 docker build 명령어의 dockerfile 위치를 절대 경로로 작성했는지 확인 나의 경우 ssh 접속 위치를 dockerfile이 배포되는 경로 /var/www/study로 해두었기 때문에 명령어의 실행 위치(pwd)가 /var/www/study일 줄 알고 dockerfile 위치를 .으로 작성해서 발생한 상황이었다. 절대 경로로 변경 후 정상 동작을 확인!
-
구현 완료 후 아쉬운 점을 기록하는 중개인 프로젝트/3. simple board 02 2024. 1. 14. 06:51
https://github.com/zhyun-project/simple-board-02/wiki/아쉬운-점들-기록 아쉬운 점들 기록 📌 simple-board-01 프로젝트에 회원 관리를 추가. Contribute to zhyun-project/simple-board-02 development by creating an account on GitHub. github.com 다음 주 월요일(내일)부터 전에 근무했던 회사에서 1~2달간 일하기로 되어서 조금 급하게 마무리하게 되었다. 혼자 설계하고 혼자 구현한 코드이기 때문에 틈틈이 코드를 보면서 아쉬운 점을 기록하려고 한다! 그리고 젠킨스 사용 방법도 얼른 익혀서 다음 프로젝트에는 CI/CD를 적용해 봐야지 💪 지난번 simple board 01 프로젝트를..