본문 바로가기

BackEnd41

[MongoDB] 자주 쓰는 명령어(Command) 서버(Server) 관련 명령어 서버 실행 mongod MongoDB 쉘 실행 mongo 데이터베이스(Database) 관련 명령어 생성된 DB 리스트 조회 show dbs 현재 사용하고 있는 DB 보기 db DB 생성 및 선택 use [db_name] 새로운 DB 생성 또는 기존의 생성된 DB를 사용하는 명령어이다. DB 생성과 동시에 작업환경을 새 DB로 전환한다. show dbs로 현재 생성된 DB 리스트를 출력하면, 새로 생성된 DB는 보이지 않는다. 새로 생성된 DB는 비어있는데, 적어도 하나의 컬렉션을 등록해주어야 데이터 목록에 표시된다. DB 삭제 db.dropDatabase() 현재 사용 중인 DB를 삭제한다. 컬렉션(collection) 관련 명령어 생성된 컬렉션 조회 show colle.. 2021. 8. 23.
[JWT] JWT(JSON Web Token)의 저장 위치 비교 JWT(JSON Web Token)는 JSON 형태의 토큰으로 클라이언트가 서버에 자원을 요청할 때 요청과 함께 전달하여 요청 권한을 증명할 수 있다. 서버가 토큰을 발급해주면, 브라우저에서 클라이언트/서버 간에 토큰을 전달하는 방식은 크게 두 가지로 나뉜다. 1. HTML5 Web Storage(LocalStorage 또는 SessionStorage) 2. Cookie HTML5 Web Storage Cookie의 단점 웹 브라우저에서 쿠키의 저장 한도는 약 4KB로 제한된다. 쿠키는 모든 HTTP 요청과 함께 전송되므로 웹 애플리케이션 성능이 저하된다. HTML5 Web Storage란 무엇인가? 사용자가 key/value 쌍의 형태로 데이터를 유지할 수 있도록하는 간단한 클라이언트 측 데이터베이스이.. 2021. 8. 22.
[JWT] JWT(JSON Web Token) 설명 및 구조 JWT이란? JWT(JSON Web Token)은 정보 수신/송신자 간에 정보를 JSON 객체로 안전하게 전송하기 위한 간결하고 Self-contained한 방법을 정의하는 개방형표준(RFC 7519)이다. 이 정보는 디지털 서명되어 있으므로 확인 및 신뢰가 가능하다. JWT는 Secret( HMAC 알고리즘 사용)을 사용 하거나 RSA 또는 ECDSA를 사용하는 공개/개인 키 쌍을 사용하여 서명할 수 있다. JWT를 암호화하여 수신/송신자 간에 기밀도 제공할 수 있지만, 서명된 토큰에 초점을 맞출 것이다. 서명된 토큰은 해당 토큰에 포함된 클레임의 무결성을 확인할 수 있는 반면, 암호화된 토큰은 다른 당사자로부터 해당 클레임을 숨길 수 있다. 공용/개인 키 쌍을 사용하여 토큰에 서명할 때 서명은 개인 .. 2021. 8. 21.
[JWT] 서버 기반 인증 vs 토큰 기반 인증 서버 기반 인증 서버 기반 인증 시스템의 흐름 기존의 인증 시스템에서는 서버측에서 유저들의 정보를 기억하고 있어야 한다. 유저들의 정보를 기억하기 위해서 세션을 이용하는데, 이 세션을 유지하기 위해서는 메모리/디스크/데이터베이스 시스템과 같은 여러가지 방법을 이용했다. 서버 기반 인증 시스템의 흐름을 보자면 다음과 같다. 이런 방식의 인증 시스템은 아직도 많이 사용되고 있다. 하지만, 서버 기반 인증 시스템은 아래와 같은 문제를 가진다. 서버 기반 인증의 문제점 세션 유저가 인증을 할 때, 서버 측에 이러한 정보를 저장해야 하며, 이를 세션이라고 부른다. 대부분의 경우엔 메모리에 이를 저장하나 로그인 중인 유저의 수가 늘어난다면, 서버 측 메모리가 과부화가 올 것이다. 이를 피하기 위해 데이터베이스를 이.. 2021. 8. 20.
[Database] MongoDB(NoSQL) VS MySQL(SQL) MongoDB와 MySQL의 주요 차이점 MySQL은 Oracle Corporation의 관계형 데이터베이스 관리 시스템(RDBMS)이다. 다른 관계형 시스템과 마찬가지로 MySQL은 테이블에 데이터를 저장하고 데이터베이스 액세스를 위해 구조화된 쿼리 언어(SQL)를 사용한다. MySQL 개발자는 애플리케이션의 데이터에 액세스해야 할 때 JOIN이라는 프로세스에서 여러 테이블의 데이터를 병합한다. MySQL에서는 데이터베이스 스키마를 미리 정의하고 테이블의 필드 간의 관계를 제어하는 규칙을 설정한다. MongoDB는 데이터를 JSON과 유사한 문서롤 저장하는 NoSQL 데이터베이스이다. 문서는 관련 정보를 함께 저장하고 액세스를 위해 MongoDB 쿼리 언어(MQL)을 사용한다. 필드는 문서마다 다를 수.. 2021. 8. 20.
[JMeter+InfluxDB v2.0+Grafana] Grafana JMeter Load Test Dashboard JMeter InfluxDB v2.0 listener plugin JMeter로 Load Test를 진행하고, Backend Listener로 JMeter InfluxDB v2.0 listener plugin을 이용해 InfluxDB에서 테스트 결과 데이터를 받는다. 결과 모니터를 위해서 Overall Throughput, Average Response Times, Latency, Sent Bytes per Request 등과 같은 결과를 보여주는 Grafana Dashboard도 제공한다. JMeter Load Test (org.md.jmeter.influxdb2.visualizer) - influxdb v2.0 (Flux) dashboard for Grafana This dashboard shows .. 2021. 8. 17.
반응형