nest js의 디폴트는 싱글톤이나 그러나 바꿀 수는 있다.
spring과 nest는 di가 가능하다.
보일러 플레이트는 초기 폴더구조 - 회사마다 다를 수 있음
컨트롤러와 서비스는 모듈에 연결됨
자바스크립트에 타입을 강제시키는 것
오류를 사전에 차단하고자 생겨났다.
예시) 0+1+1+1+1+"1"+1은 문자열 0111111이 됨
타입추론: 처음값의 타입으로 인식함
let aaa:string
let bbb: number = 123 //타입추론 처음값의 타입으로 인식함 let bbb =123으로 쓸 수있음
aaa = 123 //에러남 자바스크립트는 에러 안남
interface ccc {
name:string;
age:number;
}
let profile:ccc = { name:"철수", age:13 }
let profile:ccc = { name:"철수", age:"13" } //에러남
//배열타입
let eee = [1,2,3,4,5] //let eee :number[]
eee= ["철수","영희"] // 에러남
let fff: string[] = ["철수","영희"]
let ggg = [1,"철수",2,"영희"] //let ggg(string |number)[]
let ggg: (number | string )[] = [1,"철수",2,"영희"]
let mymoney: number[] | string[] = [1000, 2000, 3000]
mymoney = ["1000원","2000원","3000원"]
//객체타입
let profile: {
name: string;
age: number;
school: string;
}
let profile = {
name: "철수",
age: 13,
school: "다람쥐초등학교"
}
interface IProfile {
name: string
age: number | string
school: string
}// interface를 쓰면 내가 직접 타입을 결정지을수 있음 앞에 I를 거의 씀
//함수타입
function qqq(a: number,b: string){
return a+b
}
qqq(1,2) // 2오류
qqq("철수", "영희")// "철수" 오류
function ppp(a: number,b: number): number{
return a+b
} //리턴값의 타입도 정할 수 있음
브라우저에서 자바스크립트 실행
브라우저가 아닌곳에서 실행하는 것이 node.js
typescript는 ts-node로 실행
의존하는 관계 강하게 결합되어있다.
controller는 service에 강하게 결합되어있다
느슨한 결합이 좋음
index에서 new를 한번만 받아서 컨트롤러에서 this.로 받아준다.
바깥에서 안으로 의존성 주입 이거를 의존성주입이라고 한다. 이 역할을 자동으로 해주는 게 nest js 이다.
controller는 service에 강하게 결합되어있던게 풀리는걸 의존성주입이라고한다. dependency injection
제어가
nest.js로 역전되었다 inversion of Controll IoC 제어의 역전
의존성주입일 경우 싱글톤패턴인가 ? 아님
싱글톤패터는 new를 한번만 사용하는것