GROUP BY와 PARTITION BY GROUP BY와 PARTITION BY는 SQL에서 데이터를 그룹화하는 데 사용되는 중요한 구문이다. 두 구문은 유사한 기능을 하지만, 결과 데이터의 구조와 사용 목적에 차이가 있다. 주요 차이점 특성 GROUP BY PARTITION BY ...
가상테이블
MySQL에서 가상 테이블은 실제 데이터를 저장하지 않고 쿼리 결과를 임시로 저장하는 객체아다. 가상 테이블의 주요 형태로는 View, 파생 테이블(Derived Table), CTE(Common Table Expression), Temporary Table이 있다. 1. 뷰(View) 뷰는 하나 이상의 테이블에서 원하는 데이터를 선택하여 만든...
내가 이해하려고 적는 카프카
카프카란 카프카는 대규모 실시간 데이터 스트리밍을 위해 설계된 분산 이벤트 스트리밍 플랫폼이다. 대략적인 구조는 시스템에서는 프로듀서가 메시지를 생성하고, 이를 카프카 클러스터의 토픽으로 전송한다. 토픽은 여러 파티션으로 나뉘어 있어 병렬 처리가 가능하고, 컨슈머는 만들어진 파티션에서 메시지를 읽어 처리한다. 이런 구조로 인...
INDEX에 관하여
전에 클러스터인덱스와 넌클러스터 인덱스에 대해 다뤄봤었는데 복습겸 다시 한번 적자면 클러스터 인덱스는 기본키나 빈번하게 검색이나 정렬이 필요한 열에 사용하고(자동으로 기본키가 됨) 넌클러스터 인덱스는 WHERE 절에 자주 사용되고 여러조합에 쿼리 성능을 뽑아낼때 쓴다고 한다. 그래서 이참에 인덱스에 대해 정리해볼까 하고 글을 쓴다. 단순한...
mysql 쿼리 기능
윈도우 함수란? 행과 행 간의 관계를 정의하거나 계산할때 씀. 데이터를 그룹화하지 않고도 각 행을 유지하면서 추가적인 계산을 수행 특징으로는 GROUP BY와 다르게 행이 유지되고 OVER절을 써야하고 행간 순위, 누적합계 비교가 가능함. LEAD LEAD 함수는 현재 행을 기준으로 이후 행의 데이터를 가져오는 데 사용. 주로 다음 ...
Ruby GEM 시리즈
ZipLine Zipline은 Rails 애플리케이션에서 동적으로 생성된 ZIP 파일을 스트리밍하기 위한 Ruby gem이다. 스트리밍 방식으로 ZIP 파일 생성을 위해 전체 파일이 완성될 때까지 기다리지 않는다. 따라서 대용량 ZIP 파일 생성에도 큰 디스크 공간이나 메모리가 필요하지 않아 대기 시간과 다운로드 시간이 감소한다. ZIP ...
Rails 디버깅
View 헬퍼 debug: YAML 형식으로 객체를 출력 to_yaml: YAML 변환 inspect: 배열이나 해시 값을 문자열로 출력 # 컨트롤러 @user = User.find(1) # 뷰에서 <%= debug @user %> # --- !ruby/object:User # id: 1 # name: "John" # e...
Rails Internationalization I18n 국제화설정
기본 개념 영어 및 유사 언어에 대한 기본 지원 ko, en, jp, zh…etc 다른 언어를 위한 쉬운 커스터마이징과 확장 Rails 프레임워크의 모든 정적 문자열이 국제화되어 있음 핵심 메서드: translate (별칭: t) - 텍스트 번역 조회 localize (별칭: l) - 날짜와 시간 객체의 지화 각국에 따른 ...
Rails AASM 상태관리와 관계설정
상태 관리에서 매우 중요한 부분이다. Rails에서는 AASM(Acts As State Machine)을 통해 효과적으로 상태를 관리할 수 있다. AASM이란? AASM은 Ruby 클래스에 유한 상태 기계(Finite State Machine) 기능을 추가하는 라이브러리이고. 원래 acts_as_state_machine 플러그인으로 시작했지만, 현...
ROR 사용시 혼동되는거 정리
<% > 와 <%= > 차이 ERB 뷰작업을 하다보면 mybatis 처럼 동적쿼리를 실행하기 위해서, 즉 상황에 따른 데이터값을 보여주기 위해서 <% >, 와 <%= >를 사용하게 된다. <% >는 출력을 안하고 제어흐름을 관리하는데 사용된다. <%= >는 변수의 값을 문자열로 출력하기...