Dev Notes

SQL 윈도우 함수와 순위 및 그룹 함수

윈도우 함수(Window Functions) SQL의 고급 기능 중 하나로, 데이터를 분석하고 집계하는 데 사용된다. 이 함수들은 특정 “윈도우” 또는 “파티션” 내에서 작동하여, 그룹화된 데이터에 대해 계산을 수행하지만, 행을 그룹으로 축소하지 않고 각 행에 대한 결과를 반환한다. 이러한 특성으로 데이터의 상세한 분석과 복잡한 질의를 ...

Django 웹을 구글 클라우드, Nginx, Gunicorn으로 배포하기

데이터 엔지니어링 데브코스 최종 프로젝트에서 웹개발이나 배포 같은 웹 관련된건 거의 내가 했었는데, 그때 Django 프로젝트와 관련된 기록이다. 이때 Nginx 관련 문제를 해결했던게 유의미한 경험이었다고 생각했는데, 지금 보니까 정리를 잘 못해둔 것 같다. Django 웹페이지 개발 로컬 환경 프레임워크 : Django / nginx 개발...

데이터베이스 데이터 정규화

데이터 정규화 데이터베이스 설계의 핵심 과정 중 하나 중복을 최소화하고 데이터 무결성을 유지하기 위해 데이터를 구조화하는 방법이다. 데이터의 복잡성을 줄이고 논리적인 구조를 개선하는 것을 목표로 한다. 이 과정을 통해 데이터베이스의 성능을 향상시킬 수 있다. 그러나 너무 많은 정규화는 성능 저하를 초래할 수 있으므로, 실제 응용 ...

[알고리즘] 깊이우선탐색, 넓이우선탐색(DFS, BFS)

DFS (깊이 우선 탐색, Depth-First Search) 그래프의 모든 노드를 방문하기 위한 알고리즘 루트 노드(혹은 다른 임의의 노드)에서 시작해, 다음 분기(branch)로 넘어가기 전에 해당 분기를 최대한 깊게 탐색한다. 스택(Stack)을 사용하거나 재귀적 방법을 통해 구현한다. 재귀적 방법을 통해 DFS를 사용할 경우,...

[알고리즘] 매개변수 탐색(Binary, Parameter Search)

매개변수 탐색 (Parameter Search) 최적화 문제에서 최적의 조건을 찾기 위해 사용되는 기법 중 하나이다. 특히, 알고리즘 문제 풀이에서는 주어진 조건을 만족하는 최대값이나 최소값을 찾는 문제에 자주 사용된다. 이진 탐색(Binary Search)을 활용하여, 문제의 해답 범위를 점차 좁혀가며 최적의 값을 찾는 방식으로 진행된다. 매개변수...

[알고리즘] 이진 탐색(이분 탐색, Binary Search)

이분 탐색 (이진 탐색, Binary Search) 이진 탐색은 정렬된 배열에서 특정한 값의 위치를 찾아내는 탐색 알고리즘이다. 이 알고리즘의 기본 원리는 탐색 범위를 반으로 줄여가며 데이터를 찾는 것이며, 이 과정을 반복함으로써 검색 속도를 향상시킨다. 이진 탐색은 선형 탐색에 비해 훨씬 빠른 $O(\log n)$의 시간 복잡도를 가...