목록백엔드 (14)
개발에 AtoZ까지

목차 Controller 정의 및 사용 NestJS Controller 관련 Decorator 종류 마무리 Controller 정의 및 사용 Controller란? Controller란 Client에서 들어오는 요청을 처리하고 Client에게 처리결과를 전달해주는 역할 한다. 다시말하면 A라는 요청이 들어오면(Request) 이 요청을 처리할 수 있는게 누구인가(Service) 하고 찾아서 처리할 수 있는 곳에 전달하고 처리 후 결과를 다시 Client에게 전달하는것이다. Controller 사용 import { Controller, Get } from '@nestjs/common'; @Controller('cats') //@Controller => Decorator export class CatsCon..
목차 NestJS란? NestJS 와 Express 비교 마무리 NestJS 란? NestJS는 Express의 단점을 보완하기 위해 출시된 웹 API프레임워크 입니다. Express는 과도한 유연함으로 인해 SW의 품질이 일정하지 않고 알맞은 라이브러리를 찾기 위해 많은 시간을 할애해야하는 단점이 있습니다. 이런 단점을 해결하기 위해 NestJS는 데이터베이스, ORM, 유효성검사등의 수많은 기능이 프레임워크 자체에서 기본적으로 제공하고 있습니다. 그러면서도 필요한 라이브러리등을 손쉽게 설치하고 기능을 확장 시킬수도 있습니다. NestJS는 객체 지향적인 프레임워크로 IoC(Inversion of Control, 제어역전), DI(Dependency Injection, 의존성 주입), AOP(Aspec..

1. 현상 1) 환경 - SpringBoot(2.5.2) - 영속성 라이브러리 : JPA - DB : H2 SpringBoot에서 메모리 DB인 H2로 연결하여 환경을 구축하려고 한다. mem:testdb에 연결하려고 하는데 아래와 같은 오류가 발생하였다. 2. 해결방안 위의 에러는 H2 버전 1.4.198 이상에서는 데이터베이스를 미리 생성하는 것을 방지하도록 설정되어 있기 때문에 발생한 것입니다. h2: console: enabled: true datasource: url: jdbc:h2:mem:testdb url를 springboot 시작 시 해당 정보를 가지고 Datasource 객체를 만들 수 있도록 application.yml에 기재해주면 해결할 수 있다. 좀 더 자세히 설명해보자면 이렇게 U..

◆목표 HTTP Status Code란 HTTP Status Code의 중요성 HTTP Status Code 제어 및 Spring 예외처리 방법(SpringBoot) SpringBoot에서 적용방법 1. HTTP Status Code란? HTTP Status Code(HTTP 상태 코드)는 클라이언트가 보낸 HTTP 요청에 대한 서버의 응답을 코드로 표현한 것으로 해당 코드로 요청의 성공 / 실패 / 실패요인등을 알 수 있다. 2. HTTP Status Code의 중요성 아래와 같이 URI에 USERS/ID 입력하고 GET 메소드로 조회하는 스프링 예제가 있다. 아래 예제는 Users에 ID값이 1~3까지 밖에 없는 상황에서 ID값이 100인 사용자를 조회한 결과이다. 호출 시 분명 없는 사용자를 조회했..
◆목표 Builder 패턴이란? Builder 패턴 사용법 정리 1. Builder 패턴이란? 빌더 패턴(Builder pattern)이란 복합 객체의 생성 과정과 표현 방법을 분리하여 동일한 생성 절차에서 서로 다른 표현 결과를 만들 수 있게 하는 패턴이다. -위키백과사전- 빌더 패턴도 추상 팩토리 패턴이나 팩토리 메소드 패턴과 비슷하게 새로운 객체를 만들어서 반환하는 패턴인데 실제 동작방법은 위의 2가지와는 다르게 동작합니다. 기본적으로 빌더패턴은 생성자에 들어갈 매개 변수를 차례차례 받아들여서 모든 매개변수를 받은 뒤에 이 변수들을 통합해서 한번에 객체를 생성하는 방식입니다. 실제 형태는 아래와 같습니다. public class BuilderPattern { public static void mai..

◆목표 jar 과 war의 차이점 Gradle Build하는 방법 1. jar과 war의 차이점 1) jar : 내장 서버를 포함하여 Build 하는 방법 2) war : 외장 서버에 배포할 목적이기 때문에 내장 서버를 포함하지 않고 Build 하는 방법 ❗springboot 프로젝트를 jar로 배포 했을시 webapp 디렉토리를 무시하는 특성때문에 jsp 사용은 불가하다는 특이사항이 있다. (참고: docs.spring.io/spring-boot/docs/2.1.5.RELEASE/reference/htmlsingle/#boot-features-jsp-limitations) 2. Gradle Build하는 방법 1) 빌드하기 전에 Gradle Project를 생성한다. 2) 생성했다는 가정하에 Gradl..

◆목표 HTTP 통신이란? HTTP 메소드 종류 및 특징 멱등성이란? HTTP 메소드별 속성 1. HTTP 통신이란? HTTP 통신은 Server와 Client간의 통신하는 방법 중 하나로 Client의 요청이 있을 때만 Server가 응답하여 처리하고 이후에는 연결을 끊는 방식이다. 2. HTTP 메소드 종류 및 특징 메소드 명 메소드 용도 정의 메소드 특징 GET 데이터 조회 서버에 전달하고 싶은 데이터를 query(parameter, query string)을 통해 전달한다 Query를 BODY에 담아서 조회가능하나 지원하지 않는 곳도 있기 때문에 권장하지 않는다. POST 다양한 요청 처리 BODY에 리소스 데이터를 전달 GET 방식 사용시 전달해야할 데이터가 많다면 POST를 사용하여 BODY에..

1. 현상 스프링부트 실행 시 아래와 같이 특정 Bean을 못 만들었다면서 서버가 정상적으로 구동되지 않는 에러가 발생했다. 2021-05-26 00:43:24 ERROR org.springframework.boot.SpringApplication[reportFailure:871] - Application run failed org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'schedulerConfig': Unsatisfied dependency expressed through field 'schedulerService'; nested exception is org.springfra..