반응형

JS 4

[TypeScript] enum 을 사용하면 이놈!

TypeScript 를 사용하면서 부터 enum 자주 활용했습니다.특히 특정한 값의 집합을 정의하여, 타입에도 사용할 수 있고 Swagger 에서도 Parameter 로 정의해 아주 편리하게 사용할 수 있다는 장점이 있었습니다.하지만, enum은 여러 가지 문제를 일으킬 수 있어서 사용을 지양하는 것이 좋다는 것을 알게되었습니다.이번 글에서는 enum의 문제점과 대안에 대해 설명해 보겠습니다.1. enum의 문제점자바스크립트 코드 변환 시 불필요한 코드 증가TypeScript의 enum은 JavaScript로 변환될 때 불필요한 코드가 생성됩니다.enum Status { Pending: "PENDING", InProgress: "INPROGRESS", Done: "DONE",}위의 코드를 JavaS..

JS & TS 2025.02.28

[정렬] 버블 정렬

가장 간단한 정렬 알고리즘 중 버블정렬에 대해 알아보도록 하자 데이터의 인접 요소끼리 비교하고, 스왑 연산을 수행하며 정렬하는 방식 최상의 경우 : O(n) 최악의 경우 : O(n^2) Bubble Sort 데이터가 이미 정렬되어 있는 경우에는 한번의 순회로 정렬이 가능하나, 그렇지 않다면 각 자리를 찾기 위해 n번 동안 n번 값을 찾아야한다. function bubbleSort(arr) { for (let i = 0; i arr[j]) { swap = arr[i]; arr[i] = arr[j]; arr[j] = swap; } } } return arr..

[JS] 자바스크립트 sort 알고리즘 - Tim Sort

얼마 전 퀵 정렬 알고리즘을 공부하면서 간단하게 퀵 정렬 알고리즘을 구현해보았다. [정렬] 퀵 정렬 (tistory.com) [정렬] 퀵 정렬 퀵 정렬이란 기준 값을 선정하여 해당 값보다 작은 데이터와 큰 데이터로 분류하는 것을 반복해 정렬하는 알고리즘 입니다. 기준값에 따라 시간 복잡도가 평균 O(nlogn)에서 최악의 경우에는 O(n ² threezerosin.tistory.com 구현 후 테스트 겸 자바스크립트에서 제공하는 sort 메서드와 비교를 위해 랜덤한 배열을 만들고 시간을 비교해보았는데… 길이가 1,000인 배열을 정렬 길이가 10,000인 배열을 정렬 길이가 100,000인 배열을 정렬 위 결과와 같이 배열의 길이가 늘어날수록 sort 메서드가 정렬을 처리하는 속도가 빨랐다. (물론 내가..

JS & TS 2024.02.08

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
반응형