본문 바로가기

백엔드/DB54

Redis 와 MongoDB 의 로그인 토큰 적합성 비교 보통 로그인 토큰 관리는 Redis에서 많이 하는데 현재 프로젝트에서는 MongoDB 를 메인 디비로 사용하고 있어서둘 중 어떤 DB로 로그인 토큰 관리하는게 적합한지 궁금해서 찾아보게 되었다.  데이터 구조 및 저장 형식Redis 는 Key-Value 형태의 데이터 구조를 가지는 인메모리 데이터 저장소이다. MongoDB는 Document 형태의 데이터 구조를 가지며 디스크 기반으로 데이터를 저장한다. 이러한 차이로 Redis 는 메모리 기반으로 빠른 데이터 처리가 가능하고 주로 캐싱에 사용되고 MongoDB는 대용량의 데이터를 저장하고 관리하는데 적합하다.   Redis 사용 시 장점속도: Redis는 메모리 기반 데이터 스토어로, I/O가 메모리에만 집중되어 있어 조회 속도가 매우 빠르다. 이는 로.. 2024. 10. 31.
[MongoDB] MongoDB Aggregate() db.collection.aggregate()mongodb 조회 시 find 는 간단한 조건에 대해서 사용이 용이한데 다양한 조건을 넣어서 사용할 수는 없다. 따라서 aggregate는 다양한 조건들에 대해 검색하고 싶을때 사용한다. 컬렉션 또는 뷰의 데이터에 대한 집계 값을 계산한다. > 파이프라인에 Explain 옵션이 포함된 경우 쿼리는 집계 연산 처리에 대한 세부 정보를 제공하는 문서를 반환한다. > 파이프라인에 $out 또는 $merge 연산자가 포함된 경우 쿼리는 빈 커서를 반환한다. db.collection.aggregate(pipeline, options) pipeline데이터 aggregate 작업 또는 단계의 시퀀스로입력 문서에 대한 연산을 수행한다. $out 또는 $merge 연산자가.. 2024. 10. 12.
[MongoDB] MongoDB compass 설치 (GUI) https://www.mongodb.com/try/download/compass Try MongoDB Tools - Download Free HereFree download for MongoDB tools to do more with your database. MongoDB Shell, Compass, CLI for Cloud, BI Connector and other database tools available.www.mongodb.com  GUI 가 적힌 해당 부분에서 원하는 버전과 환경에 맞는걸로 다운로드하면 된다.   compass 를 사용하는 이유는database, collection, document CURD에 대해 직관적인 UI 조작이 가능하고 쿼리문 날리기도 편하게 되어 있다. 2024. 10. 9.
[Mysql] 데이터 삭제하기 & AUTO INCREMENT 초기화 - DELETE, TRUNCATE, DROP mysql 에서 데이터를 삭제하는 방법은 세가지 정도가 있다. DELETE : WHERE 절에 조건을 걸고 데이터 삭제, 테이블 유지TRUNCATE : WHERE절을 사용하지 않고 모든 데이터 삭제DROP : 데이터 삭제 & 테이블 삭제  DELETEDELETE 에서 WHERE 절이 없이 사용하면 모든 데이터가 삭제 되기 때문에 주의한다. name 이 test 인 데이터 행 삭제-- DELETE FROM 테이블명 WHERE 조건;DELETE FROM member WHERE name = 'test';  DROPmember 테이블 자체가 삭제된다.-- DROP TABLE 테이블명DROP TABLE member;   TRUNCATE테이블은 그대로고 데이터만 삭제된다. Auto increment 도 초기화된다... 2024. 8. 1.
[Mysql] Docker 환경에서 mysql 설치 후 접속 에러 - Access denied for user 'root'@'172.17.0.1' (using password: YES) Docker 환경에 mysql 을 설치하고 localhost로 접속하면 Access denied for user 'root'@'172.17.0.1' (using password: YES) 다음과 같은 에러가 나면서 접속이 안된다. docker 에서 컨테이너 접속 $ docker exec -it bash mysql 접속 > mysql -u root -p 계정에 권한 부여 > GRANT ALL PRIVILEGES ON *.* TO 'root'@'172.17.0.1' WITH GRANT OPTION; 다른 계정을 사용한다면 계정 생성 및 권한 부여 > CREATE USER 'admin'@'172.17.0.1' IDENTIFIED BY '비밀번호 입력'; > GRANT ALL PRIVILEGES ON *.* T.. 2023. 12. 12.
[MySQL/Intellij] Public key retrieval is not allowed 에러 해결 에러 원인 Mysql DB 에 접속시도를 했는데 Public key retrieval is not allowed 에러가 나면서 DB에 접속이 안되었다. Mysql 8.0 버전 부터 보안적인 이슈로 useSSL 옵션에 대한 추가적인 설정이 필요해졌다. useSSL=false 로 설정되어 있는지, allowPublicKeyRetrieval 설정이 되어 있는지 확인해본다. 해결 만약 다음과 같은 에러가 난다면 두가지 옵션에 대해서 추가 및 변경해준다. 접속하는 datasource URL에 아래와 같이 설정해준다. jdbc:mysql://localhost:port/database?useSSL=false&allowPublicKeyRetrieval=true useSSL : DB에 SSL로 연결 allowPublic.. 2023. 9. 18.