전체 글 101

스프링부트 & 인텔리제이 환경설정

먼저 https://start.spring.io 여기로 들어가서 세팅을 해준다. 들어가면 이런 화면이 뜰건데 Gradle-Grooby 선택해주면 되고 언어는 Java 밑에는 스프링부트 버전을 선택해주면 된다. Group과 Artifact 부분에는 그냥 하고싶은 이름 써주면 된다. 그리고 Java 17버전을 사용할거기 때문에 체크해준다. Dependency 부분에서는 ADD로 Spring Web과 Thymeleaf를 추가해 주도록 한다. -> Generate 이제 생성한 프로젝트를 압축을 풀어주고 인텔리제이에서 프로젝트를 오픈한다. 인텔리제이에서도 설정해줄게 있는데 단축키로 Ctrl + Alt + Shift + s 누르면 나오는 설정창이 있다. 여기서 17버전으로 설정 이제 Gradle JDK 설정도 해준..

Spring 2023.11.20

SQLD 개념정리 (JOIN 수행 원리)

조인의 종류 * Nested Loop JOIN (NL Join) - 두 개의 테이블을 조인할 때 사용되며, 보통 내부 조인(inner join)에서 많이 사용됩니다. - 조인 컬럼에 적당한 인덱스가 있어서 자연조인(Natural Join)이 효율적일때 유용하다. - NL Join은 프로그래밍에서 사용하는 중첩된 반복문과 유사한 방식으로 조인을 수행한다. - 반복문의 외부에 있는 테이블을 선행테이블 또는 외부테이블(Outter Table)이라고 하고, 반복문의 내부에 있는 테이블을 후행테이블 또는 내부테이블(Inner Table)이라고 한다. - 결과 행의 수가 적은 테이블을 조인 순서상 선행 테이블로 선택하는 것이 전체 일량을 줄임. 조인이 성공하면 바로 조인 결과를 사용자에게 보여줌으로 온라인 프로그램..

SQLD 2023.11.14

SQLD 개념정리 (SQL 최적화 기본 원리)

옵티마이저와 실행계획 - 옵티마이징 : 최적화 한다. - 옵티마이저 : 옵티마이징을 수행, 성능을 가장 유리한 방향으로 이끄는 역할 수행. 즉, 최적의 실행방법, 실행계획(Execution Plan)을 짠다. - 동일 SQL문에 대해 실행계획이 달라도 쿼리의 실행 결과는 항상 같아야 한다. - 실행 계획 구성 요소 * 조인 순서 (Join Order) * 조인 기법(조인 방법) (Join Method) * 액세스 기법=액세스 방법 (Access Method) * 최적화 정보 (Optimization Information) * 연산 (Operator) * 질의 처리 예상 비용 (Cost) 규칙 기반 옵티마이저 - 규칙(우선순위)을 기반으로 실행계획을 작성 -> 실행계획을 생성하는 규칙을 이해한다면 누구나 ..

SQLD 2023.11.13

프로그래머스 무작위로 K개의 수 뽑기

먼저 이 문제에서는 중복된 수를 제거해야한다. int형 배열을 따로 하나 더 만들고 거기에 arr배열의 중복된 수가 제거된 원소들을 새로 만든 배열에 담아준다. 오늘 배운것인데 중복된 수를 제거해주는 아주 간단한 방법이 있다. kArr이라는 배열을 따로 만들다. 그리고 Arrays.stream(arr) 메서드를 이용해서 arr배열을 스트림으로 변환한다. distinct() 메서드는 arr배열의 원소들 중 중복된 수만 제거해서 스트림으로 반환한다. 따라서 Arrays.stream(arr).distinct() 메서드는 arr의 중복된 요소를 제거하는 스트림을 반환하고, 마지막으로 toArray() 메서드로 스트림의 요소를 배열로 반환 후 kArr배열에 담아준다. length 변수에 중복된 수가 제거된 배열의..

프로그래머스 2023.11.13

SQLD 개념정리 (절차형 SQL)

절차형 SQL - SQL문의 연속적인 실행이나 조건에 따른 분기처리를 이용하여 특정 기능을 수행하는 저장 모듈을 생성할 수 있다. Procedure, User Defined Function, Trigger 등이 있음. - 분기, 반복이 가능한 모듈화된 프로그램. DBMS에서 직접 실행됨 - 프로시저(Procedure), 사용자 정의 함수(User Defined Function), 트리거(Trigger) - [Oracle] PL/SQL - [SQL Server] T-SQL - PL/SQL은 여러 SQL문장을 BLOCK으로 묶고 한번에 BLOCK전부를 서버로 보내기 때문에 통신량을 줄여서 응용프로그램의 성능응 향상시킴. PL/SQL 특징 1. Block 구조로 되어있어 각 기능별로 모듈화 가능 2. 변수 상..

SQLD 2023.11.12

SQLD 개념정리 (DCL)

DCL (Data Control Language) - 유저를 생성하고 권한을 제어하는 명령어 (GRANT와 REVOKE) - 유저가 사용하는 모든 DDL(CREATE, ALTER, DROP, RENAME) 문장은 그에 해당하는 적절한 권한이 있어야만 가능 Oracle 기본 유저 종류 - SCOTT / TIGER (ID / PW) : 테스트용 샘플 유저 - SYS : DBA ROLE을 부여받은 유저 - SYSTEM : 모든 권한을 부여받은 DBA 유저 - 설치 시 패스워드를 설정 [ Oracle 권한부여 ] - DBA 권한을 가진 SYSTEM 유저로 먼저 => 다른 유저에게 권한을 주는 방식으로 진행 [ SQL Server 권한부여 ] - 유저 생성 전, 먼저 로그인을 생성해야 함 - 로그인을 생성할 수 ..

SQLD 2023.11.12

프로그래머스 JadenCase 만들기

우선 모든 문자를 소문자로 변환해주고 공백을 기준으로 잘라서 배열에 담아주었다. 그리고 boolean을 이용해서 공백이 오는 경우에만 boolean함수를 반대로 해주고 다음 오는 문자열을 대문자로 변환시켜주었다. for문을 돌고있는 현재 문자열이 공백이라면 flag = true, 즉 다음에 오는 문자열은 대문자로 변환해서 answer에 담아준다. 그리고 문자열이 들어오면 flag = false, 다음 문자열은 대문자가 아닌 일반 문자열을 answer에 넣어준다.

프로그래머스 2023.11.11

SQLD 개념정리 (윈도우 함수)

순위 관련 함수 * RANK - 동일한 값에 대해서는 동일한 순위를 부여 (1,2,2,4) - OVER절과 함께 사용 - ex) RANK() OVER (PARTITION BY partition_expression ORDER BY sort_expression [ASC | DESC], ...); -> PARTITION BY: 특정 기준에 따라 파티션을 나누고 각 파티션 내에서 순위를 부여합니다. -> ORDER BY: 순위를 매길 때 사용할 정렬 기준을 지정합니다. ASC는 오름차순, DESC는 내림차순을 나타냅니다. * DENSE_RANK - 동일한 순위를 하나의 등수로 간주 (1,2,2,3) - ex) DENSE_RANK() OVER (PARTITION BY partition_expression ORDE..

SQLD 2023.11.10

SQLD 개념정리 (GROUPING)

GROUPING - ROLLUP이나 CUBE에 의한 집계 산출물이 인자로 전달받은 컬럼 집합의 산출물이면 0을 반환하고, 아니면 1을 반환하는 함수입니다. -> 위 사진은 ROLLUP결과를 보여줍니다. -> 1번째 행에서 서비스ID와 가입일자 모두 ROLLUP에 집계로 활용되고 있으므로 GROUPING(서비스ID) == 0, GROUPING(가입일자) == 0을 반환합니다. -> 2번째 행에서는 ROLLUP 특성상 오른쪽에 있는 인자는 제거되고 1번째 인자만 집계되기 때문에 가입일자는 NULL이 나옵니다. -> 2번째 행에서의 GROUPING(서비스ID) == 0, GROUPING(가입일자) == 1을 반환합니다.

SQLD 2023.11.09