Frontend

    relationship 옵션 ( eager relationships, Lazy relations)

    relationship 옵션 ( eager relationships, Lazy relations)

    eager relationships@ManyToMany(type => Category, category => category.questions, {eager: true})@JoinTable()categories: Category[];Eager relation은 데이터베이스에서 엔티티를 로드할 때마다 자동으로 relation 필드들을 로드한다.너무 많은걸 load 하면 서버 부하가 심하므로 주의해야 한다.// 나쁜예 - 많은 정보를 load 하고 있다.subscription { cookedOrders { restaurant { name } total customer { email restaurants { owner { email..

    for...of와 forEach 차이

    for...of와 forEach 차이

    🧐 for...of 루프- 반복을 중간에 멈출 수 있다🧐 forEach 메서드- 중간에 반복을 멈출 수 없다.- 예외를 던지는 방법을 사용하면 멈출 수는 있지만 권장되지 않음  const items = [ { name: 'Pickle', extra: 1 }, { name: 'Size', choices: ['Small', 'Medium', 'Large'] }];  for...of 루프for (const item of items) { console.log(item.name);}for...of 루프는 배열이나 다른 이터러블 객체의 요소를 반복하는 데 사용된다.반복을 중간에 멈출 수 있다.  forEach 메서드items.forEach(item => { console.log(item.name);});..

    Mocking, 가짜 레파지토리, 함수 만들기

    Mocking, 가짜 레파지토리, 함수 만들기

    Mocking이란 테스트에서 실제 객체나 함수 대신에 가짜 객체나 함수를 사용하는 기법을 말한다. 주로 테스트 환경을 제어하고, 특정 상황을 시뮬레이션하며, 테스트의 정확성을 보장하기 위해 사용된다. Mock 란 가짜 함수의 실행, 가짜 클래스의 실행이다.  Mocking의 주요 목적 TypeORM에서 진짜 유저 Repository를 불러오지 않고 유저 서비스를 단독으로 테스트하기 위해서이다. 의존성 제거: 테스트할 코드가 외부 시스템(예: 데이터베이스, API)과 상호작용할 때, 실제 시스템에 의존하지 않고 가짜 객체를 사용하여 독립적으로 테스트할 수 있다.예측 가능한 결과: 가짜 객체나 함수의 동작을 명확하게 정의함으로써, 테스트 결과를 예측하고 일관되게 유지할 수 있다.테스트의 안정성 향상: 외부 ..

    Jest로 단위 테스트 코드를 구현할 때 자주 사용되는 API

    Jest로 단위 테스트 코드를 구현할 때 자주 사용되는 API

    Jest로 단위 테스트 코드를 구현할 때 자주 사용되는 API describedescribe('User Service', () => { // 여기서 User Service와 관련된 테스트 케이스를 작성합니다.});테스트할 대상에 대한 설명을 작성하는 데 사용한다. 그룹화된 테스트 케이스를 설명하여 어떤 기능이나 모듈을 테스트하고 있는지 명확하게 나타낸다.   하나의 테스트 케이스를 test()라고 한다면 describe()는 여러 개의 테스트 케이스를 하나의 그룹으로 묶어주는 역할을 한다. itit('should create a new user', () => { // 새로운 사용자가 생성되는지 테스트하는 코드}); 개별적인 테스트 케이스를 나타내며, 특정 상황이나 조건에서 코드가 어떻게 동작하는지 테..