전체 글
-
타입스크립트 컴파일러인사이트 2025. 4. 17. 13:09
타입스크립트 컴파일러 💡 타입스크립트 컴파일러가 Go로 재작성되고 있는 이유 → 성능 향상 타입스크립트 컴파일러는 타입스크립트 자체로 작성되어 Node.js 환경에서 실행되었다. 이는 개발 초기에는 유연성을 제공했지만대규모 프로젝트에서 빌드 속도가 느리고 메모리 사용량이 많다는 단점이 있었다. Go 언어는 빠른 컴파일 속도, 낮은 메모리 사용량, 그리고 뛰어난 동시성 지원으로 알려져 있다. 타입스크립트 팀은 Go로 컴파일러를 재작성함으로써 다음과 같은 이점을 기대하고있다. 훨씬 빠른 빌드 속도: 최대 10배까지 성능 향상낮은 메모리 사용량: 대규모 프로젝트에서도 효율적인 컴파일 가능향상된 개발자 경험: IDE에서의 코드 완성, 오류 검사 등의 속도가 빨라져 더욱 쾌적한 개발 환경을 제공 (논란)? C#..
-
내가 중요하게 생각하는 tsconfig, ESLint - isolatedModule를 깊게 파봤다.카테고리 없음 2025. 4. 10. 17:22
나는 tsconfig.json은 기본 세팅대로 가져가는 편이고, 그중 가장 중요하게 생각하는 속성들은 총 4가지를 뽑는다.꼽아보니 대부분 실수로 누락하는 걸 방지해 주는 속성들이다. 4가지 중에서 isolatedModules에 대해 자세히 알아보려고한다.네 가지 속성을 간단히 소개하자면 아래와 같다.noImplicitReturns: 모든 경로에서 함수에서 return을 하는지를 확인해 주는 옵션. 실수를 컴파일 타임에 잡을 수 있다.noImplicitAny: 컴파일러가 특정 변수의 타입을 any로 추론하게 되면 에러를 일으키도록 하는 옵션이다. 요즘은 @typescript-eslint/no-explicit-any로 해결.strictNullChecks: null, undefined, any타입 외의 모든 ..
-
맵드 타입(Mapped Type)인사이트 2025. 4. 3. 14:13
맵드 타입(Mapped Type) 정의: 타입 연산은 기존 타입을 기반으로 새로운 타입을 생성. ✅ 기본 문법{ [ P in K ] : T }{ [ P in K ] ? : T }{ readonly [ P in K ] : T }{ readonly [ P in K ] ? : T } ✅ 여러 개의 키-값 쌍을 가지는 객체를 표현할 때type MagicWords = '이걸요?' | '제가요?' | '왜요?';type Gauges = { [K in MagicWords]: number };const gaugesInfo: Gauges = { "이걸요?": 54, "제가요?": 1000, "왜요?": 33,} ✅ 불변 데이터의 유연한 변환 가능 공식문서- 매핑중에는 추가할 수 있는 수정자로 readonly..
-
인덱스드 시그니처 (Index Signatures)와 인덱스드 접근 타입 (Indexed Access Types)인사이트 2025. 3. 27. 13:47
JavaScript의 유연성과 TypeScript의 정적 타입 시스템 사이의 간극을 메우기 위한 것들을 이번 톺아보기 스터디에서 주로 다루고있는데,오늘은 인덱스드 시그니처 (Index Signatures)와 인덱스드 접근 타입 (Indexed Access Types)에 대해 이야기해보려한다. 인덱스드 시그니처 (Index Signatures) JavaScript의 객체는 속성 이름을 동적으로 추가하거나 변경할 수 있는 매우 유용한 자료 구조이다. 하지만 타입스크립트와 같은 정적 타입 언어에서는 객체의 속성 이름과 타입을 미리 정의하는 것이 일반적이다. 하지만, API 응답 데이터 등 속성 이름이 런타임에 결정되거나 예측하기 어려운 경우가 많다보니, 타입스크립트에서 모든 가능한 속성 이름을 정의하는 것은 ..
-
react-hook-form 검증 타입에서 보는 제네릭(Generic)의 이점.카테고리 없음 2025. 3. 20. 15:50
제네릭제네릭은 C#, Java 등의 언어에서 재사용성이 높은 컴포넌트를 만들 때 자주 활용되는 특징이다.제네릭(generic)이란 데이터의 타입을 일반화한다는 것을 의미하며 보통은 제네릭을 통해 클래스나 메소드에서 사용할 내부 데이터 타입을 지정하고, 컴파일 단계에서 type check를 수행하는 것이다. 제네릭 타입으로 프로그래머는 여러 타입의 컴포넌트나 자신만의 타입을 정의해 사용할 수 있다.TypeScript 제네릭의 사용하는 이유와 이점은 여러가지가 존재하지만, 나는 코드 재사용성(Code Reusability)이 가장 큰 장점이자, JavaScript와 타입언어의 교집합적인 부분이라 생각한다. 제네릭은 다양한 타입에 대해 재사용할 수 있는 코드를 작성하는 데 도움이 된다. 하나의 제네릭 클래스를..
-
타입스크립트의 enum은 언제 사용하면 좋을까?카테고리 없음 2025. 3. 13. 15:54
1. 역방향 매핑2. 예시 enum이란?타입스크립트의 고급 타입으로,. 쉽게 말하자면 특정한 상수들이 열거되어 있는 변수이다.enum은 타입스크립트에서 자체적으로 구현하는 기능이다. enum의 역방향 매핑이란?역방향 매핑이란, enum에서 숫자 값을 통해 원래의 enum 키를 찾을 수 있는 기능을 의미한다. 즉, enum의 숫자 값을 사용하여 해당 값에 매핑된 키를 얻을 수 있다. enum StatusCode { Success = 200, NotFound = 404, Error = 500, } console.log(StatusCode[404]); //NotFound console.log(StatusCode["404"]); // NotFound console.log(Status..
-
타입스크립트의 any는 언제 써야할까? 이를 보완할 수 있는 방법은 없을까?인사이트 2025. 3. 6. 15:15
1. JavaScript의 자유로움과 그 한계JavaScript는 동적 타입(dynamic typing) 언어로, 변수를 선언할 때 특정 타입을 지정할 필요가 없다.이러한 유연성 덕분에 JavaScript는 빠른 프로토타이핑과 유연한 개발이 가능하지만, 코드의 안정성이 떨어지고, 대규모 프로젝트에서는 유지보수가 어려워지는 문제가 발생한다.let a = "Hello";a = 42; // 정상 동작 특히 내가 느꼈던, JavaSciprt의 한계점은 크게 두가지였다. 타입 오류가 런타임에서야 발견됨 → 해당 타입만 가지고있는 메서드 사용하다가, API 콜 타입이 달라지면 그대로 에러.협업 시 코드의 의도가 불명확 → 유지보수와 확장성이 어려워짐. 오타 포함. 사실 오타때문에 더 고생하는 것 같았음.2. Typ..
-
프론트엔드라도 수학이 필요하다. (feat: 친동생과의 수학과외 시작)인사이트 2025. 2. 22. 15:46
3년전 프론트엔드 부트캠프를 알아볼 때였다.그 당시 비전공자 학생들을 대상으로 하는 단기 부트캠프가 인기가 많았다. 나도 그랬지만, 비전공자 학생들이 가장 걱정하던 것 중 하나가 '수학과 CS 지식'이었다. 주변에선 "프론트는 CS나 수학적 지식이 실무에선 그렇게 필요 없다"며 학생들을 안심시켰다. 그 말이 반은 맞고 반은 틀렸다고 생각한다. CS 지식이나 수학적 지식이 없이도 개발은 가능하다. 일단 돌아가게 만든다면 충분히 가능하다. 하지만 서비스를 지속적으로 운영하는 회사라면 이야기가 달라진다. CS 지식과 수학은 결국 비즈니스를 고려한 코드를 작성할 때 숲을 보는 역할을 해준다. 오늘은 그 중 수학이 왜 필요한가에 대해 글을 써보려 한다. 초중고 시절 주입식 교육 때문에 수학은 공식을 무조건 외웠고..