IT/CS 40

[DB] 데이터 모델링의 이해 - 물리 모델링 절차

물리 데이터 모델링 데이터 설계란 - 데이터 분석에서 작성한 논리 모델을 구축 시 사용하는 환경에 맞게 물리 모델로 전환하는 것 - 물리 ERD의 통합/검토/보완을 통해 코드를 식별하고 정의하는 것 물리 데이터 모델링 논리 데이터 모델을 테이블 생성이 가능한 물리 데이터 모델로 전환하는 것 목적 1. 논리 데이터 모델을 그대로 전환하면 성능 보장이 불가능하므로, 성능 향상을 고려한 물리 데이터 모델링이 필요 2. 반정규화, 이력테이블, 채번 테이블, 코드 테이블 등을 적용하여 실제 테이블 생성 절차 1. 관계형 테이블 전환 - 엔터티 테이블 전환 2. 통합/분리 결정 - 슈퍼타입-서브타입 모델 전환 3. 이력/코드/채번 테이블 도출 4. 반정규화 5. 물리명 전환 관계형 테이블 전환 Entity Tabl..

IT/CS 2022.04.24

[DB] 데이터 모델링의 이해 - 논리 모델링 절차

데이터 분석이란 - 고객 비즈니스를 이해하여 논리 ERD를 도출하고 시스템 성능을 고려하여 물리 ERD로 전환하는 절차 논리 ERD 물리 ERD 용어 일반 용어 DBMS 용어 대상 Entity, Attribute, identifier, Occurrence Table, Column, Primary Key 특징 정규화, 중복 배제, 유연성 반정규화, 중복 허용, 파티셔닝, 집계테이블 - 현행시스템에서 사용한 용어/도메인을 조사하여 엔티티 도출, 속성/식별자/관계를 정의하는 활동 데이터 분석 목적 - 비즈니스 처리에 필요한 정보를 구조화 - 안정적 시스템의 기초 논리 데이터 모델 논리 데이터 구성 요소 1. 주제영역: 주요 토픽에 대한 엔터티 그룹 2. 엔터티: 유용한 정보를 저장하고 관리하는 영속적으로 존재..

IT/CS 2022.04.13

[JavaScript] 자바스크립트 비동기적 프로그래밍

개발 언어에 익숙하지만 JavaScript의 동기/비동기가 헷갈린 사람들에게 JavaScript는 한 번에 한 가지 일만 한다. 자바스크립트는 단일 스레드에서 동작한다. 따라서, 한 번에 한 가지 일만 할 수 있다. 그러나 자바스크립트는 비동기적 프로그래밍을 할 수 있다. 아래 세 가지에서 크게 사용한다. - 네트워크 요청 - 파일 읽기/쓰기 - 의도적인 시간 지연 콜백(callback) ➡️ 프라미스(promise) ➡️ async/await 순으로 발전하면서 자바스크립트에서 비동기를 쉽게 사용할 수 있다. 콜백과 콜백 지옥 콜백 test.function1(v1, function(){ //function1이 끝난 후, 익명함수가 시작된다. }); 나중에 동작할 함수, 보통 실행할 함수 뒤에 익명 함수를..

IT/CS 2021.12.07

[Architecture] MSA

MSA - 하나의 큰 애플리케이션을 여러 개의 작은 애플리케이션으로 나누는 것 ▶️ 변경과 조합이 가능한 아키텍처 - 독립적으로 개발, 배포, 운영, 서비스가 가능 모놀리식(Monolithic) 아키텍처 - 하나의 프로젝트로 구성, 거대한 덩어리 - 단일 서비스 개발 방식, 단일 패키지 배포 🔴 문제점 - 시스템 복잡, 구조/영향도 파악의 어려움 - 추가/변경 신속 대응 X - 부분적/일시적 확장이 어려움 - 장애 발생 시 전체 업무로 전파 - 업무별 독립적인 개발/테스트/배포/유지보수 어려움 마이크로서비스(Micro Service) 아키텍처 - 독립적이고 단순한 개별 서비스로 전체 서비스 구성 - 단인 애플리케이션을 나누어서 작은 서비스들의 조합으로 구성 🔵 장점 - 독립성 (개발/테스트/배포/운영/유..

IT/CS 2021.09.28

[Java] Lambda expression

Lambda expression 익명함수, 메서드를 하나의 식(expression)으로 표현한 것 - 자바8(JDK1.8) 버전부터 도입 - 함수형 언어 람다식 작성 - 메서드에서 이름과 반환타입 제거 - 매개변수 선언부와 몸통{} 사이에 -> 추가 // 기존 함수 int max(int a, int b){ return a > b ? a : b; } // 람다식 (int a, int b) -> { return a > b ? a : b; } //return 형이 존재한다면 {}를 뺄 수 없음 (a, b) -> a > b ? a : b; // 기존 함수 int sum(int[] arr){ int sum = 0; for(int i : arr) sum += i; return sum; } // 람다식 (int[] ..

IT/CS 2021.09.28

[JavaScript] jQuery

jQuery JavaScript로 미리 구현되어있는 라이브러리의 한 종류 jQuery 환경설정 1. 라이브러리 다운로드 방식 ▶️ http://jquery.com/ 에서 다운로드 한 후, src에 라이브러리 경로를 적어준다. 2. CDN 방식 경로 설정 jQuery 선택자 $('선택자') ▶️ $(): jQuery기능이 담긴 확장 집합(Wrapper Set) jQuery('선택자') $('선택자') $('선택자')[index] $('선택자').get(index) $('선택자').메소드() 문서 준비 핸들러 https://docu94.tistory.com/37 1. ready //Lambda식 이용 $(document).ready(() => { //함수 내용 }); //축약 $(function() { //..

IT/CS 2021.08.22

[JavaScript] 배열 및 함수

배열 여러 개의 값을 순차적으로 저장할 때 사용 - Array 생성자로 생성된 Array 타입의 객체 🌈 배열의 생성: [] 또는 Array()로 생성 const ar = []; const ar = new Array(); 🌈 배열의 추가, 삭제, 길이 //추가 const arr = []; arr[0] = 1, arr[2] = 4; //arr[0] = 1, arr[1] = null, arr[2] = 4 console.log(arr.length); //3 출력 //삭제 // splice 함수 사용 // Array.prototype.splic( start, deleteCount, items); // 배열 시작 위치(start)부터 제거할 요수의 개수(deleteCount) // items: 삭제 위치에 추가될..

IT/CS 2021.08.20

[JavaScript] ES6 자바스크립트 특징

ECMAScript 자바스크립트 표준 명세인 ECMA-262, 자바스크립트의 핵심 문법 규정 ▶ ES6지원 특징 1. 변수 추가: var, let, const의 차이점 ⚡ var var x=1; var y=1; var x=2; //중복선언, x가 2로 변경됨 var y; //초기화되지 않으므로 선언 무시 //x=2, y=1의 값을 가짐 if(true){ var x = 21; //함수가 아닌 곳에서 선언 시, 전역변수로 선언됨 } //x=21의 값을 가짐 - 변수 중복 선언 허용 - 초기화문이 없는 변수 선언 무시 - 함수가 아닌 다른 곳에서 선언 시, 전역변수로 선언 🔴 동일한 변수를 중복선언하여 값이 변경 될 수 있음 ⭐ let let x=1; //let x=2; //중복 선언 방지 -> 에러 발생 f..

IT/CS 2021.08.20

[DB] 절차형 SQL

절차형 SQL 일반 개발 언어처럼 SQL에서 제공하는 절차 지형적인 프로그램 언어 - SQL문의 연속적인 실행이나 조건에 따른 분기처리를 이용해 특정기능을 수행하는 저장 모듈 생성 특징 - 변수, 상수 선언 - IF, LOOP등의 절차형 언어 사용 - 사용자 정의 에러 사용 - 조건문, 반복문 등 단일 SQL문장으로 실행하기 어려운 연속적인 작업 처리 가능 - 응용프로그램의 성능 향상 및 서버 통신량 감소 효과 종류 - Procedure: 트랜잭션 언어로 미리 저장해놓은 SQL 작업 수행 (Output X) - User Defined Function: 프로시저와 비슷, SQL로 작업 처리하여 종료 시 RETURN으로 단일값 반환 - Trigger: 데이터 입력, 갱신, 삭제 등 이벤트 발생시 원하는 작업..

IT/CS 2021.08.13

[DB] SQL 정리

SQL - Structured Query Language - 관계형 데이터베이스에서 데이터를 관리하기 위해 설계된 특수 목적 프로그래밍 언어 - 관계형 데이터 베이스에서 데이터 정의, 데이터 조작, 데이터 제어를 하기 위해 사용하는 언어 처리과정 요청 ▶️ 처리(Parse -> Bind -> excute -> fetch) ▶️ 결과 SQL 용어 - Attribute = Column: 더 이상 나눌 수 없는 특정 속성 - Tuple = Row: 연결된 데이터 - Field: 컬럼과 행이 겹치는 하나의 공간(셀) - 기본키(Primary Key, PK): 각 행을 식별 할 수 있는 컬럼 테이블당 1개만 존재 Null 입력 불가 - 외래키(Foreign Key, FK): 다른 테이블의 기본키를 참조하는 컬럼 ..

IT/CS 2021.08.12