개발/JavaScript, TypeScript 13

Typescript 타입을 배열로 정의해보자

Typescript는 Javascript를 Java, C, Swift, Kotlin처럼 정적 타입으로 쓸 수 있게 해주는 Javascript의 슈퍼셋이다. 빌드가 되면 브라우저 또는 Node.js가 이해할 수 있는 퓨어한 Javascript로 바뀌어 동적 타입인 Javascript의 태생적 한계를 극복하고 Javascript 생태계를 보다 안정적으로 쓸 수 있게 해준다. 다음을 살펴보자 let a = 1; console.log(typeof a); // number a = 'abc' console.log(typeof a); // string Javascript는 이처럼 변수를 선언해서 number 타입을 넣었다가 string 타입을 넣었다가 자유롭게 쓸 수 있다. 이처럼 동적 타입이기 때문에 때로는 변수를..

tsconfig의 baseUrl, paths 설정

개발을 하다 보면 직접 만든 utils 또는 프론트엔드의 경우 components 폴더, styles 폴더 등 현재 작업 파일과 다른 경로의 파일들을 import 시켜야 할 때가 있다. import 시킬 필요가 없는 파일은 아주 단순한 스크립트이거나 온갖 로직을 하나의 파일에 다 작성할 때인데 별로 좋지 않은 패턴이다. 그래서 파일의 상단에는 다음과 같은 현상이 일어난다. import styled from 'styled-components'; import { TextField } from '../../components/textfield'; ... line 1과 line2가 import 방식이 조금 다른 것을 알 수 있다. line 1의 styled의 경우 styled-components라는 npm 패키..

node.js 및 npm 버전 업데이트

실무에서는 레거시 프로젝트도 있어서 node 버전 관리 프로그램을 따로 쓰기도 하지만 개인 컴퓨터는 굳이 그럴 필요까진 없고 그냥 LTS 버전만 써도 별 문제가 없다. 근데 LTS버전도 아예 새롭게 바뀌는 경우도 있고 마이너 업데이트가 되는 경우가 있다. 그래서 개인 컴퓨터에서도 가끔은 업데이트를 해주는 게 좋다. 참고로 내 개인 컴퓨터 환경은 macOS Big Sur 11.3, M1 칩셋이며 이 환경에서 진행을 했다. $ node -v $ npm -v 버전을 찍어보니 node는 14.16.0, npm은 7.10.0이었다. 다운로드 | Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org nod..

Array의 반복 관련 메서드(2) - reduce

JavaScript Array의 반복 관련 메서드 두 번째 포스트다. 첫 번째 포스트는 다음을 참고 바란다. Array의 반복 관련 메소드(1) forEach, map, reduce 등 javascript에서의 반복 관련 메소드가 있는데, 그냥 편하게 반복문이라고도 하지만 정확히는 Array 객체의 메소드이다. 다만 for문 등 반복문과 비교가 되어 반복문으로 분류하기 think-dev.tistory.com 첫 번째 포스트에서는 forEach, map, filter, find를 다뤘다. 위 메소드들은 실무에서 많이 쓰지만 reduce하나면 거의 커버가 가능하고, 추가적인 형태로도 구현이 가능하다. 물론 reduce 역시 별도로 break문은 없어서 find를 구현하긴 어렵지만 시간 복잡도를 생각하지 않는..

Array의 반복 관련 메서드(1)

forEach, map, reduce 등 javascript에서의 반복 관련 메서드가 있는데, 그냥 편하게 반복문이라고도 하지만 정확히는 Array 객체의 메서드이다. 다만 for문 등 반복문과 비교가 되어 반복문으로 분류하기도 하지만 뭐 이렇든 저렇든 상관은 없다. forEach const ary = [1, 2, 3, 4, 5]; ary.forEach((e) => { console.log(e); // 1, 2, 3, 4, 5 }); // 이렇게 람다식으로 써도 된다. ary.forEach(e => { console.log(e); // 1, 2, 3, 4, 5 }); // 두 번째 인자는 Array의 index를 의미한다. ary.forEach((e, i) = > { console.log(e); // 1..

tsc, tsc-watch 활용법

TypeScript는 JavaScript처럼 그 자체로 런타임에서 돌지 않는다. 다시 말해, TypeScript는 JavaScript로 컴파일이 되어야 Node.js든 브라우저에서든 작동할 수 있다. TypeScript는 JavaScript의 정적 타입 버전으로 원래 동적 타입 언어인 JavaScript를 좀 더 쓸 만하게 만든 언어이다. 물론 정적 타입 언어가 무조건 동적 타입 언어보다 좋은 것은 아니다. 경우에 따라 동적 타입 언어가 더 유리한 경우가 있다. 다만 협업을 하거나 오랜 기간 유지보수를 해야 할 경우에는 거의 대부분 정적 타입 언어가 유리하다. 아무튼 이제는 백엔드 영역에서 Node.js를 사용하거나, 수명 이상이 참여하는 프로젝트에서는 TypeScript는 필수적이다. Node.js의 ..

TypeScript 환경 설정 - tsc, tsc-watch 설치

VSCode 기준 기본적으로 tsc를 전역 설치해야 한다. 그런데 TypeScript 는 그대로 런타임에 돌지 않고 JavaScript로 변환된 다음에 실행되기 때문에 소스코드를 고칠 때마다 tsc를 돌려서 빌드를 해줘야 한다. 그게 귀찮아서 tsc-watch를 설치한다. $ npm install -g tsc tsc-watch # 필요시 sudo 포함하여 명령 . 이번 포스트에서는 설치만 적고, 활용법은 나중에... tsc, tsc-watch 활용법 TypeScript는 JavaScript처럼 그 자체로 런타임에서 돌지 않는다. 다시 말해, TypeScript는 JavaScript로 컴파일이 되어야 Node.js든 브라우저에서든 작동할 수 있다. TypeScript는 JavaScript의 정적 타입 버전..