전체 글 132

JavaScript Destructuring 구조 분해 할당

JavaScript Destructuring 구조 분해 할당 객체/배열을 분해하여 변수로 사용할 수 있게 해준다. 분해(Destructuring)는 파괴(Destructive)를 의미하지 않는다. 객체나 배열을 복사 후 변수로 분해 해준다는 의미다. 객체 구조 분해 - 중괄호 안 상수로 사용할 이름은 임의로 작성한다. 배열 구조 분해 - 대괄호 안 상수로 사용할 이름은 임의로 작성한다. - 콤마로 일부 반환값을 무시할 수 있다.

TIL 220602

TIL 220602 내부적으로 타입을 지원하지 않는 노드 라이브러리들이 많다. 그러므로 d.ts 파일을 생성하여 커스텀 타입을 만들어야 하는데 아직 완벽하게 이해가 가지 않는다. declare와 tsconfig에 옵션들에 관해서 조금 더 자세하게 공부해야겠다. 모르는 개념이 나오면 차분하게 생각해야 하는데 이 문제로 이번엔 몇 시간을 붙잡고 있을까라는 분노가 먼저 차오른다. 에러는 괜히 발생하는 게 아닌 게 알면서도 버그일까 하는 생각이 든다. 자바스크립트 환경에 익숙해져서 아직 적응이 안 되지만 어차피 타입스크립트를 한번 사용하면 쭉 타입스크립트만 사용할 수 있으니 긍정적인 마음가짐으로 침착하게 공부하자.

기타/회고 2022.06.02

TIL 220601

TIL 220601 오늘은 6월 1일이다. 오전에 투표와 운동을 하고 오후부터 공부했다. 어제 서버 설정과 폴더 구조를 잡았고 오늘은 시퀄라이즈를 통해 테이블을 만들었는데 기존 자바스크립트 환경에서는 sequelize-cli 명령어를 통해 간단하게 기본 틀을 만들 수 있었는데 타입스크립트 환경에서는 조금 달랐다. 기본적으로 시퀄라이즈는 내부적으로 타입을 지원하여 타입 시퀄라이즈 라이브러리를 별도로 설치하지 않아도 되고 런타임 속성에 의존하므로 타입스크립트를 바로 사용할 수 없다. 모델 생성과 로직을 생성하려면 상당히 많은 수동 설정이 필요했다. 시퀄라이즈 공식 문서에 타입스크립트 관련 자료가 자세하게 나와있는 거 같지만 아직 공식 문서를 참고하여 공부하는 게 익숙하지 않아 설정하는데도 참 많은 시간이 걸..

기타/회고 2022.06.01

TIL 220530

TIL 220530 주말 동안 남아있던 타입스크립트 강의를 마무리하고 오늘부터 노드에 타입스크립트를 적용 한 간단한 토이 프로젝트를 만들고 있다. 기능으로는 회원가입 로그인 게시판정도 될 거 같다. 현재 타입스크립트는 4버전인데 참고할 만한 자료들은 대부분 3버전을 사용하고 있어 일단 3버전 사용 후 완성하고 나서 공식 문서를 참고해 4버전으로 리팩토링 할 예정이다. 이번에 공부하면서 유지 보수와 가독성이 좋지 않아도 서버는 안정성이 매우 중요하다는 걸 다시 한번 생각했다.

기타/회고 2022.05.30

TypeScript 유틸리티 타입

TypeScript 유틸리티 타입 전역으로 사용 가능한 공통 타입 변환을 하기 위한 편의 기능의 집합이다. 중복 코드와 반복적인 행동을 피할 수 있게 해준다. partial - T의 모든 속성을 선택적 타입으로 구성한다. - User 인터페이스 속성 중 일부만 사용할 수 있다. Readonly - 인터페이스 생성 시 속성 앞 "readonly" 키워드를 한 번에 붙여주는 기능이다. Pick - T의 속성을 선택해 K의 새로운 타입으로 구성한다. Record - T의 프로퍼티 집합 K로 타입을 구성한다. 원하는 타입의 속성을 다른 타입에 매핑 시킬 수 있다. Omit - T의 모든 속성을 선택 후 K의 속성을 제거한 나머지 타입을 구성한다. ReturnType - T 함수의 반환 타입으로 구성된 타입을 만..

TIL 220529

TIL 220529 저번 주부터 시작했던 타입스크립트 기본 개념 공부의 끝이 보인다. 유틸리티와 데코레이터만 배우면 끝이다. 계획대로라면 이번 주 수요일에 끝났어야 했는데 가족 모임과 개인 사정으로 완료일이 많이 미루어졌다. 처음 타입스크립트 공부는 제로초님 웹 게임 타입스크립트 강의로 공부했는데 듣다 보니 부족한 거 같아 주변 추천과 수강 후기를보고 캡틴판교님 타입스크립트 입문 강의를 추가로 공부했다. 각 강의마다 일장일단이 있어 결론적으로 만족한다. 개인적으로 요새 많이 나태해졌다. 취업 준비 기간 동안 예정에 없던 프리랜서 일을 겸하고 있다지만 정말 진지하게 고민해 보니 핑계다. 수면과 개인 시간을 줄여 공부 할 시간을 만들어야 하는데 그러지 못하고 있다. 집중력도 저번 달이랑 비교하니 현저히 떨어..

기타/회고 2022.05.29

JavaScript ES Modules(ESM ES6)

JavaScript ES Modules 모듈이란 여러 기능(함수/변수 등)이 모여있는 하나의 파일이다. 모듈화를 통해 유지 보수와 재사용성을 높일 수 있다. ES 모듈은 기본적으로 strict 모드가 적용되며 번들링 시 파일 용량이 커지지 않는다. CJS(CommonJS) 모듈은 직접 strict 모드를 걸어주어야 하고 번들링 시 파일이 커지는 단점이 있다. 번들링 자바스크립트를 공부하다 보면서 번들링이라는 단어를 자주 접하게 되었다. 번들이란 단어의 의미는 묶음이다. 번들링의 프로그래밍적 해석은 각 모듈들의 의존성 관계를 파악해 그룹화 시키는 작업이다. 모듈과 스크립트 구분 - import / export가 있으면 모듈 없으면 스크립트 // 스크립트 // 모듈 exprt "" import "" from..