본문 바로가기
728x90

💾Database & Server38

[MongoDB] 사용 방법 feat. GoormIDE & Python 💡 goormIDE 환경에서는 컨테이너 생성 시 mongoDB사용을 체크하면 알아서 설치해주지만 안되면 따로 설치해야 한다. Python환경에서 mongoDB를 사용하기 위해 설치 pip install pymongo 1. MongoDB 서버 실행 Shell에서 mongod 명령어를 입력하여 mongodb 서버를 실행한다. 2. MongoDB 클라이언트 실행 새로운 터미널을 생성 > (alt+shift+t) 다른 터미널에서 mongo 명령어를 입력하여 mongodb 클라이언트 실행 3. 쉘 명령어 # 1. MongoDB 서버 실행 > mongod --dbpath # 2. MongoDB 쉘 실행 > mongo # 3. 데이터베이스 생성 > use > show dbs > db # 4. 컬렉션 생성 및 보기 >.. 2023. 8. 27.
[MongoDB] MongDB란? MongoDB는 오픈소스 비관계형 데이터베이스 관리 시스템(DMBS)으로, 테이블과 행 대신 유연한 문서를 활용해 다양한 데이터 형식을 처리하고 저장한다. MongoDB는 무엇입니까? MongoDB는 필요한 쿼리 제공 및 인덱싱을 활용해 원하는 수준의 확장성과 유연성을 제공하는 문서 데이터베이스입니다. www.mongodb.com NoSQL 데이터베이스 솔루션인 MongoDB는 관계형 데이터베이스 관리 시스템(RDBMS)을 필요로 하지 않으므로, 사용자가 다변량 데이터 유형을 손쉽게 저장하고 쿼리할 수 있는 탄력적인 데이터 저장 모델을 제공한다. MongDB 문서 또는 문서 컬렉션은 데이터의 기본 단위이며, JSON형식으로 지정되어 다양한 유형의 데이터를 저장할 수 있다. Ex > { _id: 10, u.. 2023. 8. 27.
[MySQL] SQL Injection 💡 SQL Injection SQL인젝션(SQL 삽입, SQL 주입으로도 불린다)은 코드 인젝션의 한 기법으로 클라이언트의 입력값을 조작하여 서버의 데이터베이스를 공격할 수 있는 공격 방식이다. String SQL Injection id를 입력하고 pwd에 ⇒ 'OR''=’ 이라고 입력하면 True로 인식해버려서 로그인이 성공해버리게 된다. SQL query> sql = SELECT * FROM user_info WHERE id=’aaaa’ and pwd=' 'OR''=''; // 'OR''=' Numeric SQL Injection String으로 입력이 불가능한 경우 (selectBox) Burp Suit 프로그램을 이용해 Proxy로 값이 서버로 전송될 때 intercept하여 값을 원하는대로 수정.. 2023. 8. 25.
[MySQL] InnoDB & MyISAM 💡 MySQL의 스토리지 엔진으로 가장 많이 사용하는 엔진으로는 **InnoDB**와 **MyISAM**이 있다. InnoDB 엔진은 트랜잭션 처리가 필요하고 대용량의 데이터를 다루는 부분에서 효율적이고, MyISAM 엔진은 트랜잭션 처리가 필요 없고, Read only 기능이 많은 서비스일수록 효율적 이다. InnoDB는 데이터의 변화가 많은 서비스에, MyISAM은 SELECT가 많은 서비스에 적합하다 할 수 있다. InnoDB InnoDB 및 BDB 스토리지 엔진은 트랜젝션에 안전한 테이블을 제공하는 트랜잭션-세이프 스토리지 엔진이며, 모든 5.0 바이너리 배포판에 디폴트로 포함되어 있다. 특징 MyISAM과 비슷하지만 ORACLE처럼 많은 기능을 지원한다.commit, rollback, 장애복구,.. 2023. 8. 25.
[MySQL] Storage Engine 💡 데이터베이스 (MySQL)의 스토리지 엔진 Storeage Engine*은 *데이터베이스 관리 시스템(DBMS)이 데이터베이스에 대해 데이터를 삽입, 추출, 업데이트 및 삭제하는데 사용하는 기본 소프트웨어 컴포넌트이다. 스토리지 엔진은 DB에서 데이터를 어떠한 방식으로 저장하고 접근할 것 인지에 대한 기능을 제공한다 MySQL은 각 데이터베이스(schema)를 파일 시스템 Data Directory의 하위 Directory로 저장합니다. 테이블을 생성하면 MySQL은 ‘테이블이름.frm’ 파일을 만들고 그 안에 테이블 정의 정보를 저장한다. ‘Asdf’라는 테이블을 생성할 경우 MySQL은 ‘**Asdf.frm’**에 테이블 정의를 저장한다. MySQL은 데이터베이스 이름과 테이블 정의를 저장하는 데.. 2023. 8. 25.
[MySQL] Query 함수 💡 SELECT문에서 사용 가능한 함수들 조건식 SELECT [* | DISTINCT] 컬럼 FROM TABLE명 [ WHERE 조건 ] [ GROUP BY 컬럼 ] [ HAVING 검색조건 ] [ ORDER BY 컬럼 [ ASC | DESC ] 데이터 처리순서 FROM ON JOIN WHERE GROUP BY WITH CUBE 또는 WITH ROLLUP HAVING SELECT DISTINCT ORDER BY TOP 기본 SELECT * FROM TABLE명; // TABLE명에 있는 모든 컬럼의 데이터를 찾는다. SELECT 컬럼1, 컬럼2, 컬럼3 FROM TABLE명 // TABLE의 컬럼1, 컬럼2, 컬럼3의 데이터를 찾음 SELECT 컬럼1 AS 별칭 FROM TABLE명 // 컬럼1 AS 별.. 2023. 8. 25.
[MySQL] Query 문법 Database 데이터베이스 목록 표시 SHOW databases; 데이터베이스 생성 CREATE DATABASE [DB명]; 데이터베이스 삭제 DROP DATABASE [삭제할 DB명]; 데이터베이스에 접근(선택) USE [선택할 DB명]; Table 테이블 목록 표시 SHOW TABLES; 테이블 설계 정보 확인 DESC [테이블명]; sample DESC categories; +-------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+----------------+ | id | .. 2023. 8. 25.
[OpenSearch] OpenSearch란? (기본 사용법) OpenSearch는 Elastic에서 Elastic Lincense를 v2.0으로 변경함에 따라 상업적으로 이용할 시 추가비용이 발생하게 되어 AWS에서 Elasticsearch의 오픈 소스 버전을 포크하여 개발하고 있는 오픈 소스 프로젝트이다. OpenSearch는 Elasticsearch에서 파생된 오픈 소스 검색 및 분석 엔진이다. AWS를 주도로하는 커뮤니티 프로젝트로, Elasticsearch와의 호환성을 유지하면서 오픈 소스 커뮤니티의 협력을 받고 있다. Elasticsearch와 유사한 기능을 제공하며, 실시간 데이터 인덱싱, 검색, 분석 기능을 지원하고 데이터를 수평으로 확장할 수 있다. Apache 2.0 라이센스를 사용하여 무료로 사용할 수 있으며, AWS에서 OpenSearch 서비.. 2023. 8. 25.
[PostgreSQL] Json 활용 MySQL과 sql문은 거의 비슷하지만 PostgreSQL은 JSON타입을 사용할 수 있다는 차이점이 있다. 활용 예시 > -- JSON 타입의 열을 가지는 테이블 생성 CREATE TABLE products ( id SERIAL PRIMARY KEY, name VARCHAR(50), details JSON ); -- JSON 데이터를 INSERT 문을 사용하여 저장 INSERT INTO products (name, details) VALUES ('Product 1', '{"color": "red", "size": "large"}'); INSERT INTO products (name, details) VALUES ('Product 2', '{"color": "blue", "size": "medium"}'.. 2023. 8. 25.
728x90