Topic/Database
-
[ MongoDB ] 몽고cloud IP 등록하기 (ft. 연결 에러)Topic/Database 2022. 12. 24. 16:47
몽고DB와 연결을 해서 잘 쓰고 있었는데 배포를 하고 DB 연결이 안 되는 문제가 발생했다. 요청할 때 end point를 바꾸니 정확하지 않다고 떠서 routes에서 분기는 잘 되는 것으로 확인했고 몽고 클라우드를 확인해 보았다. 몽고 cloud 안의 프로젝트 cluster에 들어가 Network Access 클릭 ADD IP ADDRESS를 눌러 본인의 IP 등록 Pending이 끝나고 동작시키면 다시 잘 동작한다.
-
[ MongoDB ] mongoose 배열 값 추가, 삭제Topic/Database 2022. 9. 13. 14:42
type이 배열인 필드에 값 추가하기 ($push) // 해당 날짜 데이터에 userIp 추가해주기 await findTodayData.updateOne({ $push: { count: userIp, }, }); type이 배열인 필드에 값 삭제하기 ($pull) // 해당 날짜 데이터에 userIp 제거하기 await findTodayData.updateOne({ $pull: { count: userIp, }, }); // 혹은 pullAll로 해당 값을 삭제해줄 수도 있다. push로 배열에 넣었으니 pull로 배열에서 뺀다.
-
[ MongoDB ] 몽고DB 컬렉션 내 필드 전체에 update하는 방법Topic/Database 2022. 9. 1. 13:39
프로젝트를 진행하다가 기획이 수정되어 컬렉션 내 모든 곳에 필드를 추가할 일이 생겼다. 한 개를 변경하는 것은 updateOne으로 쉽게 했었는데 이번에 updateMany를 사용하게 되면서 일괄적으로 데이터를 추가하는 방법을 알아보자. updateMany의 인자는 총 3개이다. 첫번째 인자는 조회 조건을 가리킨다. 두번째 인자는 변경할 요소를 의미하고, $set 키워드를 사용하지 않는다면 작성한 내용으로 문서 전체가 변경된다. 세번째 인자는 upsert 여부와 다중으로 모두 수정할 것인지를 선택하는 옵션이다. dbName.updateMany({ lastName: LEE }, { $set: { isPass: true}}, { multi: true } ) 이렇게 작성해주면 실제 DB에서 lastName이 ..
-
NoSQL이란?Topic/Database 2022. 6. 22. 23:35
NoSQL : NoSQL은 (non SQL 또는 non relational) 기존 RDBMs 형태의 관계형 데이터베이스가 아닌 다른 형태의 데이터 저장 기술을 의미하며, 관계형 데이터 베이스의 한계를 극복하기 위한 데이터 저장소의 새로운 형태로, 수평적 확장성을 갖고 있다. RDBMS가 클라이언트/서버 환경에 맞는 데이터 저장기술이라면, NoSQL은 클라우드 환경에 맞는 저장 기술이다. NoSQL의 특징 NoSQL은 RDBMS와는 달리 데이터 간의 관계를 정의하지 않는다. RDBMS에 비해 훨씬 더 대용량의 데이터를 저장할 수 있다. 분산형 구조이다. 고정되지 않은 테이블 스키마를 갖는다. RDBMS 와 NoSQL의 차이 RDBMS 장점 - DATA를 Column과 Row 형태로 저장 - 데이터의 분류,..
-
MVC 파트, Short.lyTopic/Database 2022. 1. 26. 19:41
Short.ly MVC ✔️ 어떤 url 주소를 짧은 url 주소로 변환하여 주는 역할을 해주는 어플리케이션을 가지고 mysql, MVC 다뤄본다. 1) controllers 디렉토리 생성 models, routes, modules 등의 디렉토리 들과 동일 선상에 controllers 디렉토리를 생성해 주고, 그 안에 links 라는 디렉토리를 생성한 후, links안에 index.js 생성 controllers / links / index.js 2) app.js 서버 통신을 위한 express 와 routes 디렉토리 내에 있는 라우팅 파일들을 불러와서 app.use('/', indexRouter) app.use('/links', linksRouter) 클라이언트가 해당 경로로 요청을 보냈을 때 ind..
-
MVC, Database 구현Topic/Database 2022. 1. 25. 22:54
MVC ✔️ Model View Controller SW 아키텍쳐 디자인 패턴이다. 애플리케이션의 기능을 분리한다. 체계화된 프로그래밍을 가능케한다. ex) Ruby on Rails (Ruby) / Laravel (PHP) / Codeigniter (PHP) / Django (python) / Express (JS) Model 어플리케이션이 무엇을 할 것인지 정의한다. 내부 로직을 처리하기 위한 역할을 한다. 데이터 저장소(DB)와 연동하여 사용자가 입력한 데이터나 사용자에게 출력할 데이터를 다룬다. * Model은 다른 컴포넌트들에 대해 알지 못한다. View 사용자에게 화면(UI)을 보여준다. 화면에 무엇을 보여주기 위한 역할이다. 모델이 처리한 데이터나 그 작업 결과를 가지고 사용자에게 출력할 화면..
-
SQL 데이터베이스 연결, 스키마, SchemaTopic/Database 2022. 1. 21. 22:33
스키마의 중요성 인스타그램 스키마 디자인 SQL 쿼리문 JOIN에서 유독 막히는 부분들이 있었고 구글링을 하다 보니 JOIN에 대한 좋은 이해를 하게 된 표가 있다. 👇🏻 여기에서 INNER JOIN은 간단히 교집합이라고 생각하면 된다. 문제는 LEFT JOIN과 같은 OUTER JOIN들이 있는데, 쉽게 생각해서 FROM에 들어가는 테이블이 왼쪽, JOIN 칸에 들어가는 쪽이 오른쪽에 위치한다고 생각하고, 그 다음 LEFT냐 RIGHT냐에 따라서 왼쪽 원을 칠할 것이냐 오른쪽 원을 칠할 것이냐 라고 생각하는 편이 편하다. 코드로 풀어보자면, SELECT FROM TableA A LEFT JOIN TableB B On A.key = B.key 그림 왼쪽 상단의 LEFT JOIN의 실사용 쿼리문이다.
-
데이터베이스, SQL, ACID, Schema, QueryTopic/Database 2022. 1. 20. 22:10
SQL Basics ✔️ SQL ☑️ SQL: Structured Query Language / 데이터베이스 언어로, 주로 관계형 데이터베이스에서 사용한다. ex) MySQL, Oracle, SQlite, PostgreSQL ... 다양한 데이터베이스에서 SQL 구문을 사용할 수 있다. SQL이란 데이터베이스 용 프로그래밍 언어이다. 데이터베이스에 쿼리를 보내 원하는 데이터를 가져오거나 삽일할 수 있다. 이름에서 보듯이, 데이터가 구조화된(Structured) 테이블을 사용하는 데이터베이스에서 활용할 수 있다. SQL을 사용할 수 있는 데이터베이스와 달리, 데이터의 구조가 고정되어 있지 않은 데이터베이스를 NoSQL이라고 한다. 관계형 데이터베이스와는 달리, 테이블을 사용하지 않고 데이터를 다른 형태로 ..