본문 바로가기

안녕

(118)
[Docker] docker-compose로 DB 연결하기 말로만 듣던 Docker를 사용할 수 있는 기회가 왔다. 그냥 설치하고 연결하면 끝일 줄 알았지만...아시죠? 원래 설치하고 환경 설정하는 게 제일 오래 걸리는거^.^ 1. Docker 실행 서로 다른 환경을 가진 사람들끼리 협업하는 것은 여간 복잡한 일이 아니다. 같은 걸 설치해도 각자의 컴퓨터 환경에 따라 실패하는 경우가 많아 프로젝트 관리가 어렵다. 이를 위해 나온 것이 바로 docker이다. docker에 대한 자세한 내용은 이곳을 참고하자. 1) 설치 파일 다운로드 https://hub.docker.com Docker Hub Docker Certified:Trusted & Supported Products Certified Containers provide ISV apps available as..
[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 지난 포스트에서는 토큰 기반 인증 시스템의 기본적인 개념에 대하여 알아보았습니다. 이 포스트를 읽기 전에, 토큰 기반 인증 시스템에 대해서 잘 모르시는 분들..
IT 연합 동아리 NEXTERS(넥스터즈) 활동 후기 5월 13일 월요일부터 넥스터즈의 15기 신규 회원 모집이 시작되었다. 넥스터즈가 실제로 어떤 활동을 하고, 어떤 점이 좋은지 궁금할 사람이 많을 것 같아 그동안의 활동 내용을 정리해보았다. 일단 넥스터즈는 매주 토요일 오후에 3~4시간 동안 정규 세션을 진행하며, 이와 별개로 프로젝트 진행을 위한 팀 미팅도 해야 한다. 팀 미팅은 서로 합의한 날짜에 꾸준히 모이는 것이 최선이나, 시간이 맞지 않으면 화상 채팅을 하거나 정규 세션 전에 만나는 경우도 있다. 또한, 여느 동아리처럼 필요한 기술을 직접 교육 하는 곳은 아니다. 바로 실제 프로젝트에 투입되어야 하므로, 실력에 자신이 없다면 미리 스터디를 하는 등 각오를 해야 한다. 나 자신의 발전을 위해서라도! 1주차 - 오리엔테이션 앞에 일이 있어 4시쯤 ..
[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(); } // 함수가 받는 파..