01. Swagger swagger란 RESTful 웹 서비스를 문서화하고 테스트하기 위한 강력한 도구와 프레임워크 백엔드 개발자와 프론트 엔드 개발자 간의 협업을 용이하게 하며 API 엔드포인트, 요청 및 응답 형식, 매개변수, 보안 등에 대한 자세한 문서를 생성하는 데 도움을 준다. API 개발 및 관리가 훨씬 효율적이며, BE와 FE 협업을 간소화 할 수 있다. 02. 주요 기능 API 문서 생성: API에 대한 자동화된 문서를 생성할 수 있다. 문서에는 엔드포인트, HTTP 메서드(GET, POST, PUT, DELETE 등), 요청 및 응답 형식, 매개변수, 예제 요청 및 응답 등이 자세하게 나와 있다. API 테스트: Swagger UI를 통해 API를 테스트할 수 있다. 사용자는 문서에서 제..
01. 준비하기 모듈 설치 npm install @nestjs/passport passport passport-kakao passport-naver-v2 passport-google-oauth20 카카오 디벨로퍼 https://developers.kakao.com/ Kakao Developers 카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다. developers.kakao.com 네이버 디벨로퍼 https://developers.naver.com/main/ NAVER Developers 네이버 오픈 API들을 활용해 개발자들이 다양한 애플리케이션을 개발할 수 있도록 API 가이드와 SDK를 제공합니다. 제공중인 ..
01. Nest.js란? Node.js 기반의 서버 사이드 애플리케이션을 빌드하기 위한 프레임워크 TypeScript로 개발이 이루어진다. 모듈화, Dependency Injection, 간결한 문법 등을 특징으로 한다. 02. 특징 모듈화: 애플리케이션을 모듈 단위로 구성하여 코드를 논리적으로 분리하고 재사용 가능하게 한다. 큰 규모의 애플리케이션 개발 시 구조를 보다 체계적으로 관리할 수 있도록 도와준다. Dependency Injection: 의존성 주입을 강력하게 지원하여 코드의 유지보수성과 테스트 용이성을 향상시킨다. 의존성 주입을 통해 컴포넌트 간의 결합도를 낮추고 모듈의 교체나 확장이 용이해진다. HTTP 요청 처리: 라우팅, 미들웨어, 예외 처리 등의 기능을 내장하고 있어 웹 애플리케이션을..
01. Artillery 개발자가 애플리케이션을 효과적으로 테스트할 수 있는 오픈 소스 라이브러리 HTTP, Socket.io, Websocket, gRPC 등 다양한 프로토콜 지원 클라우드 규모에서의 테스트 가능 (AWS Lambda 서버리스 로드 테스트) HTML, JSON 등 가독성이 좋은 처리량 및 통계 제공 시나리오 단위로 테스트 가능 02. 부하 테스트 서버가 얼마만큼의 요청을 견딜 수 있는지 테스트하는 방법 서버가 몇 명의 동시 접속자나 일일 사용자를 수용할 수 있는지 예측하는 것은 매우 어렵다. 작성한 코드에 문제가 없더라도 서버의 하드웨어 제약으로 인해 서비스가 중단될 수 있다. OOM(out of memory):서버가 접속자들의 정보 저장을 위해 각 사용자마다 일정한 메모리를 할당할 때..
01. HTTP의 특징 비연결지향(Connectionless) HTTP는 클라이언트의 Request를 통해 서버에 데이터 요청, 서버의 Response를 통한 데이터 주는 형태로 이루어져있다. 이 과정이 끝나면 연결을 끊는 특성이 있는데, 현재 HTTP 1.1 번전에서는 connection을 계속 유지하고 요청에 재활용하는 기능이 추가되었다. HTTP header에 Keep-alive 옵션을 주어 커넥션을 재활용하게 한다. HTTP 1.1 버전에서는 Default 옵션이다. 상태없음(Stateless) Connection을 끊는 순간 클라이언트와 서버의 통신이 끝나며 상태 정보는 유지하지 않는 특성이 있다. 02. 쿠키와 세션 HTTP의 특징을 보완하기 위해서 쿠키와 세션을 사용하게 되었다. ==> 비연..
컨테이너란 기술이란? 실행에 필요한 모든 파일을 포함한 전체 runtime 환경에서 애플리케이션을 패키징하고 격리할 수 있는 기술 전체 기능을 유지하면서 컨테이너화된 애플리케이션을 환경(개발, 테스트, 생산 등) 간에 쉽게 이동할 수 있다. 쉽게 설명하면 가상화 기술이라 할 수 있다. 호스트 운영체제 위에 여러 개의 격리된 환경을 생성 각각의 컨테이너 안에서 애플리케이션을 실행 Docker란? 리눅스 컨테이너에 리눅스 어플리케이션을 프로세스 격리 기술을 사용하여 더 쉽게 컨테이너로 실행하고 관리할 수 있게 해주는 오픈소스 프로젝트 일반적으로 도커 엔진 혹은 도커에 관련된 모든 프로젝트를 말한다. 컨테이너 기반 가상화 도구 애플리케이션을 컨테이너라는 단위로 격리하여 실행하고 배포하는 기술 Docker 파일..