분류 전체보기 33

[React] VSCODE 설치하기

[VS Code 확장설치​] Korean Language Pack for Visual Studio Code : UI 언어 한글로 설정 vscode-icons : 파일 아이콘 테마 설정 Live Server : 자바스크립트 가상 서버 Reactjs code snippets : 자동완성기능 Auto Complete Tag :HTML/XML 태그 자동 완성 기능 통합 버전 -Auto Rename Tag : HTML/XML 태그의 이름을 자동으로 변경 -Auto Close Tag : HTML/XML 닫기 태그를 자동으로 추가 -Auto Import HTML Snippets : HTML5, 태그 색상화, 코드 스니펫 등 지원 HTML CSS Support : HTML 문서에서 CSS 설정된 내용에 대한 자동완성 ..

[MongoDB] MongoDB 란?

[ MongoDB ] : 데이터 교환 시 BSON 방식으로 문서 형태를 저장하여 서버에 분산 저장 및 확장이 용이하며 방대한 데이터 처리가 빠르게 처리된다는 장점이 있다. 하지만 최근 안정성 문제가 거론되는 단점이 있다. 비SQL 데이터 베이스 또는 No-SQL 데이터 베이스라고 말한다. # 문서지향 데이터 베이스 몽고 디비는 강력하고 유연하며 확장성이 높은 문서 지향의데이터 베이스이다. 문서 지향의 데이터 베이스는 행 개념이 아니라 보다 유연한 모델인 문서를 이용하는데 내장 문서와 배열따위의 표현이 가능해서 복잡한 객체의 계층 관계를 하나의 레코드로 표현할 수 있다. 이러한 점은 객체지향 언어들을 사용하는데 편리함을 제공한다. # 조인과 트랜잭션 x 관계형 데이터 베이스에서 주로 사용되는 조인과 트랜잭..

[SpringBoot-JPA]기본키 매핑 방법 및 생성

오늘은 JPA에서 기본키를 부여하는 방법과 @GeneratedValue에서 사용되는 strategy의 네가지 유형에 대하여 알아보자. @Id JPA에서 기본키(PRIMARY KEY)를 부여하는 방법은 선언한 변수 위에 @Id 작성하면 된다. @Id만 변수 위에 써주게 되면 이 변수를 PK로 선언하고 내가 값을 수동으로 부여하겠다는 의미인데 만약 PK로 설정하고 PK로 설정된 변수에 값을 자동으로 부여하고 싶다면 @GeneratedValue와 함께 사용하면 된다. @GeneratedValue 자동생성을 뜻하는 @GeneratedValue는 4가지 전략이 있다. 보통 @GeneratedValue(strategy = GenerationType. ###)과 같은 형태로 쓰이며 ###에는 IDENTITY, SEQ..

SQLD 35회 기출 문제 풀이

SQLD 35회 기출 문제 풀이. # 반정규화의 대상 디스크 I/O량이 많아 성능저하가 일어난 경우 경로가 너무 멀어 조인으로 성능저하가 일어난 경우 컬럼을 계산하여 읽을 때 성능저하가 일어난 경우 # 분산데이터베이스 설계 장단점 - 장점 지역 자치성, 점증적 시스템 용량 확장 신뢰성과 가용성 / 효용성과 융통성 빠른 응답속도와 통신비용 절감 데이터의 가용성과 신뢰성 증가 시스템 규모의 적절한 조절 각 지역 사용자의 요구 수용 증대 - 단점 소프트웨어 개발 비용의 증대 오류의 잠재성 증대 처리비용의 증대 설계,관리의 복잡성과 비용 불규칙한 응답 소고, 통제의 어려움 데이터 무결성에 대한 위협( = 분산데이터베이스는 데이터 무결성을 보장하지 못한다.) # 스키마 구조 외부스키마 : 사용자 관점 개념스키마 ..

sqld 공부 2022.08.30

SQLD 39회 기출 문제 풀이

# 반정규화 시스템의 성능 향상, 개발 및 운영 편의성 등을 위해 정규화된 데이터 모델을 의도적으로 정규화 원칙을 위배하는 행위 반정규화 수행 시 시스템 성능 향상, 관리 효율성 증가 BUT 데이터 일관성 및 정합성 저하 가능성 O 과도한 반정규화는 오히려 성능 저하 반정규화를 위해서는 데이터 일관성, 무결성을 우선으로 할지 데이터베이스 성능, 단순화를 우선으로 할지 결정 必 # 반정규화의 대상 디스크 I/O량이 많아 성능저하 경로가 너무 멀어 조인으로 성능저하 컬럼을 계산하여 읽을 때 성능 저하 # 반정규화 기법 - 1 테이블 병합 1:1 관계 1:M 관계 슈퍼/서브타입 # 반정규화 기법 - 2 테이블 분할 수직분할 수평분할 # 반정규화 기법 - 3 테이블 추가 중복테이블 추가 통계테이블 추가 : SU..

sqld 공부 2022.08.29

SQLD 38회 기출 문제 풀이

# 두 엔터티 간의 관계차수 # 성능 데이터 모델링 고려사항 정규화를 수행하여 데이터베이스 모델의 유연성 확보 데이터베이스의 전체 용량, 월간, 연간 증감율을 예측 애플리케이션의 트랜잭션 유형(CRUD) 파악 합계 및 정산 등을 수행하는 반정규화 수행(성능향상을 위한 튜닝) 기본키, 외래키, 수퍼타입과 서브타입 등을 조정 성능관점에서 데이터 모델을 검증 및 확인 # 3가지 모델링 개념적 모델링 : 개체들 사이의 관계 ER다이어그램 만드는 과정 논리적 모델링 : ER다이어그램을 사용하려 관계 스키마 모델을 만드는 과정 물리적 모델링 : 관계 스키마 모델의 물리적 구조를 정의하고 구현하는 과정 # 데이터 모델링 과정 (2~4 설계 단계) 1. 요구사항 수집 및 분석 : 현실 세계의 대상 및 사용자 요구 등을..

sqld 공부 2022.08.27

5. 퀵소트(Quick Sort)

# 퀵소트(Quick Sort) 시간 복잡도가 O(nlogn)으로 빠른 편에 속한다. 하지만 정렬된 후 사용하면 O(n^2)가 되는 단점이 존재한다. 따로 메모리를 사용하지 않아 공간복잡도도 좋다.(좋은 space complexity를 가진다) **퀵소트와 머지소트는 재귀함수를 사용해서 코드 구성해야한다. 같은 행위가 반복되니까! # 코드 구현 퀵소트 메인절에는 내가 정렬시켜볼 배열을 넣어본다. 이 부분은 문제에 따라서 입력받은 값 등으로 변경될 수 있다. 퀵소트는 퀵소트를 진행할 배열의 제일 왼쪽 값과 오른쪽 값이 기준이 되므로 이 두 개를 left와 right값으로 지정해준다. 메처음 시작 할 땐 배열의 제일 왼쪽의 인덱스는 0으로 고정되고 오른쪽 인덱스는 배열의 전체길이에서 1을 뺀 값이므로 이를 ..

6. 힙 정렬(Heap Sort)

# 힙 정렬 힙 정렬 : 선택 정렬을 응용한 알고리즘 병합정렬, 퀵정렬만큼 빠른 정렬 알고리즘 가장 큰 원소를 찾는데 최적화된 형태의 이진트리 # 힙 정렬의 원칙 부모 노드가 가진 원소는 항상 자식 노드가 가진 원소의 크기보다 크다. 트리에서 가장 큰 원소는 항상 트리의 루트에 존재한다. 마지막 레벨을 제외한 모든 레벨에 노드가 꽉 차 있다. 마지막 레벨에 노드가 있을 때는 항상 가장 왼쪽부터 순서대로 채워져 있어야 한다. # 힙 정렬의 과정 마지막 노드(제일 아래 왼쪽 노드)의 부모 노드부터 시작하여 루트 노드와 비교 검색 정렬의 과정은 최댓값을 검증하여 정상적인 힙 구조인지 확인 아닌 경우 자식노드와 부모노드 변경 # 복잡도 분석 시간 복잡도 : O(log n) 작업 복잡도 : O(n * log n)..

4. 병합 정렬 (Merge Sort)

# 병합정렬 존 폰 노이만이 개발한 정렬 방법으로 선택, 버블, 삽입 정렬보다 빠른 알고리즘 분할 정복 방법을 이용하는 정렬 (퀵소트와 머지정렬이 있음) > 속도가 빨라짐 분할할 때 배열이 절반으로 줄어들어 시간 복잡도는 O(n log n) 합병할 때 모든 값을 비교해야 하기 때문에 시간 복잡도는 O(n) # 복잡도 시간복잡도 O(n log n),O(n) # 코드 구현 - Merge Sort의 가장 핵심은 1. 먼저 나눈 뒤에(divide) 2. 다시 합치는 과정에서 정렬(conquer)한다는 것이다. 먼저 main절에 내가 정렬하고 싶은 배열을 입력한다. 이는 문제에 따라 변경될 수 있다. 병합정렬은 나누는 것이 우선되어야 함으로 나누는 과정인 mergeSort 메소드를 실행시킨다. 이 때 매개변수로 ..