목록개발일지 (19)
Lsiron
프로젝트를 마무리 함에 있어 마지막 관문이였던 배포. 엘리스에서 VM 활용 매뉴얼을 주면서 배포를 할 수 있도록 했는데, 이는 어떻게 작용하며 이 VM을 사용함에 있어 장단점은 무엇일까? 또한 현업에서는 Docker와 Kubernetes를 사용하는데 이유는 무엇일까? 한번 파헤쳐보자! VM?먼저, VM은 하드웨어 수준에서 가상화를 통해 운영체제를 포함한 전체 시스템을 가상으로 실행하는 기술이다. 물리적인 컴퓨터(호스트)에서 다수의 가상 머신(게스트)을 구동할 수 있으며, 각 VM은 자체 운영체제와 애플리케이션을 실행할 수 있다. 따라서 외부에서 특정 IP 주소나 도메인을 통해 이 VM에서 구동 중인 애플리케이션에 접근할 수 있다. 엘리스에서 제공한 VM 활용 매뉴얼은, ssh를 통해 가상 머신에 접속하..
금번 NUDDUCK 웹 프로젝트를 하면서 TypeORM을 적용 해 봤는데 사용법만 잘 알면 여러 방면으로 활용을 할 수 있을 거 같아 블로그로 남겨본다! Nest.js에서 MySQL과 TypeORM을 통합하여, layered architecture의 repository 패턴에 어떻게 사용했는지 구체적인 코드 예시를 들어 설명을 해 보겠다.1. TypeORM 이란?먼저 TypeORM은 MySQL, PostgreSQL, SQLite 등 다양한 데이터베이스와 함께 사용할 수 있는 Object-Relational Mapper이다. TypeORM은 객체지향 프로그래밍 패러다임을 데이터베이스와 연결해 주는 역할을 한다. 즉, 데이터베이스의 테이블을 클래스 형태로 표현하고, SQL 쿼리 없이 객체 지향 방식으로 데이..
내가 프로젝트에서 로그인을 구현할 때 항상 사용했던 JWT 토큰 방식. 이 JWT토큰에 대해서 한번 제대로 파헤쳐 보자. JWT 토큰은 JSON Web Token의 줄임말로, 어떤 사이트나 앱에 로그인했을 때, 그 사이트가 "이 사람이 진짜 맞다!"고 확인해 주는 신분증 같은 거라고 생각하면 되겠다. 그리고 이 신분증에는 비밀이 담겨 있어서 아무나 바꾸지 못 한다. JWT 토큰은 세 가지 부분으로 나눠져 있다. 비유하자면 햄버거랑 비슷하다고 생각하면 되겠다.// 헤더 (Header){ "alg": "HS256", // 사용하는 암호화 알고리즘 "typ": "JWT" // 토큰 타입}// 페이로드 (Payload){ "userId": 123, // 사용자 ID "role": "user"..
누떡 프로젝트에서 JWT 가드가 유저의 엑세스 토큰을 검증하지 못하는 문제를 겪었다. 처음에는 Authorization 헤더에서 Bearer 토큰을 추출하는 방식으로 JWT 전략을 설정했지만, 실제로는 엑세스 토큰이 쿠키에 저장되도록 했기 때문에 검증이 실패했던 것. 아래 코드가 바로 내가 처음에 설정한 토큰 추출 방식이다.import { AuthService } from '@_auth/auth.service';import { Injectable, UnauthorizedException } from '@nestjs/common';import { ConfigService } from '@nestjs/config';import { PassportStrategy } from '@nestjs/passport'..