TO-DO-LIST
🔳 서버를 배포하는 플랫폼 Deta Space
🔳 데이터베이스의 필요성
🔳 RDB (Relational Database) & SQL (Structured Query Language)
🔳 SQL QUERIES
🧐 오늘의 회고
✔️서버를 배포하는 플랫폼 Deta Space
1. 회원가입 후 로그인
2. Docs 클릭
3. Basics - setting up the CLI 클린
4. *Mac 기준
curl -fsSL https://deta.dpace/assets/space-cli.sh | sh
복사 후 Visual Studio 로 이동
5. 터미널(ctrl+`)에서 위 코드를 붙여넣는다
6. space login 을 입력한다
7. Deta Space에서 'access' 검색
8. Generate Token 생성 후 복사
9. Visual Studio에 Token을 붙여넣는다
10. 아래 구문을 입력한다
pip freeze > requirements.txt
11. space new 를 입력한다
12. 프로젝트 이름을 입력 후 'Y'를 입력한다
13. space push 를 입력한다
14. Successfully pushed your code ~ 라고 나오면 성공!
15. Deta Space에 새로고침 하면 내가 배포한 사이트를 볼 수 있음.
16. 추후 수정한 파일에 대해서는 터미널에서 'space push' 만 다시 해주면 수정 사항이 반영이 된다.
✔️데이터베이스의 필요성
1. 데이터 저장 제한
: 데이터베이스가 없으면 앱이 사용하는 데이터를 효율적으로 저장하고 관리하기 어렵습니다. 이로 인해 데이터 손실이나 불안정한 데이터 처리가 발생할 수 있습니다.
2. 데이터 조회 속도 저하
: 데이터베이스를 사용하지 않을 경우, 데이터 조회 및 검색에 걸리는 시간이 증가할 수 있습니다. 이는 사용자 경험을 저하시키고, 앱의 성능을 떨어뜨립니다.
3. 데이터 일관성 및 무결성 문제
: 데이터베이스의 트랜잭션 처리 기능을 활용하지 못하므로, 여러 사용자가 동시에 앱을 사용할 때 데이터의 일관성 및 무결성을 보장하기 어렵습니다.
4. 보안 문제
: 데이터베이스를 사용하지 않으면, 데이터의 보안성이 저하될 수 있습니다. 데이터베이스는 암호화, 접근 제어 등 다양한 보안 기능을 제공하는 반면, 이를 직접 구현해야 하는 경우 복잡성과 시간적 비용이 증가합니다.
5. 확장성 제한
: 데이터베이스를 사용하지 않으면, 데이터의 양이 증가함에 따라 앱의 확장성이 제한됩니다. 데이터베이스를 활용하면, 데이터의 저장 및 관리를 효율적으로 수행하여 앱의 성장을 지원할 수 있습니다.
6. 코드 복잡성 증가
: 데이터베이스 없이 데이터를 관리하려면, 데이터 처리와 관련된 코드를 직접 작성해야 합니다. 이로 인해 코드의 복잡성이 증가하며, 유지 보수가 어려워질 수 있습니다.
✔️RDB (Relational Database) & SQL (Structured Query Language)
RDB (관계형 데이터베이스) 장점
1. 구조화된 데이터
: RDB는 테이블 구조를 가지고 있어 데이터를 구조화하고 정규화가 가능하며, 데이터의 일관성과 무결성이 유지됩니다.
2. 표준화된 질의 언어(SQL)
: SQL을 통해 데이터를 쉽게 조회, 추가, 수정, 삭제할 수 있습니다. 또한 다양한 DBMS에서도 호환성이 좋습니다.
3. 트랜잭션 지원
: RDB는 ACID(원자성, 일관성, 고립성, 지속성) 원칙을 지원하여 안정적인 트랜잭션 처리가 가능합니다.
RDB (관계형 데이터베이스) 단점
1. 확장성
: 수직 확장(Scale-up)을 주로 지원하며, 수평 확장(Scale-out)에 대한 지원이 제한적입니다. 이로 인해 대용량 데이터 처리나 분산 환경에서의 성능 저하가 발생할 수 있습니다.
2. 유연성 부족
: 고정된 스키마로 인해 데이터 구조의 변경이 어렵습니다. 새로운 데이터 타입이나 구조 변경이 필요할 경우, 추가 작업이 필요합니다.
NoSQL (비관계형 데이터베이스) 장점
1. 확장성
: NoSQL은 수평 확장(Scale-out)을 지원하여 대용량 데이터 처리와 분산 환경에서 뛰어난 성능을 보입니다.
2. 유연성
: 고정된 스키마가 없어 데이터 구조의 변경이 용이합니다. 다양한 데이터 타입과 구조를 저장할 수 있어 개발 시간을 단축할 수 있습니다.
3. 다양한 데이터 모델
: Key-Value, Document, Column-Family, Graph 등 다양한 데이터 모델을 지원하여 여러 상황에 적합한 솔루션을 선택할 수 있습니다.
NoSQL (비관계형 데이터베이스) 단점
1. 일관성
: 대부분의 NoSQL 데이터베이스는 확장성을 위해 일관성을 희생하는 경향이 있습니다. CAP 이론에 따라 일부 데이터베이스는 데이터의 일관성을 보장하지 않을 수 있습니다.
2. 표준화된 질의 언어 부재
: NoSQL에는 표준화된 질의 언어가 없어 각 데이터베이스마다 사용하는 질의 언어가 다릅니다. 이로 인해 새로운 데이터베이스를 사용할 때마다 새로운 질의 언어를 학습해야 할 수 있습니다.
3. 트랜잭션 지원 부족
: NoSQL 데이터베이스 중 일부는 트랜잭션 처리를 지원하지 않거나 제한적으로 지원합니다. 따라서 복잡한 트랜잭션 처리가 필요한 경우 RDB보다 불리할 수 있습니다.
SQL 연습할 수 있는 사이트
https://www.w3schools.com/sql/trysql.asp?filename=trysql_select_where
SQL Tryit Editor v1.6
WebSQL stores a Database locally, on the user's computer. Each user gets their own Database object. WebSQL is supported in Chrome, Safari, Opera, and Edge(79). If you use another browser you will still be able to use our Try SQL Editor, but a different ver
www.w3schools.com
✔️ SQL QUERIES
Select
테이블에서 원하는 값을 선택해서 가져옴
Join
두 가지 테이블을 합치는 기능
WHERE {조건문}
가져 오는 정보를 조건을 두어 제한
GROUP BY {컬럼명}
특정 컬럼(열)을 기준으로 그룹화
HAVING : 특정 조건 적용
COUNT : 개수
예시)
SELECT Country, COUNT(CustomerID) FROM Customers GROUP BY Country HAVING COUNT (CustomerID) >10;
ORDER BY {컬럼명}
특정 컬럼(열)을 기준으로 정렬
정렬 기준 => ASC 오름차순 / DESC 내림차순
SELECT Country, COUNT(CustomerID) FROM Customers GROUP BY Country ORDER BY COUNT (CustomerID) ASC;
SELECT Country, COUNT(CustomerID) FROM Customers GROUP BY Country ORDER BY COUNT (CustomerID) DESC;
LIMIT {제한할 개수}
데이터의 결과 수를 제한
SELECT Country,COUNT(CustomerID) FROM Customers
GROUP BY Country ORDER BY COUNT (CustomerID) DESC LIMIT 5;
🧐 오늘의 회고
데이터베이스를 다루는 방법 그리고 서버를 배포하는 방법.
하지만 혼자 해보라고하면 아직은 못하겠다..
자바스크립트를 더 공부하고 싶은데 와이리 진도가 빠른것이여~~
회사를 때려치고 앉아서 공부만 하고 싶다 진짜 후..
빵빵이가 귀엽다고 생각하시면!
아래 빵빵이 얼굴 한 번 클릭 해주세요!
(날 구독해달라옹!!!!)
'취미 공부 > Daily' 카테고리의 다른 글
2024. 05. 13 (월) 3주차 - Daily Coding - Day14 (0) | 2024.05.13 |
---|---|
2024. 05. 10 (금) 주차 - Daily Coding - Day12 (0) | 2024.05.10 |
2024. 05. 07 (화) 2주차 - Daily Coding - Day10 (0) | 2024.05.08 |
2024. 05. 07 (화) Daily Coding - Day09 (0) | 2024.05.07 |
2024. 05. 06 (월) 2주차 - Daily Coding - Day08 (0) | 2024.05.06 |