이끌든지 따르든지 비키든지

Project/Node.js 5

[Node.js] Node.js 서버에서 AWS S3 이미지 가져오기

AWS S3 Storage에 저장된 이미지를 Node.js를 통해 가져오는 방법에 대해 알아본다. S3 Bucket 설정 우선, 이미지를 담을 S3 Bucket을 생성한다. 버킷 이름을 설정해주고, 퍼블릭 엑세스 차단 설정을 반드시 체크해주어야 Node.js 서버에서 S3 버킷에 접근할 수 있다. 버킷을 생성했다면, 버킷 속성 → 권한 → 버킷 정책 → 버킷 정책 편집 → 정책 생성기로 들어가 버킷 정책을 만들어준다. 입력해야하는 값 Type of Policy - S3 Bucket Policy Principal - * Actions - GetObject ARN - 버킷 정책 편집 페이지에서 볼 수 있음 전부 맞게 입력했다면, Add Statement → Generate Policy 버튼을 차례대로 눌러 ..

Project/Node.js 2023.09.20

[Node.js] Crypto 모듈로 비밀번호 암호화하기

웹 서비스를 운영하면 사용자 정보를 안전하게 저장하고 관리해야 한다.이를 위해 암호화하거나 해싱하는 등의 작업이 필요한데, Node.js 환경에서는 bcrypt, Scrypt, crypto 등의 모듈을 통해 이 작업을 수행할 수 있다. 이 중, crypto 모듈을 사용해 사용자의 정보(비밀번호)를 암호화하는 방법에 대해 알아본다.Crypto 모듈 설치npm install crypto위 명령어를 통해 crypto 모듈을 설치할 수 있다. package.json의 dependencies에도 자동으로 crypto가 추가된다.Typescript 환경에서 작업하는 경우에도 특별히 다른 모듈 설치 없이 사용할 수 있다.Crypto로 비밀번호 암호화하기 비밀번호 암호화는 위 그림의 순서대로 진행되는데, 그림에 설명을..

Project/Node.js 2023.09.14

[Node.js] env로 환경변수 관리하기

웹서버에서 DB로 연결을 구성할 때, config 파일에 호스트, 이름, 암호, 포트번호 등을 반드시 작성해야 한다. 로컬 환경에서 개발·테스트를 진행할 때에는 이 정보를 하드코딩(상수나 변수값을 코드에 직접 쓰는 것)해도 큰 문제가 발생하지 않겠지만, public 등에 배포되는 경우, 암호나 비밀키가 그대로 노출되는 문제가 발생한다. 위와 같은 문제를 예방하기 위해 중요한 정보(암호, 비밀키 등)은 환경 변수를 사용해 관리할 것을 권장하는데, Node.js는 process.env 라는 자체 기능을 통해 환경 변수 관리를 지원한다. 하드코딩 방식으로 config를 작성한 경우 const databaseConfig = { database: 'mydatabase', username: 'myuser', pas..

Project/Node.js 2023.09.13

[Node.js] 간단한 로그인 기능 구현하기

로그인 / 회원가입은 웹 · 앱 서비스를 개발할 때 필수적으로 들어가야할 핵심 기능 중에 하나다. Node.js 진영에서는 개발 편의성, 보안, 로그인 상태 관리를 위해 Passport, JWT, Bcrypt, OAuth 등등 많은 미들웨어와 라이브러리를 사용하는데, 오늘은 이러한 기능의 사용 없이 Express.js만으로 로그인 요청을 처리하는 로직을 구현해본다. Controller 코드 작성 export default class AuthController { login = async (req, res) => { const { username, password } = req.body; // 원래는 DB에 보관된 사용자 정보와 비교하는 검증 로직이 들어가야함! const isValid = if (user..

Project/Node.js 2023.09.12

[Node.js] Cookie-Parser로 쿠키 구현하기

▶ 쿠키란? 쿠키란, 브라우저와 웹 서버 간에 정보를 교환과 유지를 위해 사용하는 데이터를 말한다. 쿠키는 클라이언트(웹 브라우저) 측에 저장되고, KEY : VALUE 방식으로 데이터를 저장한다. '오늘 하루 이 팝업 보지 않기'나, '로그인 상태 유지' 등 사용자와 브라우저간의 이전 상호작용을 기억하거나, 사용자별로 다른 콘텐츠를 표시하려 할 때 쿠키를 주로 사용한다. Node.js에서는 Cookie-Parser라는 미들웨어를 통해 쿠키 읽기, 쓰기, 삭제 등을 수행한다. Cookie-Parser 설치 방법 npm install cookie-parser npm install --save-d @types/cookie-parser // Typescript 환경에서 작업하는 경우 npm 명령어를 통해 Co..

Project/Node.js 2023.09.11