TIL 111

23/12/22 TIL __ nest js 강의 정리.

정의 효율적이고 확장 가능한 서버 에플리 케이션을 만들기 위한 프레임 워크 express를 기반으로 만들어 졌다. ts로 이루어져 있다. 아키텍처의 주요 문제를 효과적으로 해결하지 못해서, 나왔고, 아키텍쳐를 제공하는데 이거 엥귤러에서 영향 받음. 이거 쓰면 고도의 테스트 가능, 확장 가능, 설치 //초기 셋팅 _ 글로벌로 설치_ npm i -g @nestjs/cli //파일 생성. 시작단계. 대부분 npm사용함. __ 이 명령어 하나로 많은 파일들이 생성되어 편리. nest new 프로젝트이름 게시글 프로젝트. 필요한 모듈 전체 모듈인 appModule(root)가 필요 게시글 관련 모듈. // 공개글인지 비공개글인지 boardModel에서 정의 인증 모듈 nestJS 기본 구조 eslintrc.js ..

TIL 2023.12.22

23/12/21 TIL __ nest js

nestjs는 타입스크립트 기반으로 나온 프레임워크이다. 웹서버에 필요한 다양한 구성 요소를 명령어로 정확하게 구현할 수 있어 개발자의 실수를 줄일수 있다. 이에 따라 핵심 로직에 대한 집중도가 높아져 업무 효율이 더해진다. 데코레이터 @ 해당 클래스나 함수가 어떤 역할을 수행하는지 nest.js에게 알려주는 역할을 한다. 미리 정의된 데코레이터는 각각 필요한 속성이 다르다. 직접 데코레이터를 만들어서 사용할 수도 있다. IoC inversion of control 즉 제어역전 이라고 한다. 개발자가 사용하고 싶은 객체를 직접 생성하는게 아닌, 객체의 생명주기 관리를 외부에 위임하는걸 말한다. 즉 제어권을 넘기는것.

TIL 2023.12.21

23/12/20 TIL __ typescript 접근 제어자와, 추상 클래스

타입스크립트 강의를 듣다가 헷갈리는 부분을 위주로 정리한다. 오버라이드 상위클래스에서 정의한 함수를 자식클래스에서 재정의 하는것 접근제어자 public : 디폴트 값. 어디서나 접근가능 protected: 상속받은 하위 클래스만 접근 가능 private: 선언한 클래스 내에서만 접근 가능하다 _ 정보 은닉에 좋다. // protected 접근 제어자는 상속받은 하위클래스에서만 접근이 가능하다. // class Input { // protected name: string; // constructor(name: string) { // this.name = name; // } // protected inputName() { // console.log(`input name is ${this.name}`); //..

TIL 2023.12.21

23/12/19 TIL __ typeScript 탄생 배경 및 파일 설정 옵션들

타입스크립트 강의를 들으며 정리를 해본다. 타입스크립트란 ? 마이크로소프트 에서 개발한 오픈소스 프로그래밍 언어이다. 나오게 된 배경 자바스크립트는 인터프리터 언어이고, 컴파일 단계가 없어 런타임 에러가 잘 발생한다. 이러한 부분을 미리 방지하고자 타입을 명확히 해서 실행시키기 전에 개발자가 파악할 수 있도록 하기 위해 나왔다. 자바스크립트의 단점으로는 아래와 같은 것들이 있다. 실행시간에 결정되는 변수 타입 약한 타입 체크 너무 물렁물렁한 객체 타입스크립트를 사용하면 뭐가 좋을까? 코드를 실행할때 나오는 에러를 보고서야 코드의 문제를 파악할 수 있는 자바스크립트 와는 다르게, 컴파일 단계에서 코드의 문제를 알려준다.( 이때 타입 검사를 한다) 또한 이름이 타입스크립트인 만큼 타입체크를 열심히 해줘서 너..

TIL 2023.12.19

23/12/18 TIL __ 백오피스 프로젝트 끝

펫시터 예약 서비스 프로젝트가 끝났다. 1주일이라는 시간동안 하기엔 정말 짧았는데, 막혔던 부분은 아무래도 db설계 부분이였다. db설계는 지금까지 간단한 구조만 해봣지, 이렇게 연관관계가 얽힌건 처음이라 정말 많이 해맸다. 특히 날짜 데이터를 어떻게 처리해 줘야할지 많이 막혔던거 같다. 그렇게 2일을 관계 고민에 많이 쓰고, 2일은 기능구현, 2일은 프론트 및 기능구현에 사용한거 같다. 팀 전반적으로 프론트에 시간을 3일정도 사용한 것 같고, 프론트와 백의 경로를 다르게 해서 더 어렵게 느껴졌던 부분도 있었다. 이번 과제를 하면서 벌크 인서트 라는걸 알게 되었는데, 이는 다량의 데이터 처리를 한번에 하게 해주는 기능이다. 프리즈마에서 지원하지 않았다가 지원을 하게 되었다고 한다. 예약테이블 수정부분 구..

TIL 2023.12.18

23/12/16 TIL __ An operation failed because it depends on one or more records that were required but not found. Record to update not found. 에러

An operation failed because it depends on one or more records that were required but not found. Record to update not found. 에러 상황: 브라우저에서 테스트 후 vscode에서 테스트 중 이런 에러를 만났다. 찾아보니 prisma에서 update시 수정할려고 하는 값이 존재 하지 않으면 저런 에러가 나온다고 한다. update 같은 경우 해당 값을 SELECT 해온다음에 UPDATE를 처리하는데 SELECT하였을때 값이 없으면 위의 에러값을 던지는 것입니다. 하지만 updateMany는 SELECT 하지 않고 바로 UPDATE를 합니다. 그래서 에러가 발생하지 않습니다. 참고 블로그 https://chilld..

TIL 2023.12.16

23/12/14 __ TIL 프리즈마에서 날짜 데이터 다룰때

프리즈마에서 날짜형식에 데이터를 사용하려면 주의해야 한다. 날짜 형식에 대한 확실한 스키마 정의를 위해 나는 @db.Date 라는 애를 추가해 주었다. 아래에는 내가 참고한 글이다. You can try to use Native Types : https://www.prisma.io/docs/concepts/components/prisma-schema/data-model#native-types-mapping @db.Date I had this issue since Prisma 1. I store hotel arrivals and departures as numbers, like: 20210605 I can then even search availability by using gt or lt. 참고한 사이트..

TIL 2023.12.14

23/12/13 __ TIL DB 테이블 설계하기

내일배움캠프 에서 백오피스 프로젝트로 과제가 나왔고, 그중 우리팀은 펫시터 서비스를 진행하기로 했다. 데이터베이스 설계부분이 정말 어려웠는데, 서로간의 연간관계도 어려웠지만, 날짜 데이터를 어떻게 처리해야할지 정말 감이 안왔다. 처음에는 배열을 생각했지만, 튜터님께 찾아가 여쭤보니 아래와 같은 사실을 알수 있었다. 날짜 데이터를 배열로 하게 되면, 어떤 값을 찾기 위해 , 첫번째 부터 계속 돌아야 하기 때문에 별로 좋지 않다. 그래서 아래와 같은 방법 중 선택을 하기로 했다. 1. no SQL 데이터 베이스를 이용해 날짜 데이터를 넣는다. 장점 ) 여러 날짜 데이터를 한번에 넣을 수 있다. 단점 ) 비 관계형 데이터베이스 이다.( 관계형 데이터베이스를 사용하고 싶었다.) 2. sql 데이터베이스를 넣을때..

TIL 2023.12.14

23/12/12 TIL __ 정렬 알고리즘

오늘은 정렬에 대해 적어보려 한다. 대표적인 정렬 알고리즘 5개가 있다. 버블정렬, 선택정렬, 삽입정렬, 병합정렬, 퀵정렬 1. 버블정렬 0번째 부터 순차적으로 1:1 비교를 해서 계속 정렬을 해나간다. 뒤에서부터 정렬이 된다. 2. 선택정렬 현재 위치에 맞는 자료를 찾아 선택해 위치를 교환한다. 가장 작은값을 찾아 정렬하며, 앞에서부터 정렬을 한다. 0~ n번 인덱스중 가장 작은값을 찾아 0번째와 교체 1 ~ n번 인덱스중 가장 작은값을 찾아 1번째와 교체 반복한다. 3. 삽입정렬 앞에서부터 차례로 비교하며 정렬한다. 0번 인덱스는 건너뛴다. 0~1번 인덱스 중 1번 인덱스 값이 들어가야할 위치를 찾아서 넣는다 0~2번 인덱스 중 2번 인덱스 값이 들어가야할 위치를 찾아서 넣는다 4. 병합정렬 자료를 ..

TIL 2023.12.12

23/12/11 TIL __ TypeScript

타입스크립트에 대해 강의들은 내용을 정리해 보려고 한다. 타입스크립트 는 최종적으로 자바스크립트로 변환된다. 타입스크립트 는 언어이자 컴파일러이다. ts를 js로! 결과물 실행은 결국 js로 변환해서 실행해야만 한다. 타입검사는 해주지만 타입 에러가 난 상태로 컴파일 하면 그대로 컴파일이 된다. 타입스크립트 예시 기본 const a: number = 7; const b: string = "5"; const c: boolean = true; const d: undefined = undefined; const e: null = null; const f: any = true; //모든 타입이 다되는애. 근데 이거 쓰면 타입스크립트가 아니게 됨. 함수의 타입 지정 예시 //이런식으로 다양하게 타입 지정을 할 수..

TIL 2023.12.11