분류 전체보기
-
큐(Queue) 가장 기본 적인 자료구조 중 하나¶ 1. 큐 구조¶ 가장 먼저 넣은 데이터를 가장 먼저 꺼낼 수 있는 구조 음식점에서 재료 관리할 때 선입선출하는 것과 동일 함 FIFO(first-in, first-out) 또는 LILO(Last-in, Last-out) 방식으로 스택과 꺼내는 순서가 반대 2. 알아둘 용어¶ Enqueue: 큐에 데이터를 넣는 기능 Dequeue: 큐에서 데이터를 꺼내는 기능 Visualgo 사이트에서 시연해보며 이해하기: https://visualgo.net/en/list 3. queue라이브러리 활용하여 큐 자료구조 사용하기¶ 프로그램을 작성할 때 프로그램에 따라 적합한 자료구조를 사용한다. Queue(): 가장 일반적인 큐 자료 LifoQueue(): 나중에 입력된..
자료구조 #2 Queue큐(Queue) 가장 기본 적인 자료구조 중 하나¶ 1. 큐 구조¶ 가장 먼저 넣은 데이터를 가장 먼저 꺼낼 수 있는 구조 음식점에서 재료 관리할 때 선입선출하는 것과 동일 함 FIFO(first-in, first-out) 또는 LILO(Last-in, Last-out) 방식으로 스택과 꺼내는 순서가 반대 2. 알아둘 용어¶ Enqueue: 큐에 데이터를 넣는 기능 Dequeue: 큐에서 데이터를 꺼내는 기능 Visualgo 사이트에서 시연해보며 이해하기: https://visualgo.net/en/list 3. queue라이브러리 활용하여 큐 자료구조 사용하기¶ 프로그램을 작성할 때 프로그램에 따라 적합한 자료구조를 사용한다. Queue(): 가장 일반적인 큐 자료 LifoQueue(): 나중에 입력된..
2023.12.21 -
airflow는 데이터 처리를 목적으로 만들어진 툴이기 때문에 우리도 ETL 처리를 할 때 데이터 관점에서 생각해야 한다. 1. 데이터 추출 예시 위와 같은 예시 테이블이 있다고 생각해보자 이러한 테이블을 조회하기 위한 Daily ETL 조회쿼리는 다음과 같다.(2023/02/25 0시 실행) SELECT NAME, ADDRESS FROM TBL_REG WHERE REG_DATE BETWEEN TIMESTAMP(‘2023-02-24 00:00:00’) AND TIMESTAMP(‘2023-02-24 23:59:59’) 위 쿼리를 보면 실제 쿼리가 시작되는 시점은 2023/02/25 0시이다. 데이터 관점에서 보면 다음과 같다. 데이터 관점의 시작일: 2023-02-24 데이터 관점의 종료일: 2023-02..
[Airflow] - Airflow의 날짜개념airflow는 데이터 처리를 목적으로 만들어진 툴이기 때문에 우리도 ETL 처리를 할 때 데이터 관점에서 생각해야 한다. 1. 데이터 추출 예시 위와 같은 예시 테이블이 있다고 생각해보자 이러한 테이블을 조회하기 위한 Daily ETL 조회쿼리는 다음과 같다.(2023/02/25 0시 실행) SELECT NAME, ADDRESS FROM TBL_REG WHERE REG_DATE BETWEEN TIMESTAMP(‘2023-02-24 00:00:00’) AND TIMESTAMP(‘2023-02-24 23:59:59’) 위 쿼리를 보면 실제 쿼리가 시작되는 시점은 2023/02/25 0시이다. 데이터 관점에서 보면 다음과 같다. 데이터 관점의 시작일: 2023-02-24 데이터 관점의 종료일: 2023-02..
2023.12.20 -
1. jinja 템플릿이란? 문서(파일)에서 특정 양식으로 작성된 값을 런타임 시 실제 값을 치환해 주는 처리 엔진이다. 파이썬 언어에서 사용되는 템플릿 엔진이다. 예시 사용법은 아래와 같다. sql에서도 사용 가능하다. 예를 들어 아래 구문을 template로 만들어두고 날짜마다 바꾸고 싶을 때도 사용가능하다. SELECT * FROM tables WHERE base_dt = {{ }}; 2. Airflow에서 사용법 오퍼레이터 파라미터 입력시 중괄호 {} 2개를 이용하면 Airflow에서 기본적으로 제공하는 변수들을 치환된 값으로 입력할 수 있다. 다만, airflow에서는 모든 파라미터에 Template 변수 적용이 가능하지 않다. Templates 적용이 가능한 파라미터는 오퍼레이터마다 다른데 어..
[Airflow] - JINJA templates1. jinja 템플릿이란? 문서(파일)에서 특정 양식으로 작성된 값을 런타임 시 실제 값을 치환해 주는 처리 엔진이다. 파이썬 언어에서 사용되는 템플릿 엔진이다. 예시 사용법은 아래와 같다. sql에서도 사용 가능하다. 예를 들어 아래 구문을 template로 만들어두고 날짜마다 바꾸고 싶을 때도 사용가능하다. SELECT * FROM tables WHERE base_dt = {{ }}; 2. Airflow에서 사용법 오퍼레이터 파라미터 입력시 중괄호 {} 2개를 이용하면 Airflow에서 기본적으로 제공하는 변수들을 치환된 값으로 입력할 수 있다. 다만, airflow에서는 모든 파라미터에 Template 변수 적용이 가능하지 않다. Templates 적용이 가능한 파라미터는 오퍼레이터마다 다른데 어..
2023.12.20 -
데이터 엔지니어가 되기로 결심했기 때문에 일단 단기적으로 목표를 잡았다. 의무적으로 해야 할 일도 있고 내가 목표로 잡은 것도 있고 할 건 많은데 정리가 안된 느낌이라 글로 어느 정도 계획이나 일정을 정리해보고자 한다. 1월 목표 1. 빅데이터 동아리 BOAZ 데이터 엔지니어링 지원하기 (~12.29) 2. K-Digital Training: 데이터 엔지니어링 데브코스 지원하기(~ 1.31) 코딩테스트 연습하기(프로그래머스 Lv.2) 3. airflow master class 김현진님 강의 완강하기 4. 정보처리기사 필기 지원 및 스터디 5. 유데미 무료 쿠폰 강의 수강 후 후기 업로드 하기 (24.04월까지 완료) 1. BOAZ 국내 최고 빅데이터 동아리라고 한다. 내가 여기에 들어가기로 마음먹은 이유..
1월 계획데이터 엔지니어가 되기로 결심했기 때문에 일단 단기적으로 목표를 잡았다. 의무적으로 해야 할 일도 있고 내가 목표로 잡은 것도 있고 할 건 많은데 정리가 안된 느낌이라 글로 어느 정도 계획이나 일정을 정리해보고자 한다. 1월 목표 1. 빅데이터 동아리 BOAZ 데이터 엔지니어링 지원하기 (~12.29) 2. K-Digital Training: 데이터 엔지니어링 데브코스 지원하기(~ 1.31) 코딩테스트 연습하기(프로그래머스 Lv.2) 3. airflow master class 김현진님 강의 완강하기 4. 정보처리기사 필기 지원 및 스터디 5. 유데미 무료 쿠폰 강의 수강 후 후기 업로드 하기 (24.04월까지 완료) 1. BOAZ 국내 최고 빅데이터 동아리라고 한다. 내가 여기에 들어가기로 마음먹은 이유..
2023.12.16 -
들어가기 전에.. 나는 왜 데이터 엔지니어를 꿈으로 삼았는가 사실 이 부분은 내가 어떤 직무, 어떤 직업을 가지든 가장 중요한 문제라고 생각한다. 내 인생의 모토이신 페이커님도 프로게이머 희망 학생에게 가장 먼저 한 질문이 "왜 프로게이머가 되고 싶으세요?, 그게 가장 중요합니다."라고 했었다.(기습 숭배😎) 확실히 명확하게 데엔이 되고자 하는 이유가 생기면 원동력이 생기고 중간에 벽을 마주하더라도 버틸 수 있는 힘이 생길 것 같다. 때문에 이번에 한번 내가 데엔이 되고 싶은 이유를 글로 정리해보고자 한다. 이번에 글또에 참여하게 되면서 고민공유 대나무숲에 데이터 엔지니어로의 커리어 관련 고민을 올렸다. 이때 성윤 님이 보통 학생들은 직무에 자신을 맞추는 경우가 많다고 하셨고 내가 하고 싶었던 것이 정말..
나는 왜 데이터 엔지니어가 되고 싶은지에 대해들어가기 전에.. 나는 왜 데이터 엔지니어를 꿈으로 삼았는가 사실 이 부분은 내가 어떤 직무, 어떤 직업을 가지든 가장 중요한 문제라고 생각한다. 내 인생의 모토이신 페이커님도 프로게이머 희망 학생에게 가장 먼저 한 질문이 "왜 프로게이머가 되고 싶으세요?, 그게 가장 중요합니다."라고 했었다.(기습 숭배😎) 확실히 명확하게 데엔이 되고자 하는 이유가 생기면 원동력이 생기고 중간에 벽을 마주하더라도 버틸 수 있는 힘이 생길 것 같다. 때문에 이번에 한번 내가 데엔이 되고 싶은 이유를 글로 정리해보고자 한다. 이번에 글또에 참여하게 되면서 고민공유 대나무숲에 데이터 엔지니어로의 커리어 관련 고민을 올렸다. 이때 성윤 님이 보통 학생들은 직무에 자신을 맞추는 경우가 많다고 하셨고 내가 하고 싶었던 것이 정말..
2023.12.09 -
https://school.programmers.co.kr/learn/courses/30/lessons/131123 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 SELECT A.FOOD_TYPE, A.REST_ID, A.REST_NAME, B.FAVORITES FROM REST_INFO AS A INNER JOIN (SELECT FOOD_TYPE, MAX(FAVORITES) AS FAVORITES FROM REST_INFO GROUP BY FOOD_TYPE) as B ON A.FOOD_TYPE = B.FOOD_TYPE AND A.FAVORITES ..
즐겨찾기가 가장 많은 식당 정보 출력하기https://school.programmers.co.kr/learn/courses/30/lessons/131123 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 SELECT A.FOOD_TYPE, A.REST_ID, A.REST_NAME, B.FAVORITES FROM REST_INFO AS A INNER JOIN (SELECT FOOD_TYPE, MAX(FAVORITES) AS FAVORITES FROM REST_INFO GROUP BY FOOD_TYPE) as B ON A.FOOD_TYPE = B.FOOD_TYPE AND A.FAVORITES ..
2023.11.24 -
Email Operator를 이용해 Task 실행 시 메일을 자동으로 전송하는 것을 해 보았다. 1. Gmail 기본 설정하기 (IMAP 설정) 먼저, 아래 순서대로 들어가 준다. Gmail 접속 >> 설정 >> 모든 설정보기 >> 전달 및 POP/IMAP 그 후, IMAP 사용 안함을 사용함으로 바꿔주면 된다. 아래 사진을 참고 하자 2. Gmail 앱 비밀번호 불러오기 아래와 같은 경로로 이동해준다. Gmail 계정 -> 보안 -> 2단계 인증 -> 앱 비밀번호 생성 아래와 같은 화면이 나오면 잘 진행이 된거다. 저 앱 비밀전호는 한번 뜨면 다시는 볼 수 없으니 반드시 어딘가에 잘 보관해야 한다. 3. Docker-compose.yaml 파일 수정하기 vi를 통해 yaml 파일을 보면 아래처럼 env..
[Airflow] - Email Operator로 메일 전송하기Email Operator를 이용해 Task 실행 시 메일을 자동으로 전송하는 것을 해 보았다. 1. Gmail 기본 설정하기 (IMAP 설정) 먼저, 아래 순서대로 들어가 준다. Gmail 접속 >> 설정 >> 모든 설정보기 >> 전달 및 POP/IMAP 그 후, IMAP 사용 안함을 사용함으로 바꿔주면 된다. 아래 사진을 참고 하자 2. Gmail 앱 비밀번호 불러오기 아래와 같은 경로로 이동해준다. Gmail 계정 -> 보안 -> 2단계 인증 -> 앱 비밀번호 생성 아래와 같은 화면이 나오면 잘 진행이 된거다. 저 앱 비밀전호는 한번 뜨면 다시는 볼 수 없으니 반드시 어딘가에 잘 보관해야 한다. 3. Docker-compose.yaml 파일 수정하기 vi를 통해 yaml 파일을 보면 아래처럼 env..
2023.11.23 -
https://school.programmers.co.kr/learn/courses/30/lessons/77487 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 SELECT a.ID, a.NAME, a.HOST_ID FROM PLACES AS a INNER JOIN (SELECT HOST_ID FROM PLACES GROUP BY HOST_ID HAVING COUNT(*) >= 2) AS b ON a.HOST_ID = b.HOST_ID ORDER BY 1; 풀이 여타 문제와 다를바 없는 문제 였다. 조인 문에 서브쿼리를 넣어주었고 Having 조건 ..
헤비 유저가 소유한 장소https://school.programmers.co.kr/learn/courses/30/lessons/77487 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 SELECT a.ID, a.NAME, a.HOST_ID FROM PLACES AS a INNER JOIN (SELECT HOST_ID FROM PLACES GROUP BY HOST_ID HAVING COUNT(*) >= 2) AS b ON a.HOST_ID = b.HOST_ID ORDER BY 1; 풀이 여타 문제와 다를바 없는 문제 였다. 조인 문에 서브쿼리를 넣어주었고 Having 조건 ..
2023.11.20