전체 글 101

SQLD 개념정리 (함수)

함수 - 내장 함수 : 함수는 입력되는 값이 많아도 출력은 하나만 됨 (M : 1) 숫자형 함수 날짜형 함수 집계함수 - 여러 행들의 그룹이 모여서 그룹 당, 단 하나의 결과를 돌려주는 다중행 함수중 하나 - GROUP BY 절은 행들을 소그룹화 한다. - SELECT절, HAVING절, ORDER BY 절에 사용할 수 있다. GROUP BY - ROLLUP 이나 CUBE에 의한 소계가 계산된 결과에는 GROUPING(EXPR) = 1이 표시됨 - 그 외의 결과에는 0이 표시된다. HAVING - HAVING 절은 WHERE 절과 비슷하지만 그룹을 나타내는 결과 집합의 행에 조건이 적용된다. ORDER BY - ORDER BY 절은 SQL 문장으로 조회된 데이터들을 다양한 목적에 맞게 특정 칼럼을 기준으..

SQLD 2023.11.05

SQLD 개념정리 (관계형 데이터베이스 개요, DML, TCL)

INSERT INSERT INTO 테이블명 (COLUMN_LIST) VALUES (COLUMN_LIST에 넣을 VALUE_LIST); INSERT INTO 테이블명 VALUES(전체 COLUMN에 넣을 VALUE_LIST) UPDATE UPDATE 테이블명 SET 수정되어야 할 칼럼명 = 수정되기를 원하는 새로운 값; DELETE DELETE FROM 삭제를 원하는 정보가 들어있는 테이블명 WHERE 조건절; - 사용자 Commit SELECT SELECT 칼럼명 FROM 테이블; TCL(Transaction Control Language) - 커밋(COMMIT) : 올바르게 반영된 데이터를 데이터베이스에 반영시키는 것, Oracle은 DML문장 수행 후 사용자가 임의로 COMMIT 또는 ROLLBACK..

SQLD 2023.11.01

SQLD 개념정리 (관계형 데이터베이스 개요, DDL)

데이터 베이스 - 특정 기업이나 조직 또는 개인이 필요에 의해 데이터를 일정한 형태로 저장한 것 SQL (Structured Query Language) - SQL은 관계형 데이터베이스에서 데이터 정의, 데이터 조작, 데이터 제어를 하기 위해 사용하는 언어 - 데이터 조작어(DML - Data Manipulation Language ) : SELECT, INSERT, UPDATE, DELETE (NOT AUTO COMMIT) - 데이터 정의어(DDL - Data Definition Language) : CREATE, ALTER, DROP, RENAME(AUTO COMMIT) - 데이터 제의어(DCL - Data Control Language) : GRANT, REVOKE - 트랜잭션제어어(TCL - Tr..

SQLD 2023.10.30

프로그래머스 알고리즘 유클리드 호제법(최대공약수, 최소공배수)

유클리드 호제법 - 유클리드 호제법(Euclidean algorithm)은 두 개의 정수의 최대공약수(GCD, Greatest Common Divisor)를 찾는 알고리즘, 이 알고리즘은 오래 전에 유클리드(Euclid)에 의해 개발되었으며, 지금까지도 매우 효율적으로 사용됩니다. - 유클리드 호제법은 나누고 남은 나머지를 계속해서 구하다가 나머지가 0이 될 때까지 반복합니다. 그러면 0이 아닌 나머지를 얻게 되고, 그 때의 나머지가 두 정수의 최대공약수가 됩니다. -> 여기서 m = 27, n = 5이라고 가정해보자. 나머지(r)가 0이 될때까지 반복한다. r = 27 % 5이므로 나머지인 2가 r이된다. 나눈수인 5가 m이 되고 나머지인 2가 n이 된다. m = 5, n = 2; r이 0이되면 whi..

프로그래머스 2023.10.30

SQLD 개념정리 (데이터 모델링의 이해)2

PK순서를 결정하는 기준 - PK순서를 결정하는 기준은 인덱스 정렬구조를 이해한 상태에서 인덱스를 효율적으로 이용할 수 있도록 PK 순서를 지정해야 한다. 즉 인덱스의 특징은 여러개의 속성이 하나의 인덱스로 구성되어 있을 때 앞쪽에 위치한 속성의 값이 비교자로 있어야 인덱스가 좋은 효율을 나타낼 수 있다. 앞쪽에 위치한 속성 값이 가급적 '=' 아니면 최소한 범위 'BETWEEN' ''가 들어와야 인덱스를 이용할 수 있는 것이다. 분산 데이터베이스의 장단점 장점 - 지역 자치성, 점증적 시스템 용량 확장 - 신뢰성과 가용성 - 효용성과 융통성 - 빠른 응답 속도와 통신비용 절감 - 데이터의 가용성과 신뢰성 증가 - 시스템 규모의 적절한 조절 - 각 지역 사용자의 요구 수용 증대 단점 - 소프트웨어 개발 ..

SQLD 2023.10.25

SQLD 개념정리 (데이터 모델링의 이해, 정규화, 반정규화)

성능데이터모델링 이란? - 데이터베이스 성능향상을 목적으로 설계단계의 데이터 모델링 때부터 성능과 관련된 사항이 데이터 모델링에 반영될 수 있도록 하는 것이다. - 분석/설계 단계에서 데이터베이스 처리 성능응 향상 시킬 수 있는 방법을 주도 면밀하게 고려해야 한다. - 분석/설계 단계에서 성능을 고려한 데이터모델링을 수행할 경우 성능저하에 따른 Rework 비용을 최소화 할 수 있는 기회를 가지게 된다. - 데이터의 증가가 빠를수록 성능저하에 따른 성능개선비용은 증가한다. - 데이터모델은 성능을 튜닝하면서 변경이 될 수 있는 특징이 있다. 성능 데이터모델링 수행 절차 1) 데이터모델링을 할 때 정규화를 정확하게 수행한다. 2) 데이터베이스 용량산정을 수행한다. 3) 데이터베이스에 발생되는 트랜잭션의 유형..

SQLD 2023.10.24

SQLD 개념정리 (데이터 모델링)2

데이터 모델링의 관계 * ERD(Entitiy-Relationship Diagram) - ERD는 엔터티(Entity)와 그들 간의 관계(Relationship)를 시각적으로 나타내는 모델링 도구입니다. 주로 데이터베이스 설계에서 사용됩니다. - ERD에서는 존재적 관계와 행위에 의한 관계를 구분하지 않음. 단일화된 표기법을 사용 - 엔터티(Entity): 현실 세계에서 식별할 수 있는 개체 또는 사물을 나타냅니다. 테이블에 해당합니다. * UML(Unified Modeling Language) - UML은 소프트웨어 시스템을 분석, 설계, 구현하기 위한 표준화된 모델링 언어입니다. 객체지향 소프트웨어 개발에서 주로 사용됩니다. - 객체지향 소프트웨어 개발에서 시스템의 구조와 행위를 모델링하고, 시스템의..

SQLD 2023.10.20

SQLD 개념 정리 (데이터 모델링)

모델링의 특징 - 추상화 - 단순화 - 명확화 * 모델링은 단지 시스템 구현만을 위해 수행하는 타스크가 아니며, 시스템 구현을 포함한 업무분석 및 업무형상화를 하는 목적도 있음 데이터 모델링의 목적 - 업무정보를 구성하는 기초가 되는 정보들에 대해 일정한 표기법에 의해 표헌함으로써 정보시스템 구축의 대상이 되는 업무 내용을 정확하게 분석하기 위해 - 분석된 모델을 가지고 실제 데이터베이스를 생성하여 개발 및 데이터관리에 사용하기 위해 - 데이터모델링이라는 것은 업무를 설명하고 분석하는 부분에서도 매우 중요한 의미를 가지고 있다고 할 수 있다. 데이터 모델링 유의점 - 중복 데이터베이스가 여러 장소에 같은 정보를 저장하는 잘못을 하지 않도록 해야 한다. - 비유연성 데이터 혹은 프로세스의 작은 변화가 애플..

SQLD 2023.10.19

Spring 파이널 알림함

유저가 자유게시판에 있는 다른 유저의 글에 댓글을 작성하면 실시간으로 위에 알림창의 숫자가 늘어나게 하고 싶었고 알림 내용을 띄우게 하고 싶었다. 일단 로그인 했을때만 알람 갯수를 조회하는 비동기 함수를 호출한다. let alertSock; alertSock = new SockJS("/alertSock") alertSock.onmessage = e => { var alertList = JSON.parse(e.data); console.log(alertList.length); alarmNum.innerHTML = alertList.length; selectAlarm(alertList) } 그리고 서버랑 실시간으로 양방향 통신을 가능하게 해주는 SockJS 라는 JavaScript 라이브러리를 사용해서 "/..

Spring 2023.10.16

Spring 파이널 프로젝트 js 문자열

jsp에서 밑에 이렇게 변수명에 로그인한 회원의 회원번호를 담아주고 이 값을 js에서 사용하였다. 그러다가 로그인한 회원의 이름이 필요해서 위와 똑같은 방식으로 변수에 담아주고 js에서 사용하려 했으나 정의 되지 않았다는 이런 오류가 발생했다. 회원번호를 담아주는 방식과 똑같은 방식으로 했는데 왜 이것은 안되는지 몰랐다. 알고보니까 Java Script에서는 변수에 문자열을 할당해줄 때는 큰따옴표나 작은따옴표로 감싸야 했다. 회원번호는 int형이기 때문에 감싸줄 필요가 없지만 이름은 String으로 되어있기 때문에 큰따옴표나 작은따옴표로 감싸줘야 한다. 문제 해결

Spring 2023.10.03