분류 전체보기 131

SQL - group by, alias 등

쿼리실행순서 FROM -> WHERE -> GROUP BY -> (HAVING) -> SELECT -> ORDER BYGROUP BY가 SELECT 보다 먼저 실행 되지만, SELECT의 alias를 사용할 수 있다. (DB마다 약간은 차이가 있다. hql, mysql 가능 )GROUP BY, HAVING, ORDER BY에서 SELECT의 alias를 사용할 수 있다.WHERE절에서는 SELECT의 alias를 사용할 수 없다.실제 컬럼명만 사용가능하다. (서브쿼리에서는 사용가능)Case문은 select절, group by절에서 사용 가능.SELECT CASE WHEN salary > 5000 THEN 'High' ELSE 'Low' END AS salary_ca..

DB 2025.01.19

Linux - TOP

1. 헤더 섹션시스템의 전반적인 상태에 대한 요약을 제공. 시스템 정보top - 15:23:56 up 10 days, 3:42, 2 users, load average: 0.52, 0.45, 0.50현재 시간: 현재 시스템 시간(예: 15:23:56)가동 시간: 마지막 재부팅 이후 시스템이 실행된 기간(예: '10일, 3:42').로그인 사용자: 현재 로그인된 사용자 수(예: 2 사용자).load average: 지난 1분, 5분, 15분 동안의 시스템 로드 평균(0.52, 0.45, 0.50). 작업Tasks: 200 total, 2 running, 198 sleeping, 0 stopped, 0 zombietotal: 작업 또는 프로세스의 총 개수(예: '200').running: C..

Linux 2025.01.12

Hadoop - Webhdfs

Intro지금까지 hdfs를 사용할때 같은 클러스터로 연결된 서버에서 -get or -put등의 hdfs명령어를 사용하다가 이번 프로젝트에서 네트워크상 연결된 상태의 서버에서 webhdfs 명령어를 사용해보면서 의문이들어 찾아보게 되었다. WebHDFSWebHDFS는 HDFS 클라이언트가 Hadoop 바이너리를 설치하지 않더라도, 다양한 언어에서 HDFS에 접근할 수 있도록 REST 형태로 개발된 API입니다. Hortonworks에서 개발했으며, Hadoop 에코시스템 외부에서 동작하는 애플리케이션이 HDFS에 무언가 생성하고 쓰고, 변경하는 작업을 허용해줍니다.WebHDFS는 REST를 기반으로 하기 때문에 GET, PUT, POST, DELETE 등의 HTTP 메서드를 활용합니다. 예를 들어, op..

ETC 2025.01.05

Docker - 볼륨 정리

컨테이너는 삭제가 될 때 자체 파일 시스템이 사라지게 되는 특성 때문에, 데이터가 다 사라지게 된다.따라서 볼륨을 마운트해서 이와 같은 문제를 해결해야 한다. 1. 볼륨이란?볼륨이란 호스트 머신의 폴더(로컬 컴퓨터 폴더) - 저장 공간 자체도커가 인식하는 호스트 머신볼륨은 도커 컨테이너 내부의 폴더에 매핑2. 볼륨이 필요한 이유볼륨의 가지는 의미는 컨테이너 내부 폴더와 컨테이너 외부 폴더를 연결하는 것→ 로컬폴더와 내부 폴더는 격리되어 있으나 볼륨을 이용해 연결이 가능하도록 만들 수 있다는 의미3. 볼륨 종류1) 익명 볼륨익명 볼륨이란 컨테이너가 존재하는 동안에만 실제로 존재하는 볼륨을 의미 2) 명명 볼륨명명 볼륨이란 컨테이너가 컨테이너가 종료된 후에도 볼륨이 유지가 되는 것을 의미4. 마운트(moun..

Doker 2025.01.05

R 프로그래밍 기본문법

1. 기본 문법변수 선언R코드 복사x 10 # 할당 연산자 y = 20 # 동등 연산자로도 가능하지만 권장되지 않음출력R코드 복사print(x) # 출력 함수 x # 자동 출력주석R코드 복사# 이 줄은 주석입니다.2. 데이터 구조벡터R코드 복사v c(1, 2, 3, 4) # 벡터 생성 length(v) # 길이 확인 v[2] # 인덱스 접근 (1부터 시작)리스트R코드 복사lst list(name = "Alice", age = 25, scores = c(90, 85, 88)) lst$name # 리스트의 특정 요소 접근행렬R코드 복사m matrix(1:9, nrow = 3, ncol = 3) # 3x3 행렬 생성 m[1, 2] # 특정 위치 접근 (행, 열)데이터 프레임R코드 복사df data.f..

CS 2024.12.29

압축 알고리즘 등

특정 데이터를 csv로 추출하여 압축하는 업무가 있었는데정렬 작업을 한 후 zip파일 용량을 비교해 보니 큰 차이를 발견했다.  정렬 전 : csv용량 120gb -> zip용량 28gb정렬 후 : csv용량 120gb -> zip용량 13gb 왜 그런걸까?정렬을 통해 데이터의 규칙성과 중복성이 생겨 압축 알고리즘이 데이터를 더 효율적으로 압축할 수 있기 때문이다.압축 알고리즘은 반복적인 패턴을 찾아 인코딩하는 방식특정 열을 기준으로 정렬하여 비슷한 값이나 행이 서로 가까이 위치하게 되며, 이런 데이터는 런렝스 인코딩이나 사전 기반 압축(zip,gzip) 같은 기법으로 더 효율적으로 압축.엔트로피 감소(데이터의 무작위성 감소)리눅스의 zip명령어는 어떤 알고리즘일까?Deflate알고리즘. (LZ77 압축..

ETC 2024.12.28

OpenSearch

OpenSearch란?오픈 소스 검색 및 분석 제품으로 확장성이 높고 실시간 AP모니터링, 로그 분석 및 웹 사이트 검색 등의 다양한 기능 제공.k-nearest neighbors(KNN) 검색, SQL, Anomaly Detection, Machine Learning Commons, Trace Analytics, 전체 텍스트 검색 등 다수의 검색 및 분석 기능을 지원Elastic Search, kibana 7.1 에서 fork 되어 등장.기존 ES를 대체해서 나왔기 때문에 다양한 스택과 조합 가능.검색 속도는 index data를 여러 노드에 분산 저장하여 매핑하고 샤드를 클러스터 전체에 분산저장하여 검색속도↑ 인덱스는 여러개의 샤드로 분할되어 데이터를 저장하고 관리한다.각 데이터 노드별 Primary..

ETC 2024.12.22

재귀 (Recursion)

재귀 - 함수를 정의할때 자기 자신을 재참조. 그래프 탐색, 트리,  DP 등 다양한 알고리즘에 사용됨.Factorial def factorial_ex(n) if n == 1: print("factorial ex") return 1 return n * factorial_ex(n-1) # 시간복잡도 O(n)Fibonaccidef fibonacci_ex(n) if n == 1 or n == 2: print("fibonacci ex") return 1 return fibonacci_ex( n -1 ) + fibonacci_ex(n - 2)#시간복잡도 O(2^n) 점화식(recurrence relation) : f(n) = f(n-1)+ f(n-2). 자..

CS 2024.12.22