본문 바로가기
  • optimuslee

Nestjs22

[Nestjs] 3-3. 라우터 파라미터 라우트 파라미터는 사실 앞장에서 우리도 모르는 사이에 사용해본 경험이 있습니다. 주로 특정 데이터 불러오거나 삭제하거나 수정할 때 많이 사용합니다. 예를 들어 http://localhost:3000/cats/123주소로 요청을 보낸다고 가정합시다. 123에 해당하는 부분은 당연히 데이터에 대한 ID입니다. 그렇기에 고정된 값이 아니라 데이터에 따라 유동적으로 할당해주어야 합니다. 즉, 라우팅하는 부분에서 동적인 경로를 구성하는 파라미터가 라우터 파라미터입니다. 라우터 파라미터를 설정하는 방법은 크게 2가지입니다. 첫번째 방법은 params 객체로 한번에 데이터를 받는 방법이고 두번째는 라우팅 파라미터를 따로 따로 구분해서 받는 방법입니다. 정답은 없지만 파라미터를 구분해서 받으면 코드의 가독성이 올라가는.. 2022. 4. 2.
[Nestjs] 3-2. CRUD 시스템 서버를 공부하다보면 CRUD라는 단어를 많이 접하시게 될 것입니다. 저도 처음에는 "이..이건 뭐지"라며 당황했었습니다. 하지만 지금부터 알면 되니까 너무 걱정하지 마세요~! CRUD는 데이터 처리 기능인 Create, Read, Update, Delete를 묶어서 일컫는 말입니다. Create는 생성, Read는 데이터 읽기, Update는 데이터 갱신, Delete는 삭제를 뜻하는 기능입니다. 이름 기능 Create 생성 Read 읽기 Update 갱신 Delete 삭제 실제로 데코레이터를 이용하여 코드를 작성하면 아래와 같이 작성할 수 있습니다. 기존의 코드에서는 @Get() 데코레이터를 통해 브라우저에서 바로 데이터를 읽어올 수 있었지만 이번에는 @Res()를 통해 반환되는 값을 읽어보겠습니다. .. 2022. 4. 2.
[Nestjs] 3-1. 라우팅, 요청, 그리고 응답 우리는 이전 장에서 서버를 구동시키고 어떻게 controller를 생성해서 작동시키는지 알아보았습니다. 오늘은 controller의 기능을 활용하여 요청을 받고 응답을 반환해보는 실습을 진행해보겠습니다. "라우팅"이란 우리가 원하는 데이터를 근원지에서 목적지까지 보내거나 받아오는 것을 일컫는 말입니다. 그렇기에 정확한 주소와 데이터 양식을 알고있어야 원하는 정보를 서버로부터 받아올 수 있을 것입니다. 말로 설명하는 것보다 같이 보는 게 더 이해가 잘 되실 겁니다. 아래의 코드를 살펴봐주세요~! CatsController 클래스 내부에 findAll이라는 메서드를 만들어 주었습니다. 그리고 string 타입으로 "The action return all cats" 이라는 문구를 반환할 수 있도록 만들어주었습.. 2022. 3. 28.
[Nestjs] 3. Controller?? 오늘은 nestjs의 controller에 대해 같이 알아보도록 하겠습니다. controller는 말 그대로 어떤 것을 제어한다는 뜻입니다. 과연 그렇다면 어떤 것을 어떻게 제어하는 것일까요?? nestjs에서 controller는 client로부터 server로 들어온 요청을 처리하고 응답을 반환하는 역할을 합니다. 아마도 이전에 express.js로 작업을 해본 경험이 있는 분들이라면 무슨 말인지 쉽게 이해하실 수 있을 것입니다. (서버와 관련된 공부를 전혀하지 않았더라도 상관없으니까 겁먹지 마세요~!!) 물론 처음에는 이 기능이 굳이 필요한가? 라는 의문이 들기도 합니다. 하지만 서버의 구조가 복잡해지고 커지면 유수/보수 과정에 어마어마한 시간과 노력이 필요하기에 초기에 구조를 정확하게 잡아놓기 위.. 2022. 3. 27.
[Nestjs] 2-3. Typescript와 인터페이스 오늘 TypeScript에서 유용하게 사용되는 interface라는 기능에 대해 알아보도록 하겠습니다. 인터페이스는 상호 간에 정의한 약속 혹은 규칙을 말합니다. 우리가 공부하는 nestjs의 Typescript에서의 interface는 객체의 속성, 함수의 매개변수, 클래스 등의 타입을 정의한 규칙이라고 보면 됩니다. 인터페이스를 간단히 예제로 살펴보면 아래와 같습니다. interface myAge{ age: number; } function getAge(obj: myAge){ console.log(obj.age) } let person= {name: "seungwon", age: 26} getAge(person);//인터페이스에 정의된 속성, 타입의 조건만 만족하면 객체의 속성 갯수가 더 많아도 상관.. 2022. 3. 26.
[Nestjs] 2-2. TypeScript와 함수 오늘은 TypeScript를 이용하여 기본적으로 함수를 선언하고 사용하는 방법에 대해 알아보도록 하겠습니다. 기본에 javascript로 함수를 만들어 본 경험이 있다면 크게 어렵지는 않을 것입니다. ㅎㅎ function add(a, b){//자바스크립트 선언 방식 return a+b; } function add(a: number, b:number) :number{//타입스크립트 방식 return a+b; } 위의 2함수를 비교해보면 알 수 있듯이, 매개변수와 함수의 반환 값에 타입을 설정한 것을 알 수 있습니다. 이렇게 타입스크립트로 함수를 만들 때는 입력되는 값과 출력되는 값에 올바른 타입을 설정해주면 됩니다. 함수의 인자가 2개 선언되었다면 함수를 사용할 때 2개의 변수를 넣어주어야 합니다. 그렇지.. 2022. 3. 26.
[Nestjs] 2-1. TypeScript와 각종 타입 javascript는 런타임 언어이기에 실제로 코드를 돌려보기 전까지 디버깅이 되지 않습니다. 이런 점에 불편함을 느껴 탄생한 언어가 Typescript입니다. 코드를 돌리 전에도 컴파일이 된 상태이기에 에러에 대한 내용을 바로 알려 줍니다. 물론 javascript를 여태까지 사용한 개발자들에게는 약간 어색할 수는 있지만 Nestjs는 기본적으로 Typescript를 기본 언어로 채택하고 있기에 Nestjs의 장점을 최대한 활용하기 위해서 우리는 Typescript의 기본 문법에 대해 먼저 알고 있어야 합니다. Typescript는 마이크로소프트에서 개발한 언어입니다. javascript는 타입이 없지만 Typescript는 말 그대로 특정한 타입을 지정할 수 있습니다. 또한 위에서 언급했다시피, 런타.. 2022. 3. 26.
[Nestjs] 2. Nestjs를 배우기 전에... 1장에서 nestjs라는 프레임워크에 대한 간단한 소개와 설치 및 사용법에 대해 알아보았습니다. 저도 빨리 nestjs를 다뤄보고 싶지만 이번 2장에서는 nestjs를 다루기 전에 알아야 할 요소나 용어들에 대해 알아보고 넘어가도록 하겠습니다. 이전에 Express나 Typescript를 다뤄보신 분이라면 그냥 쓱~~ 넘어가도 좋을 것 같습니다. 2022. 3. 20.
[Nestjs] 1-1. Nestjs에 대하여... Nestjs는 Node.js에 기반을 둔 웹 API 프레임워크이며 Express를 사용하지만 Fastify와 같은 다양한 라이브러리와 같이 사용할 수 있습니다. TypeScript를 기반으로 구축되며 OOP(Object Oriented Programming), FP(Functional programming), FRP(Functional Reactive Programming) 요소를 결합하여 사용합니다. 또한 Node.js의 장점을 그대로 유지하며 시스템의 구조를 잡기 수월하게 만들었습니다. 기존의 Node.js는 유연한 라이브러리로 확장적인면에서 긍정적인 평가를 받았습니다. 하지만 라이브러리를 찾기 위해 개발자들이 많은 시간을 할애해야 했습니다. 그러나 nestjs는 프레임워크 내부에 여러 기능들을 미리.. 2022. 3. 20.
[Nestjs] 1. 안녕!? Nest.js 오늘부터 Nestjs 라는 프레임워크에 대해 포스팅할 예정입니다. 예전부터 관심있었던 프레임워크였지만 시간이 없어서 미루다 이제서야 공부를 하게 되었네요 ㅎ... nestjs는 nodejs의 유연함을 그대로 가지고 있으면서 프레임워크 안에 다양한 기능들을 미리 구현해두었습니다. 그래서인지 벌써부터 기대가 되네요. nestjs가 제공하는 컴포넌트를 사용하면서 웹 서버 개발에 박차를 가해봅시다~! 2022. 3. 20.