Daniel: The Dev Story
Daniel: The Dev Story
    • 홈
  • 분류 전체보기
    • 프로젝트
    • Spring
    • NodeJS
    • Basics
    • Git
    • DB
    • Algorithm
    • Error
    • Private
      • Database
      • Tip
  • 글쓰기
  • 관리자
  • myoskin

      [TypeScript] 타입스크립트로 sequelize를 활용하여 데이터베이스 연결

      준비사항:express, @types/express, mysql2, sequelize, sequelize-cli, dotenv 시작하기 sequelize init으로 config, migrations, models, seeders디렉토리를 생성한다. 이 디렉토리들을 src 디렉토리 안에 넣어도 괜찮고, 밖에 놔도 괜찮다. 자기 스타일대로 하면 된다.나는 src 디렉토리 안으로 옮겼다. 각각 설정, 데이터베이스 관리, 모델, 초기 데이터이다. // 터미널sequelize init 환경변수 설정 .env 파일을 만들어주고 환경변수를 설정해 준다.(환경변수를 모르면 나중에 따로 찾아보던가 하자)환경변수는 key=value 형식으로 작성한다.데이터베이스 연결에 필요한 username(DB username)..

      NodeJS 2023.06.15

      [OnlyForMe] TSConfig 셋업(프로젝트 구조 정리하기)

      보호되어 있는 글입니다.

      NodeJS 2023.06.13

      [TypeScript] 다양한 Utility Type이해하기

      기본 지식: Index 목 차 Index Type이란? Mapped Type이란? Readonly Type Pick type Omit Type Index Type이란? type역시 객체 프로퍼티에 접근방법을 동일하게 사용 가능하다. 예) type gender = User['gender'] Mapped Type이란? Mapped Type의 기본 문법이다. 여기서 [P in keyof T] 는 객체 반복문인 for...in...문 이라고 생각하면 편하다. T로 들어오는 타입의 프로퍼티를 빙글빙글 돌며 P에 할당하고, T[P](Index Type)를 통해서 그 속성의 타입을 가져온다. type MappedType = { [P in keyof T]: T[P]; }; Mapped type의 예시는 다음과 같다. ..

      NodeJS 2023.06.13

      [TypeScript] type과 interface 차이점과 사용 팁

      공통점과 차이점 먼저 다음과 같은 type과 interface가 있다고 가정하자. // type type UserType = { name: string; age: number }; // interface interface UserInterface { name: string; age: number; } 둘 다 자신을 따르는 객체와 클래스를 만들 수 있다. 예시는 다음과 같다.(객체) const user1: UserType = {name: "John", age: 25}; const user2: UserInterface = {name: "Jane", age: 30}; 확장성(Extendibility) interface는 다른 interface를 확장할 수 있다. type은 불가능하다. interface Use..

      NodeJS 2023.06.13

      [OnlyForMe] 기본 TS 프로젝트 설정하는 방법

      보호되어 있는 글입니다.

      NodeJS 2023.06.12

      [TypeScript] abstract(추상 클래스)에 대해 이해하기

      추상클래스: 자체적으로 인스턴스를 생성할 수 없는 클래스를 말한다. 추상클래스는 일반적으로 하나 이상의 추상 메소드(abstract method)를 포함하고, 이 메소드들은 선언만 있고 구현 내용은 없다. 추상클래스를 사용하는 이유는? 추상클래스를 사용하는 이유는 기본적인 구조나 기능을 정의하고, 그 것을 확장하는 자식 클래스들에 특정 메소드 구현을 강제하기 위함이다. 이렇게 함으로 자식 클래스들이 일관된 방식으로 동작하도록 보장할 수 있다. // 추상 클래스, Animal 클래스는 인스턴스를 생성할 수 없음 abstract class Animal { // abstract 사용으로 추상 메소드 추가함 abstract makeSound(): void; move(): void { console.log('Mo..

      NodeJS 2023.06.11

      [TypeScript] 함수와 메소드에 type alias를 붙이는 방법

      type alias: 타입을 변수 처럼 미리 저장하고 사용하기 함수에 Type alias 사용하기 파라미터의 타입과, 리턴값의 타입을 지정 가능하다. ⚠️ 함수에 type alias를 적용시킬 때는 함수 표현식으로 함수를 작성해야 한다. // 함수의 type alias 지정 // a, b 파라미터는 number 타입이어야 한다. 리턴값도 number 타입이어야 한다. type AddFunction = (a: number, b: number) => number; let add: AddFunction = function(x, y) { return x + y; }; 메소드에 type alias 사용하기 객체에 type을 지정해주면 된다. 타입을 위에서 선언해도 되고, 아니면 객체 타입을 지정하는 곳에서 바로 ..

      NodeJS 2023.06.06

      [TypeScript] Literal Type과 as const이해하기

      Literal Type: 특정 값 자체가 타입이 되는 것이다. 문자열 값 자체를 타입으로, 숫자 값 자체를 타입으로, true 혹은 false를 가진 불린 값 자체를 타입으로 가지게 할 수 있다. Union Type으로도 지정 가능 | UnionType이란? type Pet = "cat" | "dog"; // Literal Type으로 지정함 let myPet: Pet; myPet = "cat"; // OK myPet = "dog"; // OK myPet = "bird"; // 오류! "bird"는 Pet 타입에 없습니다. as const as const를 객체나 배열 뒤에 붙여주면 프로퍼티의 값이나 요소의 값을 변경할 수 없다. let obj = { name: "John", age: 30 } as co..

      NodeJS 2023.06.05

      [TypeScript] 초기 설정 및 데이터 유형별 타입 지정 방법

      타입스크립트 설치 npm install -g typescript 컴파일 할 때 옵션 설정: tsconfig.json 파일에 다음과 같이 설정 사용할 자바스크립트 버전 설정 module은 파일간 내보내기/가져오기 기능 사용할 때 무슨 문법을 사용할지 정하는 것이다. commonJS: require 문법 es2015, esnex는 import 문법 { "compilerOptions": { "target": "ES6", "module": "commonJS" } } 자동 컴파일 기능: 터미널에 tsc -w 입력 ⚠️오류 발생시: 터미널 경로 확인 tsc -w 변수에 타입 지정가능 string 타입 이외의 타입이 입력될 시 오류 발생 입력 가능 타입 List :string :number :boolean :null..

      NodeJS 2023.06.04

      [Node.js] mysql, Sequelize 모델 정의, 메소드 사용 방법

      ※참고 이 글에서는 '인스턴스'='데이터', 즉 테이블에 있는 데이터 한 행을 뜻함. 이 글에서는 '클래스'=테이블 기본적인 모델 정의 방법 const { DataTypes } = require('sequelize'); const { db, sequelize } = require('../db/database.js'); // db디렉토리에 있는 database 파일에 다음과 같이 작성함. // const sequelize = new Sequelize(database, user, password, { host, dialect }); const 모델이름 = sequelize.define(테이블 이름, { 컬럼_이름: { type: DataType.INTEGER, autoIncrement: true, allow..

      NodeJS 2023.06.01

      [Node.js] bcrypt와 jwt 이해 및 사용법

      목 록 bcrypt 설치 bcrypt란? bcrypt 사용예시 bcrypt 비밀번호 비교 방법 jwt(json web token)란? jwt 사용 예시 bcrypt 설치 npm install bcrypt // Typescrypt의 경우 npm install @types/bctypt bcrypt란? 사용자의 비밀번호를 보호하는 역할을 한다. 이는 비밀번호를 '해시(hash)' 하는 데 사용되며, 이를 통해 데이터베이스에 안전하게 비밀번호를 보관할 수 있다. 해시된 비밀번호 예시:$2b$10$z9xgsRrjl62tJ/R.RRROvOJ6LSxaY.Fy8pG8Fq5akfjHSHn70cRzs 예시이며, 여기서 비밀번호를 해석하는 것은 매우 어렵다. bcrypt 사용 예시 bcrypt.hash('비밀번호(strin..

      NodeJS 2023.05.29

      [Node.js] 유효성 검사(Validation), express-validator 사용법

      validation 설치 방법: npm install express-validator //타입스크립트의 경우 추가 설치 npm install @types/validator Validation express-validator는 다양한 요청 데이터에 대한 유효성 검사를 제공한다. - check - body - param - query - headers 더보기: 위 다섯 가지 유효성 검사에 대한 설명 더보기 1. check : 가장 일반적인 유효성 검사 함수이다. 이 메소드는 요청 객체의 어떤 부분이든 검사할 수 있다. 2. body : HTTP 요청의 body 부분에서만 작동한다. 요청된 바디에 text가 있고, text에 대한 유효성을 검사하고 싶으면 body('text')를 사용하면 된다. 3. para..

      NodeJS 2023.05.28

      [JS] 객체의 프로퍼티에 접근할 때 유용한 3가지

      Object.keys()Object.entries()for...in Object.keys() 이 메소드는 인자로 받은 객체의 모든 key를 배열로 리턴한다.let user = { name: "John", age: 30, city: "Seoul"};let keys = Object.keys(user);console.log(keys); // ["name", "age", "city"] 활용방법Database의 데이터를 수정할 때 사용하면 좋다. // app.put 라우터 핸들러 내부 모습이다. 생략된 코드가 있으니 이해용도로만 보자const { id } = req.params;const newInfo = req.body;const member = await Member.findOne({ where: {..

      NodeJS 2023.05.16

      [Node] findOne 메소드와 조건추가 이해하기

      findOne메소드란? findOne메소드 사용예시 (조건 넣기) findOne과 Promise findOne메소드란? 주어진 조건을 만족하는 첫 번째 레코드를 반환한다. 주로 고유한 값(예: 사용자 ID 또는 이메일 주소)을 가진 레코드를 찾을 때 사용된다. 더보기: 레코드란? 더보기 레코드 데이터베이스 테이블의 한 행을 나타낸다. 하나의 레코드는 테이블의 각 컬럼에 해당하는 여러 개의 필드로 구성된다. 쉽게 얘기하면 하나의 데이터를 말한다. findOne메소드 사용예시와 조건추가 findOne메소드는 객체 안에서 속성값(프로퍼티)으로 조건들을 받는다. findAll() 역시 마찬가지이다. 각 조건은 {}로 조건값을 받는 것도 있고, 배열로 받는 것들도 있다.(예를 들면 order) User = 모델(..

      NodeJS 2023.05.15

      [Node] findAll 메소드 활용하여 Database 조회하기

      Sequelize를 사용하였고, ClientInfo 라는 모델을 예시로 작성 할 예정이다. 이미 데이터베이스와 모델을 연결하였다는 가정 하에 진행한다. 더보기: 모델이란? 더보기 모델(Model)은 데이터베이스(Database)에 있는 테이블(Table)의 데이터를 CRUD하는 역할을 한다. 본문에서는 CLIENT 라는 데이터베이스에 ClientInfo 라는 모델을 연결하여 사용한다. findAll() 메소드는 Promise 객체를 리턴한다. // 데이터 전체 조회 만약 .then() 이나, async...await...을 사용하지 않으면 코드를 다 작성하고 GET HTTP 메소드로 요청하였을 때 빈 객체가 온다. 더보기: 코드리뷰 더보기 findAll() 에서 데이터를 조회하고, 조회한 데이터를 Pro..

      NodeJS 2023.05.15

      [JS] Promise 객체 이해 및 체이닝에 대해 이해하기

      promise란?promise이용하기 Promise란?Promise는 JavaScript에서 비동기 작업을 수행할 때 사용하는 객체이다.Promise는 어떤 결과를 보장하는데, 그 결과는 성공이 될 수도 있고, 실패가 될 수도 있다. 세 가지 상태가 있는데 다음과 같다 1. Pending(대기상태): 아직 실행 중인 상태이다.2. Fulfilled(작업성공): 작업한 결과가 성공적으로 완료된 상태.3. Rejected(작업실패): 작업한 결과가 실패한 상태. Promise활용많은 메소드가 promise를 반환한다. 대표적으로 fetch()가 있으며 궁금하면 더 찾아보기를 바란다.Promise는 체이닝을 하여 코드를 작성하는데, 다음과 같은 형식으로 작성된다.fetch('http://api.exampl..

      NodeJS 2023.05.14

    12
    Daniel: The Dev Story

    찾기

    공지

    최근 글

    인기글

    최근 댓글

    캘린더

      8 / 2025
      일 월 화 수 목 금 토
      1 2
      3 4 5 6 7 8 9
      10 11 12 13 14 15 16
      17 18 19 20 21 22 23
      24 25 26 27 28 29 30
      31

    글 보관함

    태그

      백준코딩자바타입스크립트BOJjavaMYSQLgitAlgorithm알고리즘

    즐겨찾기

    방문자 수

    • Today
    • Yesterday
    • Total
    myoskin

    티스토리툴바