본문 바로가기

개발새발 개발자

(100)
[NestJS] DI 처리 후 Module에 등록하기 NestJS의 DI 방법은 스프링과 비슷하면서도 사뭇 다르다. 자바스크립트의 module 개념도 친숙하지 않은 상황에서 DI를 적용시키다 많이 헤맸다. 그동안 이리저리 부딪히면서 깨달은 내용을 정리해본다. 1. DI 처리하기 constructor(private readonly catsService: CatsService) {} 이렇게 constructor에서 해당 데이터, 그러니까 여기선 CatsService의 인스턴스를 생성하고 리턴하면 NestJS가 알아서 resolve 해준다. 앞에서 말했듯 NestJS는 스프링처럼 annotation을 이용해 DI를 한다. [auth.service.ts] @Injectable() export class AuthService { constructor( @Inject..
[NestJS] Promise 여부에 따른 test code에서의 throw 처리 방법 테스트 코드에서 toThrow를 통과하지 못하는 에러가 발생했다. 코드 내용은 아래와 같다. [auth.service.ts] createToken(address: string): Token { if (address === undefined) { throw new Error('address should be defined.'); } return { expiresIn: 3600, accessToken: this.jwtService.sign(address), }; } [auth.service.spec.ts] it('should throw "address should be defined"', async () => { service = new AuthService(instance(mockJwtService), i..
[GitHub] remote에 이미 push한 파일 지우기 .gitignore 파일을 설정해 놓지 않아 올라간 .metadata 파일을 지워보려고 한다. 파일을 삭제하는 방법에는 두 가지가 있다. // local $ git rm [File Name] // remote $ git rm –-cached [File Name] 상단의 명령어는 로컬 파일에만 적용되며, remote로 올라간 파일은 --cashed를 붙여줘야 한다. // 특정 파일 삭제 $ git rm --cached .project/configuration.xml // 폴더 하위의 모든 파일 삭제 $ git rm --cached -r .project 나는 .metadata 폴더 전체를 삭제해야 하므로 두 번째 명령어로 진행! 그럼 이렇게 rm이 진행되고 git status로 확인하면 deleted 되어있..
[NestJs] Authentication 도전기 - 2 (feat.초보에겐 너무나 어려운 공식 문서) 저번 글에 이어 이번엔 JWT를 적용한 Auth 예제를 따라해보았다. https://docs.nestjs.com/techniques/authentication#jwt-strategy Documentation | NestJS - A progressive Node.js web framework Nest is a framework for building efficient, scalable Node.js server-side applications. It uses progressive JavaScript, is built with TypeScript and combines elements of OOP (Object Oriented Progamming), FP (Functional Programming), and..
[NestJs] Authentication 도전기 - 1 (feat.초보에겐 너무나 어려운 공식 문서) 프로젝트로 Nest.JS를 사용하게 되었다. Node.JS로 서버 구축 시 사용하는 프레임워크인 것 같은데, 타입 스크립트를 지원한다. 나는 타입 스크립트는 커녕 자바 스크립트도 1도 모르고 주먹구구 식으로 개미 눈꼽만큼만 써봤었기에 헤매는 일이 많았다. 일단 Nest의 공식 홈페이지 문서를 참고해 JWT를 구현하라는 미션을 받았다. JWT가 뭔지도 이번에 처음 안 나새끼...리스펙.... JWT를 알고 싶다면 아래의 링크로! https://velopert.com/2389 [JWT] JSON Web Token 소개 및 구조 | VELOPERT.LOG 지난 포스트에서는 토큰 기반 인증 시스템의 기본적인 개념에 대하여 알아보았습니다. 이 포스트를 읽기 전에, 토큰 기반 인증 시스템에 대해서 잘 모르시는 분들..
[Java로 배우는 자료구조] 1-2. 메서드 호출과 프로그램의 기능적 분할 두 정수 a와 b를 받아 a의 b 제곱을 구하는 코드를 짜보자. 여기서 b는 음이 아니어야 한다. 당연히 0은 된다. 이번 장은 메소드가 주제이므로 b 제곱을 계산해주는 함수를 따로 만들어볼 것이다. import java.util.Scanner; public class Code16 { public static void main(String[] args) { Scanner kb = new Scanner(System.in); int a = kb.nextInt(); int b = kb.nextInt(); // 지수는 영어로 power라고 부르므로 power라고 지어봄. int result = power(a, b); System.out.println(result); kb.close(); } // 함수가 받는 파..
[GitHub] 실수했을 때 유용한 명령어 몇 가지 1. commit에 push까지 했는데 이전 commit 버전으로 돌리고 싶을 때 1) commit ID 알아내기 git log 돌아가고 싶은 commit 버전의 ID를 복사한다. 2) revert 하기 git revert {commit_id} 처음에 복사했던 ID로 revert 한다. 그럼 이런 내용이 뜬다. 이러한 내용으로 revert 하겠다는 뜻이다. 맨 위의 Revert 어쩌고 문장은 하고 싶은 대로 코멘트를 작성할 수 있다. :wq 쓰고 저장한다는 뜻의 명령어를 입력한다. 이때, 콜론(:)은 반드시 먼저 써줘야 한다. 다시 git log를 해보면 내가 원했던 버전으로 revert 된 기록이 나온다. 3) revert한 내용을 remote에 반영하기 ※ remote란 github 홈페이지에서 보이..
[Java] JUnit을 이용한 TDD 간단 체험하기(진짜 간단함 주의) 티스토리 에디터가 업뎃되고 처음으로 쓰는 글이다. 와우 너무 쾌적해!!!!!!! 기념으로 TDD 글 씁니다. 야호! 평소 TDD 단어는 많이 들었으나 정확히 뭔지도 모르겠고 찾아보면 '이게 뭐야 몰라 무서워' 같은 어려운 글밖에 없어서 쉽게 도전하지 못하던 중 내 수준에 맞는(...) 적절한 예제를 찾았다. 왕초보들 팔로팔로미. 1. TDD의 개념 Test Driven Development의 약자. 테스트 코드를 먼저 만들고 잘 작동되는지 확인 후에 또 다시 덧붙이고 덧붙이는 방법이다. 검색하면 수많은 고수들이 자세한 설명을 해놓았으므로 그것을 참고하도록 하자. 여기선 '어려운 말은 다 모르겠으니 TDD인지 뭔지 일단 이놈을 뭐라도 경험 해보고싶다' 에서 시작한다! 원래 내가 코드를 짜던 방법 일단 하고..