본문 바로가기

반응형

개발/Back-end

(6)
MongoDB vs MySQL Node를 공부하면서 MySQL과 MongoDB 둘다 공부를 하는데 두 시스템의 차이가 무엇인지, 왜 Node에선 MongoDB를 많이 사용하는지 궁금해졌다. 공부하면서 정리한 내용을 공유해보자. MySQL은 오라클 사가 갖고 있는 대표적인 RDBMS이다. Table에 데이터를 저장하고 SQL을 이용하여 DB에 접근한다. MySQL 개발자는 Product에서 사용할 데이터를 위해 다양한 테이블의 정보를 합치는 JOIN 쿼리를 이용하게 된다. MySQL는 데이터베이스 스키마를 먼저 정의해야 하며 테이블에 들어갈 필드들에 대한 규칙을 규정하여 사용한다. 이에 반해, MongoDB는 NoSQL 데이터베이스로써 JSON과 닮은 형태의 document로 데이터를 저장한다. Document는 관련된 데이터를 한 번..
데이터 베이스 스키마 (Database schema) 데이터 베이스 스키마는 DB에서 1. 데이터 구조 2. 데이터의 표현 방법 3. 데이터 간의 관계를 형식 언어로 정의한 구조이다. 널리 쓰이는 3단계 구조에서는 DB를 관점에 따라 외부 스키마, 개념 스키마, 내부 스키마로 나뉜다. 외부 스키마는 각 사용자의 관점에 대해 보는 것이고, 개념 스키마에서는 모든 사용자의 관점으로 보는 것이며, 내부 스키마는 물리적으로 DB에 접근하는 관점으로 보는 것이다. 이는 추상화와 비슷한데, 각 단계를 분리함으로써 논리적/물리적 독립성을 얻게 된다. 스키마란 데이터베이스의 기술이다. 데이터 시스템 언어 회의 데이터베이스를 기술하기 위해 사용하기 시작한 개념. 데이터베이스의 구조에 관해서 이용자가 보았을 때의 논리 구조와 컴퓨터가 보았을 때의 물리 구조에 대해 기술하고 ..
Sequelize 간단히 알아보기 Sequelize 를 이번에 mysql을 공부하면서 처음 알게 되었다. 생각보다 너무 좋은 툴 이라서 간단하게 정리해보고자 한다. 일단 Sequelize는 DB랑 내가 개발한 Node 서버랑 연결해주는 다리라고 생각한다. 데이터랑 연결하기 위해서 쿼리를 날려야 하는데 이를 javascript를 통해 개발할 수 있도록 다리역할을 해준다. 객체의 메서드를 이용하는 것처럼 쿼리 로직을 작성할 수 있다. Sequelize는 다양한 관계형 DB랑 연관하여 개발할 수 있고 Promise 기반으로 개발되여 비동기 개발에도 수월하게 사용된다. sequelize init 위 명령어를 통해 기본적인 틀을 만들수 있다. config.json에서 설정을 해준다음 db:create로 생성해준다. 그리고 내가 원하는 table을..
SQL이 어려운 이유 2- JOIN 이번 편은 저번 편(GROUP BY) 편에 이어 두번째 편입니다. 개인적으로 근래 추세가 쿼리를 복잡하게 짜는 것도 아니고 최대한 단순하게 구성하는 것이기에 구글링 하면서 하면 문제 없이 풀 줄 알았는데 생각보다 막상 모의고사에서 만나니 생각보다 어렵다는 생각이 들었고 공부를 해야겠다는 생각이 들었다. 그중 하나가 JOIN이다. 해당 문제는 유출할 수가 없어서 사진을 올리지 못하지만 간단하게 애기 하면 테이블 3개를 합쳐야 되는 문제 였다. 어려웠다. 못 풀었다. SQL문제는 구글링을 통해 충분히 풀 수 있다고 생각했는데 그 오만한 생각이 과감히 깨지는 순간이었다. 그렇기에 이 시리즈를 통해 공부하려고 한다. 일단 프로그래머스에서 제공하는 SQL 고득점 Kit를 풀었다. Join 과 Group by 에 ..
SQL을 어려운 이유 1 - GROUP BY SQL을 깊게 공부해 본 적은 없지만 SQL을 공부하다 처음으로 어려워 지는 부분은 내 개인적으로 group by 였다. SQL은 Structed Query Language로 한국말로 풀이하면 구조화 질의어? 정도로 풀이할 수 있다. 관계형 데이터 베이스에서 사용을 하며 컴퓨터 공학과에서 가장 기초적이고 교육을 할때 가장 많이 쓰인다. 그리고 sql은 3가지로 분류되는데 DDL(Data Define Language) : 테이블 등을 정의하거나 변경 또는 삭제할 때 사용하는 언어이다. DML (Data Manipulation Language) : 데이터 베이스에 저장된 데이터에 쿼리문을 날려 실질적으로 처리하는데 사용한다. DCL (Data Control Language) : 데이터 관리를 목적으로 사용한..
Node js 자주 사용하는 미들웨어 nodejs 교과서를 통한 서버 공부중이다. 미들웨어 공부 중 자주 사용되는 미들웨어에 대해 정리해보았다. morgan 기존 로그 외에 추가적인 로그를 볼 수 있다. 요청과 응답에 대한 정보를 콘솔에 기록한다. morgan미들웨어는 다음과 같이 사용한다. app.use(morgan('dev')) 인수로 dev외에 combined, common, short, tiny 등을 넣을 수 있다.인수를 바꾸면 로그가 달라진다. 대체로 개발환경에서는 dev, 배포 환경에서는 combined를 사용한다. dev 모드 기준으로 GET / 500 7.409 ms - 50 은 각각 [HTTP메서드][주소][HTTP상태코드][응답속도] - [응답바이트] 요청과 응답을 한번에 볼 수 있어서 편하다. static static 미..

반응형