2024/03 22

팀프로젝트: 칸반(Kanban) 보드

https://www.trello.com 트렐로 서비스를 참고하여 칸반 보드 시스템을 구현하게 되었다. 내가 맡은 부분은 유저(로그인, 회원가입, 회원정보수정, 회원탈퇴) 부분과 카드 체크리스트 구현이다. 우리는 백엔드 과정이라 와이어프레임은 기능 구현에 참고가 될 정도로만 짜는 편이다. 그 뒤로는 api 명세서를 작성하고, git 셋팅을 하고, 각자 맡은 부분에 대한 entity 파일을 작성해서 관계 설정을 위해 dev 폴더에서 합치는 중이다. import { Column, CreateDateColumn, DeleteDateColumn, Entity, Index, OneToMany, PrimaryGeneratedColumn, UpdateDateColumn, } from 'typeorm'; import ..

💻/프로젝트 2024.03.18

[NestJS] 컨트롤러, 핸들러, 서비스

컨트롤러란? 들어오는 요청 처리, 클라이언트에 응답 반환 @Controller 데코레이터로 클래스를 정의 인자는 컨트롤러에 의해서 처리되는 경로로 받음 (ex: @Controller('/board') 핸들러란? @Get, @Post, @Delete 등 데코레이터로 장식된, 컨트롤러 내의 단순한 메서드 서비스란? 컨트롤러에서 데이터 유효성 검사를 하거나, DB에 아이템을 생성하는 등의 작업 처리 데이터베이스 관련 로직: DB에서 데이터 가져오기, 게시판 생성 시 DB 안에 생성한 게시판 정보 넣어주기 등 @Injectable 데코레이터로 감싸지고, 서비스 인스턴스는 모듈 전체에서 자유롭게 사용이 가능 서비스를 컨트롤러에서 사용하려면 constructor (private boardsService: Board..

🪩/기타 2024.03.14

[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