분류 전체보기 99

[TypeScript] d.ts 파일

자바스크립트가 타입스크립트보다 한참 이전부터 존재했기 때문에, 개발자들은 이미 작성된 자바스크립트 라이브러리를 타입스크립트 코드에서도 호환이 가능하게 만들어 주고 싶었음 타입스크립트는 @types 라이브러리를 통해 외부 라이브러리에 대한 타입 정보 제공 그리고 @types 디렉토리 내부에 가면 있는 것이 d.ts 파일이고, 외부 라이브러리(자바스크립트 라이브러리)에 대한 타입 정보를 제공해주는 각각의 파일 이 라이브러리를 믿고 js 파일을 가져올 수 있음 .d.ts 파일로 외부 라이브러리의 함수 타입 정보, 클래스 타입 정보, 객체 타입 정보 뿐 아니라 외부 라이브러리의 타입 추론도 가능함 해당 자바스크립트 라이브러리에 대한 .d.ts 파일을 타입스크립트에 제공해주면, 기존 자바스크립트 라이브러리 코드에..

⌨️/TypeScript 2024.03.13

티켓 예매 서비스

여기서 포인트 서비스를 넣으려면 포인트의 히스토리가 필요하다는 피드백을 받았다. (포인트를 합산하고, 추후 생길 포인트 관련 사용자 문의에 대응하기 위해서) 또 생각해보니 결제에 필요한 콘서트 티켓 가격을 넣지 않아서 그 부분도 추가했다. 피드백을 반영한 최종 버전이다. 프로젝트를 진행하다보면 계속 수정할 일이 생기겠지만.. https://www.notion.so/julie-kim-dev/a57e1a08c40d4ab3a6b0c6c3ed23fd83?v=9eb7c003813f46ceab5be6d760f05817&pvs=4

💻/프로젝트 2024.03.12

[TypeScript] typeORM

config : 노드의 .env와 같은 역할 joi : validator의 역할 Entity : 데이터베이스의 특정 테이블을 대표하는 객체 이 객체를 통해 ORM 프레임워크가 데이터베이스와 통신 repository : 엔티티와 데이터베이스 간의 중간 계층을 형성하는 객체 프로그래머가 데이터베이스와의 통신과정을 알지 못하더라도 추상화 된 리포지토리의 함수를 사용하여 데이터베이스에서 원하는 결과를 얻을 수 있도록 함

⌨️/TypeScript 2024.03.11

[Nest.js] Select 'Retry as Sudo' to retry as superuser. 에러

Failed to save 'app.service.ts': Insufficient permissions. Select 'Retry as Sudo' to retry as superuser. Nest.js 실습 과정에서 vscode를 이용해 app.service.ts 파일의 함수를 조금 수정했는데, 저장을 시도하니 저런 오류 메시지가 떴다. cli 설치 과정에서 이런저런 오류 때문에 sudo 명령어를 이용하여 프로젝트를 생성했었는데 그것이 문제가 된게 아닐지 의심중.. 아무튼 해결 방법 echo $USER // 유저 이름 출력 echo $HOME // 홈 디렉토리 출력 먼저 해당 명령어들로 유저 이름과 홈 디렉토리를 알아낸다. sudo chown -R [유저 네임] [홈 디렉토리] 그런 다음 해당 명령어를 ..

🪩/기타 2024.03.07

[TypeScript] tsc : 타입스크립트 컴파일러

tsc는 타입스크립트 컴파일러 컴파일러란? 특정 프로그래밍 언어가 정적 언어로서의 정체성을 유지할 수 있게 하는 도구 컴파일러의 기능 타입검사를 해줌 에러 메시지 해석에 도움 TS -> JS 코드 변환 최적화 -> 어플리케이션 실행 시간이 빨라짐 JS는 동적 언어(=인터프리터 언어)이기 때문에 기계어로 변환될 필요가 없음 엔진이 코드를 한 줄씩 실행하며 동적으로 해석하기 때문 정적 언어(=컴파일 언어)만 기계어로 변환 필요 주요 tsc 명령어 tsc —init tsconfig.json 파일이 생성되는 명령어 타입스크립트 기반 프로젝트를 초기화 tsc index.ts index.ts를 컴파일함 tsc src/*.ts src 디렉토리 안에 있는 모든 ts 파일을 컴파일

⌨️/TypeScript 2024.03.07

[TypeScript] 프로젝트 생성 및 셋팅

npm init -y 프로젝트 초기화 tsc --init --rootDir ./src --outDir ./dist --esModuleInterop --module commonjs --strict true --allowJS true --checkJS true tsc --init tsconfig.json 파일 생성 -> 타입스크립트 프로젝트로 변환 --rootDir ./src -> 프로그램의 소스 파일이 들어가는 경로 설정(해당 프로젝트는 src 폴더 기준) --outDir ./dist -> 컴파일 된 파일들이 들어가는 디렉토리 경로 설정 --esModuleInterop -> CommonJS 모듈을 ES 모듈 방식의 import 구문으로 가져옴 --module commonjs -> 타입스크립트 파일을 컴파일..

⌨️/TypeScript 2024.03.06

[TypeScript] yarn, npm을 이용한 TypeScript 설치 방법 (+각종 에러..)

터미널에 아래 명령어를 입력한다. (mac이면 앞에 sudo를 붙여야 설치가 정상적으로 될 수도) yarn add global typescript --dev -g로 작성했더니 에러가 나서 global로 수정하니 잘 설치됐다. yarn run tsc --init tsconfig.json 파일을 생성하고 프로젝트 초기화 그런데 그 이후로 에러가 정말 많이 나서 이거 해결한다고 4시간은 쓴 것 같다..... 자꾸 yarn 관련 에러 메시지가 떠서 uninstall로 타입스크립트를 삭제하고 npm으로 다시 설치해봤다. sudo npm i typescript -g Problems loading reference 'https://json.schemastore.org/package': Unable to load sc..

⌨️/TypeScript 2024.03.04

[Node.js] 테스트 코드 (Test Code), Jest 테스팅 프레임워크

테스트 코드란? 작성한 코드에 문제가 없는지 테스트하는 코드 (= 개발한 코드가 의도대로 동작하는지 작성하는 코드) 결함의 존재를 인지하는 것이 중요 ✔️ 단위 테스트 (Unit Test) : 가장 작은 규모의 기능을 테스트 ✔️ 통합 테스트 (Intergration Test) : 다양한 기능을 합쳤을 때 생기는 문제를 방지하기 위한 테스트 ✔️ E2E 테스트 (End-to-end Test) : 백엔드부터 시작해서 최종적으로 웹페이지가 원하는대로 동작하며 원하는 데이터를 잘 보여주는지 확인하는 테스트 Jest 자바스크립트에서 사용 가능한 테스팅 프레임워크 테스트 코드의 표현이 타 프레임워크보다 훨씬 간결 yarn add -D jest jest 모듈 설치 "scripts": { "test": "node -..

⌨️/Node.js 2024.02.28

디자인 패턴(Design pattern) : 전략 패턴

디자인 패턴이란? 프로그램 개발에서 자주 나타나는 과제를 해결하기 위한 방법 중 하나로, 과거의 소프트웨어 개발 과정에서 발견된 설계의 노하우를 축적하여 이름을 붙여, 이후에 재이용하기 좋은 형태로 특정의 규약을 묶어서 정리한 것 (출처: 위키백과) 말이 어렵게 정리되어 있지만, 간단하게 특정한 패턴을 가진 문제 해결 방식을 정의한 것이라고 이해했다. 디자인 패턴 중에서도 전략 패턴을 학습해봤다. 전략 패턴이란? 객체가 할수있는(나올수있는?) 행위들을 전략으로 정의하고, 행위의 수정이 필요해지면 전략만 수정함으로 행위의 수정까지 가능하도록 만들어주는 패턴 나의 언어로 정리한다고 한건데도 말이 어렵다. 먼저 달라지는 부분과 달라지지 않는 부분을 분리하는 캡슐화 작업이 필요하다. 그런 다음 인터페이스를 사용..

🪩/기타 2024.02.26