본문 바로가기

분류 전체보기520

성능 데이터 모델링의 개요 1. 성능 데이터 모델링의 정의 데이터를 모델링 할 때 부터 (설계 단계 부터) 성능 향상을 목적으로 한다. 성능에 영향을 주는 것 들 : 정규화, 반정규화, 테이블 통합, 테이블 분할, 조인 구조, PK, FK 2. 성능 데이터 모델링 수행 시점 1) 성능 향상을 위한 비용은, 분석 / 설계 단계에 가까운 시점에 하면 할 수록, 비용이 절감. 2) 분석 / 설계 단계에 가까운 시점에 하면 할 수록, 재 업무 (Rework) 비용을 최소화 할 수 있음. 3) 분석 / 설계 단계에서 데이터베이스 처리 성능을 향상 시킬 수 있는 방법을 고려 해야함. 3. 성능 데이터 모델링 고려 사항 1) 데이터 모델링시, 정규화를 정확 하게 수행. 2) 데이터베이스 용량 산정을 수행. (데이터베이스의 용량이 얼마나 될지).. 2023. 11. 10.
DBeaver 를 이용한 오라클 접속 에러 확인 및 해결 IO 오류 : The Network Adapter could not establish the connection 해결 방법 1 : listener, tnsnames 파일 확인 하기. 아래의 경로를 복사 하고 listener.ora 파일과 tnsnames.ora 파일을 확인 한다. C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN listener.ora (ADDRESS = (PROTOCOL = TCP) (HOST = 컴퓨터 이름 ( == 사용자 명)) (PORT = 1521)) 으로 잘 되어 있는지 확인 하기. 마찬가지로, tnsnames.ora (ADDRESS = (PROTOCOL = TCP) (HOST = 컴퓨터 이름 ( == 사용자 명)) (PO.. 2023. 11. 9.
[ 함수 ] 즉시실행함수 (IIFE) // 즉시 실행 함수 (IIFE, Immediately-Invoked Function Expression) const a = 7 const double = () => { console.log(a * 2) } double() // 14 // 위와 같이 double 이라는 변수에 화살표 함수를 대입 했을 때, // 이 함수를 사용 하기 위해서는, 함수를 9번 째 라인 처럼 호출 해야 한다. // 그런데, 함수의 이름을 작성 해서 호출 할 필요 없이, // 함수를 만들자마자 바로 사용을 할 수 있는 방법이 존재 한다. // 문법은 아래와 같다. /* ()() 이렇게 소괄호 2개를 작성 한다. 근데, 이렇게 작성 하면 에러가 발생 하는데, 그 이유는 9번 째 라인의 double() 이 작성 되고, ; (세미 콜.. 2023. 11. 6.
[ 함수 ] 화살표 함수 // 화살표 함수 (Arrow function) /* function sum() { // 함수 선언문 // pass } const sum2 = function () { // 함수 표현식 // pass } // 이렇게 함수 선언문과 함수 표현식 두가지 방법을 통해 함수를 정의 할 수 있다. // 이때 또 다른 방법으로 함수를 만드는 방법이 있다. => 화살표 함수 // 함수 표현식과 유사 하게 어떤 변수를 만들고, 그 변수에 화살표 기호를 사용 해서 함수를 만들 수 있다. const sum3 = () => { // 화살표 함수 // pass } */ // 이러한 화살표 함수 문법은, JS ES6 버전에서 새롭게 나온 문법 이다. // 훨씬 간단 하게 함수를 생성 할 수 있기 때문에, 화살표 함수를 많이 사.. 2023. 11. 6.
[ 함수 ] 매개변수 패턴 // 매개변수 패턴 (Parameter pattern) // 기본값 (Default value) function sum(a, b) { // parameter == 매개변수 return a + b } console.log(sum(1, 2)) // argument == 인자 == 인수 // 3 console.log(sum(7)) // a = 7, b = undefined => 7 + undefined == NaN (Not a Number) // 인자값이 들어 오지 않는 경우를 대비 해서 기본 값을 지정 할 수 있다. function sum2(a, b = 1) { return a + b } console.log(sum2(7)) // 8 // 인자값이 다 들어오면 기본값 설정 값은 작동 하지 않는다. const.. 2023. 11. 6.
[ 함수 ] 반환 및 종료 // 반환 및 종료 function hello() { return 'Hello ~' } console.log(hello()) // Hello ~ console.log(hello) // 소괄호 () 를 붙히지 않으면, 함수 자체가 데이터로 출력 된다. // ======================================================== // return 키워드 // 함수 내부에서 데이터를 반환 하는 역할을 한다. // 함수를 종료하는 역할도 한다. => return 키워드 밑에 작성된 코드는 실행 되지도 않고, 읽지도 않는다. // 만약에 return 키워드에 아무런 데이터를 작성 하지 않으면 어떻게 될까 ? function hi() { return } console.log(hi()).. 2023. 11. 5.
[ 함수 ] 선언과 표현 그리고 호이스팅 // 함수 (Function) // 함수 선언문 (Declaration) function hello() { // pass } // ============================= // 함수 표현식 (Expression) // 일반적으로 함수를 만들 때, function 키워드를 사용 해서 함수를 선언 한다. // 이렇게 정의 하는 함수 선언과, 함수 표현식 모두 동일 하게 함수를 만드는 것이다. // 그런데, 함수 표현식은 const 또는 let 키워드를 통해서, // 변수에 이름을 지정하고 거기다가 할당 연산자를 통해서 function 키워드로 시작하는 함수를 할당 한다. // 즉, 변수에 함수를 대입 ( == 저장 == 할당 ) 하는 것이다. const hello2 = function () { .. 2023. 11. 5.
[ 연산자와 구문 ] While, Do while 반복문 // While (반복문) // 조건이 참 이면 무한히 도는 반복문. // 따라서, 루프를 멈추기 위해서는 조건이 거짓이 되는 조건식이 필요 하다. // 무한 반복이 되지 않도록 주의 해야 한다. let n = 0 while (n < 4) { // n이 4가 됬을 때, 조건이 거짓이 되므로 루프 탈출. console.log(n) n += 1 // 1, 2, 3, 4 } // ============================== // Do While 반복문 let n2 = 0 while (n2) { // 숫자 0은 false 데이터 이기 때문에, 참이 아니라 while 문이 돌지 않는다. console.log(n2) } // 조건이 거짓이라도, 콘솔 로그의 n2 라는 데이터가 무엇인지 확인 하려면 어떻게.. 2023. 11. 5.
데이터 시각화 하기 import csv import matplotlib.pyplot as plt from matplotlib import font_manager as fm, rc # 폰트 설정을 위한 모듈 추가. import numpy as np with open('korea.csv', 'r') as file: data = csv.reader(file) # csv 모듈의 reader() 함수를 사용 해서, data 변수를 행을 나타내는 이터레이터로 만들기. header = next(data) # 첫번째 행을 데이터를 읽고, header 변수에 담아서, print() 하기. print(header) print() sample = [] # sample 데이터를 담을 배열 생성. cnt = 0 # 반복문 돌릴 때, 사용자가 입력.. 2023. 11. 5.