목록개발 (31)
레커
NextAuth 라이브러리NextAuth.js는 Next.js 프로젝트의 사용자 인증 및 세션 관리를 위한 라이브러리특히 Google, GitHub, 카카오 등의 다양한 인증 공급자를 지원하고, Next.js의 서버와 클라이언트 측 모두에서 인증 및 세션 관리를 손쉽게 처리할 수 있도록 도와주는 라이브러리홈페이지 링크 : https://next-auth.js.org/NextAuth 설치npm install next-auth ORyarn add next-authNextAuth 기본 설정project의 pages/api/auth 경로에 /[...nextauth].js 파일 생성 import NextAuth from "next-auth"import GithubProvider from "next-auth/pro..
네트워크 계층네트워크 계층이란역할OSI 7Layer의 3계층으로 패킷 포워딩과 네트워크간 라우터를 통한 라우팅 수행IP(Internet Protocol) 주소를 사용하여 통신, 계층적 구조대표적인 장비는 라우터, L3라고 말함IP 정의와 구조IP(Internet Protocol)네트워크 계층에서 통신하는 주요 프로토콜로 라우팅을 구현하고 본질적인 인터넷을 구축하는 계기전송 제어 프로그램의 비연결 데이터그램 서비스로 시작하여 연결 지향 서비스로 보완TCP/IP 모델의 기원현재는 IPv4 사용 중이며, IPv6 버전도 릴리즈됨IP 주소 확인Windows : CMD > ipconfigLinux : ifconfigIP 구조IP는 Header와 Payload로 구성Header 는 목적지와 출발지IP주소 등 포함하..
모놀리스(Monolithic) 많이 사용 아키텍처 방식으로 하나의 소프트웨어를 구성하는 모든 모듈과 코드를 한 프로젝트에서 관리서비스가 단일 프로세스로 동작되어, 더 적은 기술과 설계 방법이 필요새로운 앱을 만들때 좋은 시작점. 마이크로서비스 앱에 필요한 기술적 투자를 하기 전 빠르게 비즈니스 검증비스니스와 서비스가 확장될수록 유지 보수가 어려워짐마이크로서비스(Microservice )마이크로서비스(Microservice) 아키텍처는 하나의 소프트웨어를 구성하는 컴포넌트들을 독립적인 프로젝트들로 분리하여 관리서비스의 기능들을 수행하기 위해 작은 서비스로 구성된 일종의 분산 프로그램 형태각각의 서비스는 실제로 분리된 서버에 위치하고 서비스를 종합적으로 관리할 수 있는 오케스트레이션 플랫폼이 필요다른 환경에..
Apache설명Apache는 아파치는 월드와이드 웹 서버용 소프트웨어Apache는 HTTP 아파치 서버라고도 불리고, HTTP 웹 서버리눅스나 윈도우 등 거의 모든 운영체제에서 사용할 수 있으며 구축이 쉽고 다양한 추가 기능을 가지고 있기 때문에 많이 사용된다.동작방식freforkApache는 새로운 요청이 왔을 떄 Parent Process가 Child Process에 생성 처리Child Process를 미리 준비해두는 방식으로 동작, 미리 준비한 Child Process 다 사용 중이면 그 떄 새로운 프로세스를 생성하나의 Child Process는 1개의 스레드가 연결, Child Process는 최대 1024개 가능스레드를 통해 독립적인 메모리 확보가 가능하여 안정적이나 메모리 소비가 많음위 같은 ..
Yarn Berry란? Yarn(yet another resource negotiator)은 facebook에서 빌드하고 google, Exponent 및 Tilde에서 지원하는 Javascript 패키지 및 종속성 관리자이다. Yarn Berry는 Node.js를 위한 새로운 패키지 관리 시스템으로, Yarn v1의 주요 개발자인 Maël Nison 씨가 만들었습니다. NPM의 문제점 commonJS에서는 로컬 파일 시스템으로부터 모듈을 임포트하기 위해 require.resolve 알고리즘에 의해 node_modules를 순회하면서 모듈의 위치를 찾아냅니다. NPM은 패키지를 찾기 위해서 계속 상위 디렉토리의 node_modules 폴더를 탐색합니다. 패키지를 바로 찾지 못할수록 느린 I/O 호출이 반..
- Sentry Sentry는 실시간 로그 취합 및 분석 도구이자 모니터링 플랫폼입니다. 로그에 대해 다양한 정보를 제공하고 이벤트별, 타임라인으로 얼마나 많은 이벤트가 발생하는지 알 수 있고 설정에 따라 알림을 받을 수 있습니다. 그리고 로그를 수집하는데서 그치지 않고 발생한 로그들을 시각화 도구로 쉽게 분석할 수 있도록 도와주며 다양한 플랫폼을 지원합니다. https://sentry.io/ 접속하여 가입을 진행 노드환경으로 프로젝트 생성 프로젝트 설정 -> Client Key(DNS) 클릭 -> DSN 키 복사 하여 .env에 추가 슬랙에 가입-> 새로운 워크스페이 생성-> 채널생성-> 설정 및 관리 -> 앱관리 클릭 앱 생성-> Incomming Webhoos 클릭 -> 웹 훅 권한 수락 -> .e..
- Brute Force 공격 인증 정보(사용자 이름과 비밀번호)를 알아내기 위해 공격자가 반복적으로, 체계적으로 매번 다른 사용자 이름과 비밀번호를 입력하는 방식의 공격을 말합니다. 단순하지만 리소스를 많이 소비하는 시행착오 기반의 접근방식으로, 자동화된 툴이나 봇을 이용해 액세스 권한을 획득활 때 까지 대입합니다. - Rate Limiting npm i @nestjs/throttler - app.modules imports: [ ThrottlerModule.forRoot([{ ttl: 60, limit: 10 }]), }), 전역으로 60초 동안 최대 10회로 최대 요청 수를 제한 할 수 있다. 특정 라우터만 해제하는 방법 import { Controller } from '@nestjs/common'..
Auth.controller.ts 로 경로 지정 @UseGuards 를 통해 KakaoAuthGuard 실행 import { Controller, Get, Post, Redirect, Req, UseGuards, Request, Response, Res } from '@nestjs/common'; import { ApiTags } from '@nestjs/swagger'; import { KakaoAuthGuard } from './guards/kakao.guard'; import { ConfigService } from '@nestjs/config'; @ApiTags('Auth') @Controller('auth') export class AuthController { constructor(privat..