목록분류 전체보기 (145)
쿼카러버의 기술 블로그
필자는 현재 API서버를 열심히 개발 하고 있다. 개발한 서비스가 트래픽을 많이 받다보니, 트래픽을 적절히 제한하지 않았을 때 장애가 발생했고, 그에 따라 API의 Rate Limit을 구현해야 했다. 공부하다보니 흥미가 생겨 나중에 내가 다시 챙겨보기 위해 글을 정리하려고 한다. Rate Limit시리즈의 목차는 다음과 같다. [Rate Limit - step 1] Rate Limit이란? (개념, Throttling, 분산환경에서의 구현)
조인을 할 때 여러 테이블이 겹칠 경우, 컬럼명이나 테이블명을 쉽게 알아보지 못하는 경우가 많다. 웹상의 여러 쿼리 예시를 보더라도 테이블이나 컬럼에 별칭을 붙여 활용한다. 따라서 본 글에서는 SQL에서 어떻게 별칭을 붙이는지에 대해 다룬다. Alias는 값에 별칭을 주어 접근을 별칭 형태로 할 수 있도록 하는 역할을 한다. 데이터, 컬럼, 테이블, 서비쿼리, Where절 등에 사용할 수 있다. ALIAS 사용 이유 별칭을 지정하면 쿼리의 가독성을 향상시킬 수 있다. 일반적으로 알아보기 힘든 컬럼명이나 테이블 명에 대해 별칭을 붙인다. 예: EID → EID as Employer ID ALIAS(사용 방법) AS키워드 사용하는 경우 ColumnName AS 컬럼명칭 --컬럼에 별칭 부여하기 TableNa..
현재 SQL의 조인 시리즈를 작성하고 있다. Join시리즈의 목차를 참고하려면 이 글을 참고하길 바란다. 본 글은 SQL의 EXISTS문에 대해 다룬다. EXISTS문이란? SQL에서 EXIST문은 WHERE절에서 사용되며 조건에 따라 데이터를 걸러내어 결과를 조회할 때 사용한다. JOIN관점에서는 Semi Join과 Anti Join에 사용된다. EXIST문은 예시만 보면 쉽다가도, outer table과 subquery의 관계를 이해하는 관점에서는 매우 헷갈리는 개념이라, 예시와 함께 정리해보려고 한다. EXISTS / IN 개념 비교 EXIST와 IN은 WHERE절에 사용되며 조건에 따라 데이터를 걸러내어 결과를 조회할 때 사용되는 공통점을 가지고 있다. 본 글에서는 EXISTS와 IN을 간단하게 ..
현재 SQL의 조인 시리즈를 작성하고 있다. Join시리즈의 목차를 참고하려면 이 글을 참고하길 바란다. 앞 글에서 SQL의 Join을 어떻게 분류하는지에 대해 살펴봤다면, 본 글은 SQL의 다양한 Join문들을 소개하고 이들에 대한 예시를 다룬다. 본 글은 다음의 Join문들을 다룬다. Inner Join (조인) Outer Join (Left, Right Outer Join) Full Join (Union) Cross Join (Cartesian Join) Self Join Multiple Joins (여러개의 Join문을 중첩하는 법) Natural Join(Equi Join의 또 다른 종류) 참고로 EXISTS와 관련있는 Semi-Join과 Anti-Join은 다음 글에서 EXISTS문과 함께 자..
현재 SQL의 조인 시리즈를 작성하고 있다. Join시리즈의 목차를 참고하려면 이 글을 참고하길 바란다. 본 글은 SQL의 Join에는 어떤 종류가 있는지 다룬다. Join을 구별하는 방법은 크게 아래 두가지가 있다. JOIN 조건으로 사용되는 연산자에 따른 분류 EQUI JOIN : 두 테이블 간의 컬럼 값들이 서로 일치하는 경우, JOIN조건으로 ‘=’ 연산자 사용 쉽게 말해서 = sign으로 comparison operator를 사용하는 경우 Syntax: 아래 두가지 모두 EQUI JOIN이다. SELECT column_list FROM table1, table2.... WHERE table1.column_name = table2.column_name; or ----- SELECT * FROM t..
SQL의 꽃은 조인이다. RDS에서는 데이터를 정규화하다보면, 데이터를 쪼개 여러 테이블로 나눠서 저장되기 마련인다. 이렇게 분리되어 저장된 데이터에서 원하는 결과를 도출하기 위해서는 여러 테이블을 조합할 필요가 정말 많다. 이 때 RDS에서는 테이블을 조합하기 위해 Join연산자를 사용해 관련 있는 컬럼 기준으로 행을 합쳐주어 테이블을 조합한다. 다시 말해 Join 연산이란 두 개 이상의 테이블들을 연결 또는 결합하여 데이터를 출력하는 것을 말한다. 물론 SQL에서 조인은 워낙 대표적인 연산이기 때문에 웹 상에 정리된 글이 많다. 하지만 좋은 예시들이나 설명이 좀 흩어져있는 감이 있어 본 시리즈의 목적은 내가 나중에 다시 찾아보기 쉽도록, Join을 다음의 목차로 정리하는데 있다. 1. [SQL - J..
현재 카프카 정리 시리즈를 포스팅 하고 있다. 카프카 정리 시리즈에서 다루는 여러가지 주제가 궁금할 경우 본 글을 참고하길 바란다. 앞 글에서 카프카가 실제로 어떻게 활용되는지에 대해 알아보았다. 본 글에서는 카프카를 직접 도커를 활용하여 직접해보기 위해 예제를 아주 잘 정리해준 글을 번역하고, 일부 수정한 글이다. Setup - 실행환경 준비 먼저 아파치 카프카 도커 컨테이너를 실행해보자. Confluent의 도커 이미지르 사용할 수도 있지만 필요 메모리가 8GB가 넘기 때문에 wurstmeister의 이미지를 fork한 내 개인 레포를 사용한다. cd git clone https://github.com/getveryrichet/kafka-docker.git cd kafka-docker 카프카와 주키퍼..
현재 카프카 정리 시리즈를 포스팅 하고 있다. 카프카 정리 시리즈에서 다루는 여러가지 주제가 궁금할 경우 본 글 을 참고하길 바란다. 앞서 카프카의 프로듀서와 컨슈머가 무엇인지 그리고 그들의 동작방식에 대해 이론적으로 알아보았다. 본 글에서는 카프카를 그래서 어디에 쓰는데?, 프로듀서와 컨슈머가 서로 어떻게 동작하는데?와 같은 질문에 답하려고 한다. Kafka의 사용 목적을 읽다보면, 왜인지는 알겠으나 구체적으로 어떤 형태로 활용되는지에 대해 감이 통 잡히지 않았다. 따라서 Kafka를 사용하는 이유를 크게 세가지로 나누어보고 각 이유별로 예시를 들어 설명하려고 한다. Kafka를 사용하는 이유를 크게 나누면 아래 세 가지를 꼽을 수 있다. 분산 큐잉 시스템으로 활용 데이터 허브 Response가 필요 ..