[MySQL] EXISTSEXISTSEXISTS는 MySQL에서 서브쿼리의 결과가 존재하는지 여부를 확인하는데 사용하는 조건문이다. 주로 특정 조건에 맞는 데이터가 존재하는지 여부를 확인할 때 사용하며, 참 또는 거짓의 값을 반환한다.EXISTS는 보통 SELECT문과 함께 사용되며, 데이터의 유무에 따라 로직을 결정하는 데 유용하다. 기본 구조SELECT 칼럼명FROM 테이블명WHERE EXISTS ( 서브쿼리);위 구조에서 EXISTS 안의 서브쿼리가 실행되며, 서브쿼리의 결과에 한 개 이상의 레코드가 존재하면 참을 반환하고, 그렇지 않으면 거짓을 반환한다. 작동 방식EXISTS는 서브쿼리가 반환하는 데이터를 확인하지 않는다. 대신, 서브쿼리가 최소한 한 개의 행이라도 반환하면 TRUE를 반환..
[프로그래머스][SQL][Lv05] 멸종위기의 대장균 찾기 풀이ecoli_data 테이블의 데이터를 재귀적으로 탐색하여, 각 id의 세대를 계산한 후, 마지막 세대에 속한 항목들을 세어 세대별로 출력하는 방식으로 진행했다. 1. WITE RECURSIVE 문재귀적 CTE(Common Table Expression)를 사용하여 데이터의 부모-자식 관계를 따라 세대를 계산하는 부분이다.SELECT id, parent_id, 1 AS gen FROM ecoli_dataWHERE parent_id IS NULLparent_id가 NULL인 데이터를 선택한다, 즉, parent_id가 없는 최상위 항목들이며, 이 항목들은 gen값이 1인, 즉 1세대다.SELECT e.id, ..
[프로그래머스][SQL][Lv04] 특정 세대의 대장균 찾기 풀이처음에 생각 한 방법은 1세대(1,2)에 포함되어있는 2세대(3,4,5)를 추출하여 임시테이블을 생성 후SELECT t1.* FROM ecoli_data t1 JOIN ecoli_data t2 ON t1.parent_id = t2.idWHERE t2.parent_id IS NULL2세대에 포함되어있는 ID(6,7)를 검색하는 방식으로 쿼리를 작성했다.WITH temp AS ( SELECT t1.* FROM ecoli_data t1 JOIN ecoli_data t2 ON t1.parent_id = t2.id WHERE t2.parent_id IS NULL)SELECT e.id FROM..
[Git] 원격 저장소와 로컬 저장소의 소스 코드 일치 시키기 로컬 저장소에서 작업하던 내용이 더 이상 필요 없거나, 원격 저장소의 최신 상태로 덮어쓰고자 할 때,로컬 브랜치를 초기화하여 충돌 없이 최신상태로 유지하는 방법은 다음과 같다.git fetch --all --prunegit reset --hard origin/main 각 명령어의 역할에 대해 알아보자.git fetch --all --prunefetch는 원격 저장소의 변경사항을 가져온다. --all : 현재 로컬에 등록된 모든 원격 저장소에 대해 git fecth를 실행한다.--prune : 원격 저장소에서 삭제된 브랜치를 로컬에서도 삭제한다. git reset --hard origin/main로컬 브랜치를 특정 원격 브랜치와 일치시키기..
[Git] Git Squash로 커밋 정리하기여러번의 커밋으로 복잡해진 히스토리를 관리하다 보면, 코드 리뷰 과정이나 협업 시 불필요한 커밋들이 쌓여 코드의 흐름을 이해하기 어려워질 수 있다. 이 때 유용한 git의 기능 중 하나가 바로 git squash다. Git Squash란?여러 개의 커밋을 하나로 합치는 작업을 말한다.이를 통해 코드베이스의 커밋 히스토리를 깔끔하고 간결하게 유지할 수 있다. 예를 들어, 하나의 기능을 개발하면서 여러 번 커밋을 남기게 되는데, 이를 코드베이스에 병합하기 전에 커밋으로 합쳐서 기록하는 것이 일반적이다. 💡 왜 Squash를 사용할 까?작업 중간중간 불필요한 커밋들을 합쳐서 메인 브랜치에 병합할 때, 커밋 히스토리를 깔끔하게 유지할 수 있다.리뷰어가 기능 하나당 ..
[MySQL] PERCENT_RANK() PERCENT_RANK()데이터 내에서 특정 값의 상대적인 순위를 백분률로 반환한다.0과 1사이의 값을 반환하며, 값이 0이면 가장 낮은 순위, 1이면 가장 높은 순위를 의미한다.PERCENT_RANK() OVER ([PARTITION BY partition_expression] ORDER BY order_expression) 동작 원리PERCENT_RANK()는 각 행의 순위를 기준으로 계산된다.$$PERCENTRANK()=\frac{Rank-1}{TotalRows-1}$$ 여기서 RANK는 해당 행의 순위이며, Total Rows는 전체 행의 수이다.ex) 데이터가 10개인 경우 PERCENT_RANK()는 각 행의 순위를 0부터 1까지 나눈 값을 반환한다...
[K8s] 쿠버네티스 컴포넌트 정리쿠버네티스는 복잡한 분산 시스템을 효과적으로 관리할 수 있는 다양한 컴포넌트로 구성되어 있다.크게 컨트롤 플레인(Control Plane)과 워커 노드(Worker Node)로 나뉜다. 각 컴포넌트는 특정한 역할을 맡고 있으며, 이들이 상호작용하여 쿠버네티스 클러스터를 구성한다.쿠버네티스 클러스터의 두 핵심 구성요소들의 역할과 기능에 대해 알아보자. 컨트롤 플레인(Control Plane)컨트롤 플레인은 클러스터의 중앙 제어 역할을 담당한다.클러스터 상태를 관리하고, 워커 노드에서 실행되는 애플리케이션의 스케줄링, 상태 모니터링, 유지보수를 수행한다. 컨트롤 플레인의 주요 요소는 다음과 같다. kube-apiserver클러스터와 상호작용하는 모든 요청의 관문 역할 쿠버..
[Python] SQLAlchemy 이해하기 SQLAlchemy란?SQLAlchemy는 파이썬을 위한 강력한 SQL 도구이자 객체 관계 매핑(ORM) 라이브러리다.개발자들에게 데이터베이스와 상호 작용할 수 있는 효율적이고 유연한 인터페이스를 제공하며,복잡한 쿼리 실행, 데이터베이스 스키마 조작, 파이썬 객체와의 통합을 쉽게 할 수 있다. SQLAlchemy는 크게 두 가지 주요 구성 요소로 나눌 수 있다.CoreSQL 표현 언어를 사용하여 데이터베이스와 직접 상호 작용하는 레이어SQLAlchemy의 기본 기능으로, 데이터베이스 쿼리를 직접 작성하고 실행할 수 있음ORM (Object-Relational Mapper)SQLAlchemy의 객체 관계 매핑 레이어파이썬 클래스와 데이터베이스 테이블 간의 매핑을..
[Pandas] to.sql()to_sql()판다스 데이터 프레임을 SQL 데이터 베이스에 저장하는 방법으로 to.sql() 메서드가 있다.이를 통해 로컬 또는 원격 데이터베이스에 데이터를 쉽게 저장할 수 있다. 기본 사용법먼저 다음과 같이 라이브러리를 import 해준다.import pandas ps pdfrom sqlalchemy import create_enginecreate_engine은 SQLAlchemy 라이브러리에서 제공하는 함수로, 데이터베이스와의 연결을 설정하는 데 사용된다.# 샘플 데이터프레임 생성data = {'name': ['Alice', 'Bob', 'Charlie'], 'age': [25, 30, 35], 'city': ['New York', 'Los A..
[Pandas] apply로 다중 반환 값을 여러 열에 할당하기데이터 프레임에서 각 행의 특정 열에 함수를 적용하고, 그 결과를 여러 열에 나누어 저장하는 작업은 데이터 처리 과정에서 자주 발생하는 요구다. 이는 apply 함수를 활용하여 이를 간단하게 구현할 수 있다. apply와 lambda를 활용해 특정 열에 함수를 적용하고,결과를 여러 열로 나누어 담는 방법에 대해 알아보자. 다중 반환 값 할당판다스의 apply 함수는 데이터프레임의 행(axis=1) 또는 열(axis=0)에 대해 함수를 적용할 수 있게 해준다.이때, 반환된 값이 여러 개라면 이를 새로운 열로 확장할 수 있다. 아래는 데이터프레임의 'A'열에 대해 각 값을 두 배와 세 배로 만드는 함수를 적용하고,그 결과를 새로운 두 개의 열에 ..
[Git] 특정 파일만 pull 받아오기원격 저장소에서 push된 변경 사항이 여러가지가 있을 때, 로컬 저장소에 특정 변경사항만 pull을 받아오고 싶은 경우다음과 같이 checkout 명령어를 사용하면 된다.# 원격저장소의 변경사항 업데이트git fetch# 특정 파일만 Pullgit checkout origin/master --
SQL에서 조인은 데이터베이스에서 여러 테이블을 결합해 데이터를 조회할 때 매우 유용한 도구다.MySQL에서의 조인의 기본 개념과 사용법에 대해 알아보고자 한다. JOIN조인(Join)은 두 개 이상의 테이블을 결합해 하나의 결과 집합을 만드는 SQL 연산이다.조인은 주로 테이블 간의 관계를 정의하고, 그 관계에 기반해 데이터를 조회할 때 사용된다. MySQL에서 자주 사용되는 조인은 크게 네 가지로 나눌 수 있다.INNER JOIN일치하는 데이터만 필요할 때LEFT JOIN왼쪽 테이블의 모든 데이터를 포함할 때RIGHT JOIN오른쪽 테이블의 모든 데이터를 포함할 때FULL OUTER JOIN두 테이블의 모든 데이터를 포함할 때 INNER JOININNER JOIN은 두 테이블간의 교집합을 반환한다.즉..