DDD란도메인 주도 설계로, 도메인의 모델과 로직에 집중하는 설계 방식 데이터 주도 설계객체가 포함하고 있는 데이터를 조작하는데 필요한 행동을 정의하고 이를 중심적으로 설계하게 된다.객체가 수행할 책임이 아니라 상태에 초점을 맞추어 코딩을 하게된다.그래서 캡슐화의 원칙을 위반하게 된다.따라서 데이터 주도 설계에서 탈피해서 순수한 도메인의 모델과 로직에 집중하자는 것이 DDD 설계 방식이다. 용어 정리유비쿼터스 랭귀지 : 모든 사람이 사용하는 공통의 언어를 말하며, 정확하고 일관적으로 표현되는 단어나 문장을 말한다.도메인 : 해결하고자 하는 문제도메인 모델 : 문제를 개념적으로 표현한 것Entity : 테이블 모델Value Object(VO) : 불변 타입 객체로 일관성을 유지하기 위해 사용Aggregat..
분류 전체보기
회사 프로젝트 내 node.js 버전을 v22 -> v20으로 바꾸기로 했다. $ node --versionv22.1.0$ nvm install 20 Downloading and installing node v20.13.1...Downloading https://nodejs.org/dist/v20.13.1/node-v20.13.1-darwin-x64.tar.xz...################################################################################################################################################################################################..
import { decrease } from "@/services/repositories/decrease.repository";jest.mock("@/services/repositories/decrease.repository");describe('테스트코드 작성 시작...', () => { ... test('취소하기 중 어떤 유닛 테스트...', async () => { (decrease as jest.Mock).mockResolvedValue(...); ... jest로 테스트하는 코드를 보면 위처럼 작성하는 코드를 볼 수 있다. jest.mock을 사용하면 모듈 내의 모든 함수와 클래스를 자동으로 모킹할 수 있다.그럼 위 코드는 어떻게 동작하는걸까? @/serv..
moleculer 프레임워크는 모노레포로 프로젝트를 구성해서 각 환경? 을 관리한다.모노레포는 공통이 되는 모듈을 npm에 배포해서 패키지형태로 관리하게 되는데이를 위해 Npm에 간단하게 배포하는 과정을 경험해보고자 한다. 1. 현재 프로젝트를 패키지로 만들기 $ npm init --scope=jihoon 개발자 Jihoon이라는 사람이 자신의 패키지를 발행하려고 할 때, jihoon이라는 스코프를 사용하여 패키지를 발행할 수 있다.이렇게 하면 패키지의 이름이 @jihoon/패키지이름 형식으로 지정되며, 해당 패키지가 Jihoon이라는 개발자에 의해 생성되었음을 명시적으로 알 수 있게 된다.따라서 npm init --scope=jihoon 명령어를 사용하면 Jihoon이라는 스코프로 새로운 npm 패..
·기타
1. 모노레포지금 회사에서는 1개의 API-Docs를 가지고 여러개의 프로젝트의 코드를 관리한다.즉, 1개의 API-DOCS Repo를 Database와 Swagger 사용을 위한 공용 레포로 사용하고나머지 Repo를 가지고 프로젝트 코드를 관리한다. 이유는 1개의 API-Docs를 단일 코드 저장소에 관리함으로써 모델 중복을 줄이고 의존성을 공통으로 관리해 코드 관리를 수월하게 하기 위함이다. 2.재공품work in progress product 라는 뜻으로 제품이 되기 전인 중간 생산물 정도의 의미이다.즉, 아직 공정 단계를 거치고 있는 물품으로 이해하면 된다. 3. 트리구조두 열 간의 참조 관계는 트리구조라 보기 어렵지만, parentWorkLog라는 컬럼이 부모노드 startLog, endLog ..
----https://reinvestment.tistory.com/66 세팅설명https://devblog.lazyig.com/36/ : 권한설명----npm init -y npm i sequelize pg sequelize-cli postgres 패키지 설치 후 sequelize init { "development": { "username": "jihoon", "password": "jihoon", "database": "instagram", "host": "127.0.0.1", "dialect": "postgres" }, "test": { "username": "root", "password": null, "database": "database_test..
molerculer는 kubernetes와 비슷하게 분산 시스템을 구축하고 관리하는 데 사용되는 도구이지만, 다른 목적과 영역에서 작동한다. Moleculer:Moleculer는 마이크로서비스 아키텍처를 구현하고 관리하는 데 사용되는 모듈러 서비스 프레임워크입니다.Node.js로 작성되었으며, 빠르고 확장 가능한 마이크로서비스 어플리케이션을 쉽게 개발할 수 있도록 지원합니다.서비스 간 통신, 분산 환경에서의 데이터 교환, 로드 밸런싱, 서비스 디스커버리 등의 기능을 제공하여 마이크로서비스 아키텍처를 구현하는 데 도움을 줍니다.Moleculer는 마이크로서비스 아키텍처를 구현하는 데 사용되는 프레임워크로, 애플리케이션의 내부 로직을 분리하여 서비스로 구성하고 관리할 수 있습니다.Kubernetes (K8s..
·git
.env 파일과 달리 .json 파일은 github action에 변수로서 관리하기 까다롭다. json 파일의 내용을 base64로 인코딩하여 일련의 문자열로 치환하고, 이를 secrets에 저장한 뒤에, 워크플로에서 다시 decode하여 사용할 수 있다. 기존 .env - name: Setting .env file run: | echo "POSTGRESQL_DEV_HOST=${{ secrets.POSTGRESQL_DEV_HOST }}" >> .env echo "POSTGRESQL_PASSWORD=${{ secrets.POSTGRESQL_PASSWORD }}" >> .env echo "AWS_ACCESS_KEY_ID=${{ secrets.AWS_ACCESS_KEY_ID }}" >> .env echo "A..