본문 바로가기

TypeScript5

모의 객체를 사용한 상호 작용 테스트 상호작용 테스트와 목상호 작용 테스트는 작업 단위가 외부 의존성과 어떻게 상호작용 하는지를 확인하는 방법입니다. 서드 파트 모듈 및 객체와 관련이 있으며, 어떤 매개변수로 호출이 되었는지, 어떤 호출이 실행되었는지를 검증합니다.상호 작용 테스트를 위해서는 외부로 나가는 의존성과 연결 고리를 끊어야 하며, 이때 목(mock)을 사용하여 의존성을 대체합니다. 목은 하나의 요구사항을 의미하기 때문에 하나의 테스트에서는 하나의 목만 사용하여, 한 가지의 요구사항만 검증합니다. 스텁과 마찬가지로 목을 작업 단위에 주입하는 방식은 아래와 같으며, 하나씩 차근차근 살펴보도록 하겠습니다.표준 방식 - 매개변수를 추가하여 주입함수형 방식 - 부분 적용 또는 팩토리 함수를 사용하여 주입모듈 방식 - 모듈 의존성을 추상화하.. 2025. 3. 4.
서클 모델을 추가하여 애플리케이션 구성하기 ✅ 도메인 주도 개발 기반 구현 코드 GitHub - seatbelt92/ddd-practiceContribute to seatbelt92/ddd-practice development by creating an account on GitHub.github.com 이번 글에서는 유저가 가입할 수 있는 서클 모델을 추가하여, 서클을 생성하고 서클에 가입하는 유즈케이스를 포함한 애플리케이션을 구성해보겠습니다.앞서 살펴봤던 값객체, 엔티티, 도메인 서비스, 리포지토리, 애플리케이션 서비스, 의존 관계 역전 원칙과 함께 도메인 주도 설계에서 다뤄지는 개념인 팩토리, 트랜잭션, 에그리게이트, 명세에 대한 설명과 코드도 기술해보겠습니다.그리고 저와 동일한 기술스택(Typescript, TypeORM, MySQL)을 .. 2025. 2. 8.
AWS Lambda 사용 시 Cognito 를 활용한 인증 인가 구현 개요 AWS Cognito란 인증, 인가(권한 부여) 및 사용자 관리를 제공하는 서비스입니다. 이번 글에서는 다음 3가지 방법론을 샘플 코드 혹은 콘솔 화면과 함께 다뤄볼 것입니다. 1) Cognito UserPool 설정 2) Cognito UserPool 에서 사용자 생성 및 토큰 발급 2) AWS Sam Template에서 권한 부여자 적용 Cognito UserPool 설정 1. 코그니토 콘솔에 로그인 하고, 을 클릭합니다. 2. Cognito 사용자 풀 로그인 옵션은 이메일로 설정해줍니다. 3. 암호 정책은 디폴트로 대문자가 포함되어 있지만, 을 통해 커스텀 가능합니다. 4. 멀티팩터 인증은 하지 않고, 이메일 확인을 체크했습니다. 5. 사용자 지정 속성으로 approved를 추가했습니다. Ga.. 2023. 6. 3.
AWS 람다 레이어 활용하기 (with esbuild) 개발 환경 TS / AWS_Lambda / AWS_SAM 목적 공통되는 로직을 람다 레이어로 모아놓고, 필요한 코드를 가져다 사용한다. 문제 및 해결책 람다 핸들러에서 레이어에 있는 코드를 어떻게 가져올 것인가 => /opt/nodejs/node_modules 경로에 람다 레이어 모듈들이 위치하므로, import를 해당 경로로 하되, tsconfig.json 에서 paths 컴파일 옵션을 사용하여 람다 함수가 있는 레포의 코드 경로를 읽을 수 있게 한다. 레포에 적어야 하는 코드를 어떻게 최소화 할 것인가. => 레이어 코드에서 tsc -d 를 통해 컴파일 한 index.d.ts 만 가져와서 입력한다. (npm or 깃헙 모듈을 사용하여 휴먼 에러 방지 가능) esbuild 번들링 에러 해결 => sam.. 2023. 2. 18.