my code archive
my code archive
article thumbnail
노드 공부 기록(12) - 실시간 경매 시스템 만들기, 웹 소켓, SocketIO

웹 소캣 HTML5에 새로 추가된 스펙 실시간 양방향 데이터 전송을 위한 기술, HTTP와 다르게 WS라는 프로토콜을 사용함. SocketIO 웹 소캣을 편리하게 사용할 수 있도록 도와주는 라이브러리 실시간 경매 시스템 만들기 1. npm init / package.json 파일 작성 2. 사용자 모델, 제품 모델, 경매 모델 구성 user.js auction.js good.js DB에도 테이블이 생성되었다. 3. 로그인, 미들웨어 라우터 생성, 프론트 코드 작성(생략) 4. 서버센트 이벤트 사용하기 온라인 경매이므로 모든 사람이 같은 시간에 경매가 종료되어야함. 모든 사람에게 같은 시간이 표시되어야함. =>서버센트 이벤트를 사용해 시간을 받아오기(주기적으로 서버 시간 조회하는 경우 양방향 통신 불필요)..

[SQLD / 자격증 공부] 요약 정리 6. 슈퍼타입, 서브타입 모델

슈퍼 타입/서브 타입 모델의 성능 고려 방법 업무를 구성하는 데이터 특징을 공통과 차이점의 특징을 고려하여 효과적으로 표현할 수 있음. 슈퍼 타입 : 공통 부분을 슈퍼 타입으로 모델링 서브 타입 : 공통으로부터 상속받아 다른 엔티티와 차이가 있는 속성만 모델링 논리적 데이터 모델에서 주로 이용(=분석 단계에서 많이 쓰임) 슈퍼/서브 타입 데이터 베이스 성능 저하 원인 3가지 트랜잭션은 항상 일괄 처리 & 테이블 개별 유지 => Union 연산에 의해 성능 저하 트랜잭션은 항상 서브타입 개별 처리 & 테이블 하나로 통합 => 불필요하게 많은 양의 데이터가 집약되어 성능 저하 트랜잭션은 항상 슈퍼+서브 타입 공통 처리 & 테이블 개별 유지 => 조인에 의해 성능 저하 슈퍼/서브 타입 변환 기준 데이터량이 소..

article thumbnail
[SQLD / 자격증 공부] 요약 정리 5. 반정규화 기법

📖반정규화 기법 테이블 반정규화 테이블 병합 1:1 관계 테이블 병합 1:M 관계 테이블 병합 슈퍼/서브 타입 테이블 병합 테이블 분할 수직 분할 : 칼럼 단위의 테이블을 디스크 I/O를 분산처리하기 위해 테이블을 1:1로 분리하여 성능 향상(트랜잭션의 처리되는 유형을 파악이 선행되어야함.) 수평 분할 : 로우 단위로 집중 발생되는 트랜잭션을 분석하여 디스크 I/O 및 데이터 접근의 효율성을 높여 성능을 향상하기 위해 로우 단위로 테이블을 쪼갬 테이블 추가 중복 테이블 추가 : 다른 업무이거나 서버가 다른 경우 동일한 테이블 구조를 중복하여 원격조인을 제거하여 성능을 향상 통계 테이블 추가 : SUM, AVG 등을 미리 수행하여 계산해 둠으로써 조회 시 성능을 향상 이력 테이블 추가 : 이력 테이블 중 ..

article thumbnail
[SQLD / 자격증 공부] 요약 정리 4. 성능 데이터 모델링, 정규화, 반정규화

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

article thumbnail
[SQLD / 자격증 공부] 요약 정리 3. 관계(Relationship), 식별자(Identifiers)

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

article thumbnail
[SQLD / 자격증 공부] 요약 정리 2. 엔티티(Entity)

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

article thumbnail
[SQLD / 자격증 공부] 요약 정리 1. 데이터 모델의 이해

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

article thumbnail
노드 공부 기록(11) - Passport 모듈 + 카카오 로그인 구현하기

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

반응형
반응형