Typescript 9

[js, ts] 시간 계산에 getTime()을 쓰면 좋은 이유

1. 값만 뽑아서 비교를 정확하고 안전하게 할 수 있다.const date1 = new Date('2025-12-25 10:00');const date2 = new Date('2025-12-25 10:00');console.log(date1 === date2); // 결과: false (서로 다른 객체이기 때문)console.log(date1.getTime() === date2.getTime()); // 결과: true (시간 값이 같기 때문)자바스크립트에서 Date는 객체(Object)입니다. 객체끼리 ' > ' 나 ' 이처럼 getTime() 을 사용하면 객체 간 객체 비교가아니라 숫자 대 숫자의 비교가 되어 더 정확히 계산할 수 있게 됩니다. 2. 산술 계산getTime()을 쓰지 않고 date1,..

Typescript 2025.12.25

[TypeScript] Type vs Interface

TypeScriptTypeScript는 자바스크립트에서 타입을 더한, 자바스크립트의 상위 집합(Superset)이라 소개된다.// JavaScriptfunction add(a, b) { return a + b;}let result1 = add(10, 5);console.log(result1); // 출력: 15let result2 = add(10, "5");console.log(result2); // 출력: "105"result1의 경우 숫자 + 숫자 로 출력도 숫자인 15가 출력되었고 result2의 경우 숫자 + 문자열로 문자열 "105" 를 출력하는데,숫자 + 문자열 형태임에도 JS는 런타임에 이 상황을 오류로 처리하지 않고 문자열 연결로 처리한다.개발자의 의도가 저런 형태도 허용하는 것이었다면 ..

Typescript 2025.10.14

[Catarie] 이틀만에 S3 Put 요청이 2천회 넘기다.

Catarie를 배포한지 약 이틀이 지나고 자다가 AWS 알람메일이 왔다. S3 put 요청이 2천회를 넘긴 것 이다.아직 주변 지인들에게만 소개했던 서비스인데 어떻게 이렇게 인기 폭발(?)이라고 생각한 것도 잠시 조금만 생각해보니 당연한 것이었다.이전에 다른 글에서도 설명했는데, HLS 스트리밍 프로토콜을 사용하게되면, 원본 음원이나 영상이 .m3u8 확장자의 플레이어 리스트 파일과 *.ts 확장자로 이루어진 세그먼트들이 지정된 서버의 저장소로 저장되게 되는데, 이것이 청크의 단위를 짧게 할수록 영상의 끊김은 없을수 있지만 대신 그만큼 ts파일이 많아진다.Amazon S3에서는 저 파일 하나당 PUT 요청 1회로 치는 것이다. 그리고 나의 경우 원본 데이터, 해상도별 썸네일까지 한 컨텐츠에 추가로 4번..

Typescript 2025.09.15

[TypeScript] module/ moduleResolution 에러 해결과 옵션 정리

현재 진행중인 프로젝트 Gavarnie에서는 모노레포 형태로 개발 중이다. 이번에 개발 도중에 다음과 같은 에러를 만났는데,compilerOptions에서 발생하는 'moduleResolution=node10' 옵션은 더 이상 사용되지 않으며 TypeScript 7.0에서 작동하지 않습니다. 이 오류를 무시하려면 compilerOption '"ignoreDeprecations": "6.0"'을(를) 지정합니다.ts그 때 당시 api 모듈의 tsconfig.json은 아래와 같았다.{ "extends": "../../tsconfig.base.json", "compilerOptions": { "rootDir": "./src", "outDir": "./dist" }, "include": ["src/..

Typescript 2025.09.01

[TypeScript] TS Cheat Sheet (Type, Interface)

1. Type개요 우리가 평소에 줄여 말하는 Type의 전체 이름은 'type alias(타입 별칭)'이며 타입 리터럴에 이름을 붙이는데 사용된다.새로운 타입을 만드는 것이 아니라, 기존 특정 타입에 새로운 이름을 부여하여 코드의 가독성을 높이고 재사용성을 향상시키는 기능이다. 즉, 이미 존재하는 타입을 마치 변수처럼 다루면서, 복잡한 타입을 간단하게 표현하거나, 여러 곳에서 동일한 타입 정의를 재사용할 수 있도록 돕는다. type UserName = string;(키워드) (타입 별칭) (타입)type UserId = number;type ProductId = number;둘 다 숫자지만, 의미가 다르다. alias를 사용함으로써 코드를 읽는 사람은 이 숫자가 유저 ID인지, 상품 ID인지 바로 알..

Typescript 2025.08.19

배열 관련 메서드

https://github.com/SiHanni/personal_study/blob/main/codingTest/Queue_Stack/12906.js personal_study/codingTest/Queue_Stack/12906.js at main · SiHanni/personal_studyContribute to SiHanni/personal_study development by creating an account on GitHub.github.com문제 해결 중에 자바스크립트 배열 관련 메서드를 한번 정리해보고자 아카이빙 자바스크립트 배열 관련 메서드forEach, some, filter, map, find기본적으로 받는 세 가지의 파라메터현재 요소의 값 (element or value)현재 요소의 ..

Typescript 2024.10.22

forEach vs for

항목forEachfor용도배열의 각 요소를 반복할 때 사용배열, 범위, 복잡한 반복 로직에 사용인덱스 접근콜백 함수에서 인덱스를 인자로 제공명시적으로 인덱스를 직접 제어배열 요소 건너뛰기 불가능cotinue 사용루프 종료불가능break 사용반환 값반환 값을 무시, undefined 반환제어 가능, 필요한 값 반환 가능반복 중 배열 변경영향을 받지 않음배열의 길이 변경 시 바로 반영 가능   forEach의 장점:가독성: 배열의 각 요소를 순회할 때 forEach는 명확하고 간결하여 가독성이 좋다콜백 함수: 콜백 함수에 배열의 각 요소, 인덱스, 배열 전체를 인자로 전달받을 수 있어 유용함수형 프로그래밍: 배열을 함수형 스타일로 처리하는 흐름이 더 직관적forEach의 단점:루프 제어의 한계: forEac..

Typescript 2024.10.22

Shallow Copy, Deep Copy

얕은 복사와 깊은 복사객체나 배열을 복사할 때 인지하고 있어야하는 중요한 개념이다. 우선 참조타입(Reference Type), 타입 값(Value Type)의 차이를 알아야한다.Value Typenumber, string, boolean, null, undefined 등은 value type이다.값을 그대로 복사할 때 새로운 메모리 공간에 값을 복사한다.값을 복사한 뒤에는 두 값이 서로 독립적으로 존재한다.Reference Typeobject, array, function 등은 reference type 이다.변수에 값을 할당할 때 객체의 메모리 주소를 복사한다.두 변수가 동일한 객체를 참조하게 되어, 하나의 변수를 수정하면 다른 변수도 영향을 받게 된다. Shallow Copy얕은 복사는 최상위 수준..

Typescript 2024.10.08

유틸리티 타입

소개유틸리티 타입은 이미 정의된 타입을 변형하여 사용할 때 사용한다. 유틸리티 타입(Utility type)은 이미 정의되어 있는 타입 구조를 변경해서 재사용하고자 할 때 사용한다.우선 타입스크립트 설정 파일 내 compilerOptions 속성을 체크해준다.{ "compilerOptions": { "lib": ["ESNext"] }}정보(TypeScript 설정 파일인 tsconfig.json에서 compilerOptions는 TypeScript 컴파일러가 코드를 컴파일할 때 사용할 설정을 정의하는 속성이다. 해당 설정을 통해 컴파일러의 동작 방식을 제어하고, 프로젝트에 맞는 맞춤형 컴파일 환경을 구성할 수 있다.)(ESNext는 JavaScript의 최신 기능과 업데이트를 포함하는 스펙을 가..

Typescript 2024.07.08