SQL 데이터 전처리 2 : 이상치 제거, 표준화, 정규화

“데이터 전처리“는 원시 데이터를 분석이나 모델링에 활용하기 적합하도록 정제하고 가공하는 과정으로, 결측치 처리, 이상치 제거, 변수 스케일링과 같은 단계를 포함하여 데이터의 품질을 향상시키는 작업을 의미합니다. 이는 정확하고 신뢰성 있는 결과를 얻기 위해 필수적인 단계로 여겨집니다. SQL 데이터 전처리는 2개로 나눠서 정리하고 있습니다. 이번 포스트에서는 2. 이상치 제거, 표준화, 정규화에 대해 정리해보겠습니다. 이상치 제거 이상치를 판단하기 위해서는 … Read more

SQL 데이터 전처리 1 : TRIM, IS NULL, COALESCE

소프트웨어 설계와 DB 모델링을 마치고 데이터를 수집하면 우리가 원하는 스키마에 원하는 데이터 유형으로 데이터를 받을 수 있습니다. 하지만 데이터를 가공하다 보면 원하지 않은 데이터를 변경하거나 제거해야 하는 경우가 반드시 존재합니다. 하물며 우리가 모델링한 DB에서 나온 데이터가 아닌 공개 DB나 어디서인가 데이터를 받았을 때는 절대 우리가 원하는 형태로 데이터가 존재하지 않습니다. 이럴 때, “데이터 전처리” 를 … Read more

SQL 연산자 : ALL, ANY, SOME, IN, EXISTS

ALL, ANY, SOME, IN, EXISTS 는 SQL에서 서브쿼리와 함께 사용되는 연산자 입니다. 주로 비교 연산에서 여러 값을 다룰 때 활용됩니다. 이번 포스트에서는 각 연산자의 사용법에 대해서 간단하게 정리해보았습니다. 연산자 ALL ALL 연산자는 서브쿼리의 모든 행이 조건을 만족할 때 참이 됩니다. 이 예제에서는 your_table의 column2가 another_table의 모든 값보다 큰지를 확인합니다. ALL 연산자의 사용은 MAX 함수 사용과 … Read more

SQL 성능 비교 : 서브쿼리 vs JOIN

서브쿼리 vs JOIN : 서브쿼리와 JOIN 문은 데이터베이스에서 정보를 추출하는 두 가지 주요 방법입니다. 성능 차이는 데이터 양, 인덱스의 존재 여부, 데이터베이스 종류 등에 따라 다를 수 있습니다. 서브쿼리 서브쿼리는 메인 쿼리의 결과에 따라 서브 쿼리가 실행됩니다. 매번 서브쿼리를 실행하므로 데이터베이스 부하가 발생할 수 있습니다. 작은 데이터셋이나 적은 수의 행에 대한 필터링에서는 효과적일 수 있습니다. … Read more

SQL 복잡한 연산 : 서브쿼리

수학 연산에서 순서가 복잡한 연산은 괄호”()”로 묶어서 연산하듯, SQL에서 복잡한 연산을 할 때, “서브쿼리” 를 사용합니다. “서브쿼리”는 구조적으로 다른 SQL 문장 내에 포함된 쿼리를 의미합니다. 서브쿼리 구조 간단한 예로 서브쿼리의 구조를 살펴보겠습니다. 부서별 급여가 평균 금액 이상인 직원 찾는다고 하면 아래와 같은 쿼리를 가집니다. 위의 구조에서 외부 쿼리 (메인 쿼리)는 SELECT employee_id, employee_name, salary, department_id … Read more

DBMS : 옵티마이저

“옵티마이저”는 데이터베이스에서 SQL 쿼리를 실행할 때, 가능한 여러 실행 계획 중에서 최적의 방법을 선택하여 데이터 검색 또는 조작에 대한 성능을 최적화하는 역할을 하는 도구입니다. 쿼리 옵티마이저는 테이블과 인덱스의 통계 정보를 활용하여 비용을 고려하여 최상의 실행 계획을 결정합니다. 옵티마이저 주요 기능 최적의 실행 계획 선택 테이블과 인덱스의 통계 정보를 분석하고, 가능한 다양한 실행 계획을 생성합니다. 그 … Read more

자바스크립트 화살표 함수

이번 포스트에서는 자바스크립트 함수 포스트에서 다루지 못했던 화살표 함수 특징에 대해서 정리해 보았습니다 화살표 함수의 선언 방법들 괄호는 생략 가능합니다. 하지만 매개변수가 하나의 단순한 형태의 경우에만 생략이 가능합니다. 화살표 함수의 특징 this, arguments, super에 바인딩 되지 않으므로 메소드로 사용하면 안됩니다. 생성자로 사용하면 안됩니다. new로 호출하면 TypeError를 던집니다. 화살표 함수는 yield 문을 사용할 수 없습니다. 화살표 … Read more

자바스크립트 함수 표현식

이번 포스트에서는 자바스크립트 함수 포스트에서 다루지 못했던 함수 표현식 특징에 대해서 정리해 보았습니다. 함수 표현식 문법 함수 표현식은 다양한 형태로 사용될 수 있습니다. 주의해야 할 점은 function 키워드만 사용하고 이름을 안 넣으면 함수 선언문으로 오해해서 오류가 발생한다는 점입니다. 함수 표현식은 변수에 할당되거나 다른 표현식의 일부로 사용되어야 합니다. 위 코드에서 func1은 함수 표현식으로 인식되어서 함수 이름이 없어도 … Read more

자바스크립트 함수 선언문

이번 포스트에서는 자바스크립트 함수 포스트에서 다루지 못했던 함수 선언문 특징에 대해서 정리해 보았습니다. 함수 선언문의 특징 1 : 호이스팅 함수 선언문은 코드 실행 전에 미리 메모리에 올려지기 때문에 함수를 선언하기 전에 호출할 수 있습니다. 즉, 함수가 코드 어디에서든 호출 가능합니다. 함수 선언문의 특징 2 : 재선언 함수는 var 처럼 다른 function 혹은 var로 재선언 될 … Read more

자바스크립트 함수

자바스크립트는 신기하게도 “함수”를 선언하는 방법이 여러가지가 있습니다. 그리고 함수 선언 방법에 따라 독특한 특징도 있습니다. 처음에는 함수 선언 방법과 특징들을 모두 하나의 포스트에 정리하려고 했지만, 함수 선언 방식에 따른 함수들의 특징들이 생각보다 많고 독특한 게 많네요… 함수 선언 방식에 따른 특징들은 다음 포스트에서 정리하고 이번에는 자바스크립트 함수 선언 방법과 몇 가지 주요한 특징들만 간략하게 정리해보았습니다. … Read more