반응형

DEV 38

TDD 해보기 (2)_Mocking 이란

TDD 위해서는 Mock Test, Mock Function 이란 개념을 알고있어야만 합니다. 오늘은 Jest 에서 제공하는 Mock Function 을 통해 Mock Test 를 알아보겠습니다. 제일 먼저, Mock 이 무엇인가? Mock 혹은 Mocking이란 의미 그대로 모조품 즉, 가짜객체를 의미합니다. 주로 “단위” 테스트를 작성할 때 해당 코드가 의존하고 있는 부분을 가짜로 대체하는 것을 말합니다. 왜 사용하지? 의존성 분리 테스트 격리성 유지 위 두가지 를 위해 Mocking을 합니다. 좀 더 자세히 설명하면, 가짜 객체를 사용해 단일 모듈 또는 클래스를 테스트 할 수 있도록 돕는데, A 클래스 에서 사용하는 B 클래스의 메서드를 Mocking 함을로써 B 클래스에 대한 의존성을 분리할 수 ..

TDD 2024.02.06

[Greedy][javascript] 백준 1541번

1541번: 잃어버린 괄호 (acmicpc.net) 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 문제 세준이는 양수와 +, -, 그리고 괄호를 가지고 식을 만들었다. 그리고 나서 세준이는 괄호를 모두 지웠다. 그리고 나서 세준이는 괄호를 적절히 쳐서 이 식의 값을 최소로 만들려고 한다. 괄호를 적절히 쳐서 이 식의 값을 최소로 만드는 프로그램을 작성하시오. 입력 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연..

TDD 해보기 (1) (express, jest)

이전 글에서 TDD 에 대해 알아본 내용을 바탕으로 테스트 주도 개발을 해보자!!! TDD 란 (tistory.com) TDD 란 TTD 는 Test Driven Development 의 약자로 테스트 주도 개발을 말한다. 작은 단위의 테스트 케이스를 작성하고 이를 통과하는 코드를 추가하는 단계를 반복하여 구현하는 방식으로 개발을 진행한다. TDD threezerosin.tistory.com 사용 기술 Express Jest 1. Red → Green → Blue 순으로 개발을 진행합니다. 2. 제품 데이터를 Create 하는 기능을 개발합니다. Red : ProductController 클래스의 createProduct 기능을 설계 createProduct 메소드는 함수여야 한다. 해당 메서드는 pro..

TDD 2024.02.06

Jest 란

Jest 는 페이스북에서 만든 자바스크립트 테스팅 라이브러리이다. 초기에는 프론트엔드에서 주로 사용되었지만, 최근에는 백엔드에서도 많이 사용하고 있다. Getting Started · Jest (jestjs.io) [Getting Started · Jest Install Jest using your favorite package manager: jestjs.io](https://jestjs.io/docs/getting-started) jest npm install npm install --save-dev jest 공식 문서 를 보면 사용법은 다음과 같다. //sum.js function sum(a,b) { return a + b; } //sum.test.js test('1+2=3', () => { exp..

TDD 2024.02.05

[git][에러] fatal: detected dubious ownership in repository at

새로운 git repository 생성하고 remote하는 도중에 fatal: detected dubious ownership in repository at 와 같은 에러가 발생하였다. 위 에러는 clone/push 와 같은 명령을 실행하려고 할때 레포지토리에 대한 모호한 소유권 때문에 발생하는 것이라고 한다. 에러 해결 방법은 터미널에서 알려주는 것과 같이 git config --global --add safe.directory [git local repo 위치] 위 명령어를 입력해주면 해결된다. 참고: Git command returns fatal error: "detected dubious ownership" | Bitbucket Data Center and Server | Atlassian Doc..

git 2024.02.05

TDD 란

TTD 는 Test Driven Development 의 약자로 테스트 주도 개발을 말한다. 작은 단위의 테스트 케이스를 작성하고 이를 통과하는 코드를 추가하는 단계를 반복하여 구현하는 방식으로 개발을 진행한다. TDD는 eXtream Programming(XP)의 ‘Test-First’ 개념에 기반을 둔 단순한 설계를 중요시 한다. 그럼 TDD 를 왜 알아야 하는가? 테스트를 통한 안정적인 어플리케이션 개발이 가능하다 디버깅 시간을 단축 가능하다 재설계 및 추가 구현 시 시간을 단축시키고 작업을 보다 수월하다 TDD 개발주기 TDD는 3단계의 개발주기를 갖는데 Red 단계에서는 실패하는 테스트 코드를 작성한다. Green 단계에서는 테스트 코드를 성공시키기 위한 실제 코드를 작성한다. Blue 단계에서..

TDD 2024.02.05

[Greedy][javascript] 백준 11047번

11047번: 동전 0 (acmicpc.net) 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 문제 준규가 가지고 있는 동전은 총 N종류이고, 각각의 동전을 매우 많이 가지고 있다. 동전을 적절히 사용해서 그 가치의 합을 K로 만들려고 한다. 이때 필요한 동전 개수의 최솟값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가..

[Greedy] 그리디 알고리즘 (1)

그리디 알고리즘 이란? 현재 상태에서 보는 선택지 중 최선의 선택지가 전체 선택지 중 최선의 선택지라고 가정하는 알고리즘 즉, 매 순간 마다 최선의 선택을 통해 최고의 결과를 도출해내는 알고리즘이다. 그러나 매 순간 최선의 선택이 최고의 결과를 도출해 내는 것은 아니기 때문에 그리디 알고리즘을 사용하여 코딩 테스트를 응시할때는 그리디 알고리즘을 사용해도 되는 문제인지 판별할 수 있어야 한다. 핵심 이론 1. 현재 상태에서 가장 최선이라고 생각되는 해를 선택한다. 2. 선택한 해가 전체 문제의 제약조건에서 벗어나지 않는지 검사한다. 3. 현재까지 선택한 해 집합이 문제를 해결할 수 있는지 검사 후 해결하지 못한다면 1부터 반복한다. 출처: [지금 무료] Do it! 알고리즘 코딩테스트 with JAVA 강..

반응형