
📖성능 데이터 모델링의 개요 성능 데이터 모델링의 정의 일반적으로 성능이라고 하면 데이터 조회의 성능을 의미함. (데이터 입력, 수정, 삭제는 일시적이고 빈번하지 않고 단건 처리가 많은 반면 데이터 조회의 경우 반복적이고 빈번하며 여러 건을 처리하는 경우가 많기 때문) 성능 데이터 모델링이란 데이터 베이스 성능 향상을 목적으로 설계 단계의 데이터 모델링 때부터 성능과 관련된 사항이 데이터 모델링에 반영될 수 있도록 하는 것이다. 성능 데이터 모델링 수행 시점 프로젝트 수행 중에 있어 사전에 할수록 비용이 들지 않는다. 특히 분석&설계 단계에서 데이터 모델 성능을 고려한 데이터 모델링을 수행할 경우 성능 저하에 따른 재업무(Rework) 비용을 최소화할 수 있다. 분석&설계 단계에서 데이터베이스 처리 성능..

관계 엔티티의 인스턴스 사이의 논리적인 연관성으로서 존재의 형태, 행위로서 서로에게 연관성이 부여된 상태 엔티티 안에 인스턴스개 개별적으로 갖는 것(페어링)이고 이것의 집합을 관계로 표현함. -> 개별 인스턴스가 각각 다른 종류의 관계를 갖고 있다면 두 엔티티 사이에 두 개 이상의 관계가 형성될 수 있음. 관계의 분류 존재에 의한 관계 행위에 의한 관계 ERD에서는 존재적 관계와 행위에 의한 관계를 구분하지 않고 표현했다면 클래스 다이어그램에서는 이것을 구분하여 연관 관계와 의존 관계로 표현하고 있는 것. 관계의 표기법 관계명 - 엔티티가 관계에 참여하는 형태를 지칭 관계가 시작되는 편을 관계시작점이라고 부르고 받는 편을 관계끝점이라고 부름. 둘다 관계명을 가져야하고 애매한 동사 피함, 현재형으로 표현함..

엔티티 엔티티란 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것. 엔티티는 그 집합에 속하는 개체들의 특성을 설명할 수 있는 속성을 갖는다. ex)학생이라는 엔티티는 학번, 이름, 생일, 주소 등의 속성을 가짐. 엔티티는 인스턴스의 집합이라고 말할 수 있다. 엔티티 특징 반드시 해당 업무에서 필요하고 관리하고자 하는 정보여야함. 유일한 식별자에 의해 식별이 가능해야함. 영속적으로 존재하는 인스턴스의 집합이어야함.(한 개가 아니라 두 개 이상) 업무 프로세스에 의해 이용되어야함. 반드시 속성이 있어야함 다른 엔티티와 최소 한 개 이상의 관계가 있어야함 엔티티 분류 유무형에 따른 분류 : 유형 엔티티(물리적인 형태가 있고 지속적으로 활용되는 엔티티), 개념 엔티티(물리적인 형태X, 관리해야..

데이터 모델링의 이해 모델링의 정의 Webster 사전 복잡한 현실 세계를 단순화시켜 표현하는 것. 모델이란 사물 또는 사건에 관한 양상(Aspect)이나 관점(Perpective)을 연관된 사람이나 그룹을 위하여 명확하게 하는 것. 모델링의 특징 추상화, 단순화, 명확화 정보 시스템 구축에서는 모델링을 계획, 분석, 설계할 때 업무를 분석하고 설계하는데 이용하고 이후 구축, 운영 단계에서는 변경과 관리의 목적으로 이용. 모델링의 세 가지 관점 데이터 관점 : 업무가 어떤 데이터와 관련이 있는지, 데이터간의 관계는 무엇인지에 대해 모델링하는 방법 프로세스 관점 : 업무가 실제하고 있는 일은 무엇인지 또는 무엇을 해야하는지를 모델링하는 방법 데이터와 프로세스의 상관관점 : 업무가 처리하는 일의 방법에 따라..

🤍Passport 모듈 SNS 서비스에는 로그인 기능이 필요하다. Passport 모듈을 사용하면 세션과 쿠키 등 복잡한 과정 없이 간편하게 로그인 구현이 가능하다. 요즘 자주 사용되는 카카오톡, 페이스북 등의 SNS 로그인 또한 Passport를 사용해서 해결할 수 있다. 🤍Passport 모듈로 로컬 로그인 구현하기 1. Passport 모듈 설치 npm install passport passport-local passport-kakao bcrypt 2. Passport 관련 index.js 작성 serializeUser : 로그인 시 실행되며, 세션 객체에 어떤 데이터를 저장할지 정하는 메서드임. deserializeUser : 매 요청 시 실행됨. 여기서 매개변수는 사용자의 아이디이며 serial..

🤍익스프레스로 SNS 서비스 만들기 앞서 배운 내용들을 바탕으로 로그인, 이미지 업로드, 게시글 작성, 해시태그 검색, 팔로잉 등의 기능이 있는 실제 웹 서비스 제작해보기. 프로젝트 구조 갖추기 1. nodebird 폴더 만든 후 package.json 생성 2. 템플릿 파일 넣을 views 폴더, 라우터 넣을 routes 폴더, 정적 파일 넣을 public 폴더 생성. 3. 프론트단 html 작성 {% extends 'layout.html' %} {% block content %} 이메일 닉네임 비밀번호 회원가입 {% endblock %} {% block script %} {% endblock %} {% extends 'layout.html' %} {% block content %} {% if user..

🤍NoSQL vs SQL MySQL은 SQL을 사용하는 대표적인 데이터베이스, SQL을 사용하지 않는 NoSQL의 대표 주자는 몽고디비이다. SQL(MySQL) NoSQL(몽고디비) -규칙에 맞는 데이터 입력 -테이블 간 JOIN 지원 -안정성, 일관성 -용어(테이블, 로우, 컬럼) -자유로운 데이터 입력 -컬렉션 간 JOIN 미지원 -확장성, 가용성 -용어(컬렉션, 다큐먼트, 필드) 🤍몽고디비 설치 홈페이지 접속 - 다운로드 체크박스 해제 설치 완료 실행 누구나 몽고디비에 접속할 수 있는 상태이므로 관리자 계정 추가 🤍컴퍼스 설치하기 몽고디비는 관리 도구로 컴퍼스를 제공한다. 윈도우는 자동으로 설치가 되므로 따로 설치 안 해도 된다. 홈페이지 접속 - 다운로드 🤍커넥션 생성하기 Authenticatio..

🤍시퀄라이즈란? MySQL 작업을 쉽게 할 수 있도록 도와주는 라이브러리 MySQL 이외에 MariaDB, PostgreSQL, SQLite 등등 같이 사용 가능 자바스크립트 구문을 알아서 SQL로 바꿔주기 때문에 편리함. 🤍시퀄라이즈 실습 1. 프로젝트 생성 2. sequelize, sequelize-cli, mysql2 패키지 설치 npm install express morgan nunjucks sequelize sequelize-cli mysql2 npm i -D nodemon 3. 시퀄라이즈를 통해 익스프레스 앱과 MySQL 연결 app.js configure.json 4. 테이블 생성 & 모델 정의 댓글 테이블 회원 테이블 모델 정의 npm start 명령어로 실행하면 테이블이 생성되는 것을 확..