본문 바로가기

반응형

nodejs

(5)
[NestJS] - 3편 (프로바이더) NestJS - 3편 (프로바이더) 프로바이더 2편에서 소개한 컨트롤러가 클라이언트의 요청과 응답을 처리한다면, 제공해야할 데이터의 처리는 프로바이더가 맡는다. Nest에서 제공하는 프로바이더의 핵심은 의존성을 주입할 수 있다는 점이다. 의존성 주입(Dependency Injection, DI) 쉽게 말하자면 우리가 스프링에서 컨트롤러로 들어온 요청을 서비스에게 보내주었듯 마찬가지로 Nest에서도 컨트롤러에서 서비스로 보내준다. 우선 모듈에 사용할 수 있도록 등록을 해줘야한다. 모듈 @Module({ ... providers: [UsersService] }) export class UsersModule {} 크게 두가지로 나누어 컨트롤러와 서비스를 연결할 수 있다. 상속관계에 있지 않는 생성자 기반 주입..
[NestJS] - 2편 (설치~인터페이스) NestJS - 2편 (설치~인터페이스) 설치 npm i -g @nestjs/cliNestJS generator 설치 nest new project-nameNestJS generator로 새 프로젝트 생성 여기서 폴더구조 쫌 살펴보면 @Controller가 보인다. 엥? 내가 생각하는 그 스프링 어노테이션 컨트롤러가 맞나? 정답: 맞다.. npm i필요한 패키지 설치 npm start 컨트롤러 MVC(Model View Controller)패턴의 컨트롤러가 맞다. Request, Response를 처리한다. 코드로 이해해보자 nest g controller [name]해보면 띠용? 컨트롤러가 알아서 생성되고 메인 모듈인 app.module.ts에도 알아서 컨트롤러가 등록된다. 컨트롤러 뿐만이 아니다. n..
[NestJS] - 1편 (NestJS란?) NestJS - 1편 (NestJS란?) 리액트에 Next.js가 있고 Vue.js에 Nuxt.js가 있다면 NestJS는 Node.js 기반 백엔드 프레임워크이다. 기본적으로 Express 또는 Fastify 프레임워크를 기반으로 동작하며, 기본 설정은 Express이다. 데이터베이스, ORM, 설정, 유효성 검사 등 수 많은 기본 기능을 기본으로 제공하고 으며 필요한 라이브러리를 쉽게 설치하여 확장가능한 Node.js의 장점은 그대로 가지고 있다. Augular로부터 영향을 많이 받아 모듈/컴포넌트 기반으로 프로그램을 작성함으로써 코드 재사용성을 높여준다. IoC(제어역전), DI(의존성 주입), AOP(관점 지향 프로그래밍)와 같은 객체지향 개념을 도입하였다. TypeScript를 기본으로 채택하고..
[SQL] Injection Attack 예방기 SQL Injection Attack mybatis에서 자연스럽게 쓰던 #{} 한번도 의문을 갖지 않은 내 자신이 부끄러워진다. 왜 ${}를 안쓸까? nodejs 관련해 공부하다 SQL Injection Attack에 관해 알게되어 관련사항들을 정리해보았다. 공격 사례 15년 뽐뿌 공격 : https://www.boannews.com/media/view.asp?idx=47836&kind=1 17년 여기어때 공격 : https://www.bloter.net/newsView/blt201703240005 SQL Injection Attak이란? 사용자가 보안상 취약점을 이용해 임의로 sql문을 주입해 DB를 조작하는것을 뜻한다. WHERE 절을 이용한 공격과 UNION 절을 이용한 공격이 있다. 예시 사용자가..
Npm 서버에 나만의 패키지 Publish 매번 프로젝트마다 패키지 기본설정하는게 귀찮아!! 그래서..! eslint prettier jsconfig gitignore readme dotenv 등등... npm 서버에 만들어놓고 cli로 다운로드 편하게 이용해보자! https://www.npmjs.com/ 들어가서 로그인하기 (없으면 회원가입고고) 배포할 프로젝트의 package.json에 입력할 것들 입력!(버전, 라이센스 등등) (참고 : https://docs.npmjs.com/cli/v6/configuring-npm/package-json) (name 항목은 @내아이디/내프로젝트명으로 입력해 중복 방지한다.) package.json과 같은 위치에서 터미널 실행 npm login으로 터미널에서 로그인 (로그인이 잘 되었는지는 npm whoa..

반응형