본문 바로가기
반응형

분류 전체보기136

[Python] 해시(Hash)란 무엇인가(feat. Dictionary 자료구조) | LIM 📚 해시함수 해시함수란 데이터의 효율적 관리를 목적으로 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수이다. 이때 매핑 전 원래 데이터의 값을 키(key), 매핑 후의 데이터의 값을 해시값(hash value), 매핑하는 과정 자체를 해싱(hashing)이라고 한다. 해시함수는 해쉬값의 개수보다 대개 많은 키값을 해쉬값으로 변환(many-to-one) 하기 때문에 해시함수가 서로 다른 두 개의 키에 대해 동일한 해시값을 내는 해시충돌(collison)이 발생하게 된다. 만약 A, B 두가지 key가 있다고 가정하자. A와 B를 hash function으로 해시값을 얻었는데 hash 값이 동일하게 3으로 나온경우 이런 현상을 해시충돌(hash collison)이라고 한다. 해시함수로 해시를 만.. 2022. 5. 19.
Mac Airflow local 설치 📌 로컬 환경에서 Airflow 설치하기 1) 일단 airflow 설치할 가상환경을 세팅해준다. 나같은 경우 python venv 가상환경으로 생성했다. $ python3 -m venv ~/{directory_name}/{myenv} 2) airflow의 홈 디렉토리 디폴트값은 ~/airflow이다. 따라서 airflow를 다른 디렉토리 안에서 실행시키고 싶으면 환경변수를 세팅해주어야 한다. $ export airflow=~/{directory_name}/airflow 나같은 경우 airflow_test 라는 디렉토리 하위에서 airflow 를 실행시켰다. 3) 가상환경 활성화 $ source {myenv}/bin/activate 4) airflow 설치 (공식 document: https://airfl.. 2022. 5. 14.
[Airflow] Datetime (feat. 자동실행 방지) 📌 Airflow 실행날짜 실행 날짜는 batch job 의 특성을 가진 Airflow에서 매우 중요하다. Airflow에서 start_date 는 실행 시작 날짜가 아니라 스케줄이 시작되는 날짜라는 것을 기억해야한다. 예를 들어서 오늘 날짜가 datetime(2022, 5, 14) 이다. 하지만 Airflow에 start_date를 (2022, 1, 1) 로 적게되면 1월 1일 부터 5월 13일까지의 job이 생기게 된다. 이처럼 Airflow에서 start_date는 실행 시작이 아닌 스케줄에 올라가는 날짜라는 것을 기억하자 📌 catchup 위와 같이 과거 날짜로 start_date 를 설정하면 Airflow는 과거의 Task를 차례대로 실행하는 Backfill을 실행하게 된다. 하지만 보통 이런 .. 2022. 5. 14.
[Algorithm] 다익스트라 알고리즘 | LIM 다익스트라 최단 경로 알고리즘은 그래프에서 여러 개의 노드가 있을 때, 특정한 노드에서 출발하여 다른 노드로 가는 각각의 최단 경로를 구해주는 알고리즘이다. 다익스트라 알고리즘은 실제로 GPS 소프트웨어의 기본 알고리즘으로 채택되곤 한다. 알고리즘의 원리는 다음과 같다. 1. 출발 노드를 설정한다(start) 2. 최단 거리 테이블을 초기화한다.([0,0,0,...]) 3. 방문하지 않은 노드 중에서 최단 거리가 가장 짧은 노드를 선택한다. 4. 해당 노드를 거쳐 다른 노드로 가는 비용을 계산하여 최단 거리 테이블을 갱신한다. 5. 위 과정에서 3번과 4번을 반복한다. 다익스트라 알고리즘을 구현하는 방법 2가지를 소개한다. 방법1. 구현하기 쉽지만 느리게 동작하는 코드 방법2. 구현하기에 조금 더 까다롭.. 2021. 10. 11.
인프라 아키텍처 이번 하반기 동안 인프라에 대해 공부를 할 예정이고 이 책을 토대로 이 곳에 정리하려고 한다. http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9791190665209&orderClick=LEa&Kc= 그림으로 공부하는 IT 인프라 구조 - 교보문고 IT에 몸담은 이들을 위한 필독서 | IT에 종사하는 사람이라면 반드시 읽어야 할 책!IT 인프라 전반에 대한 상식을 그림으로 쉽게 이해한다!이 책은 ‘IT 인프라’ 전반을 충실히, 그리고 이해하기 www.kyobobook.co.kr 1.1 인프라란 무엇인가 인프라는 '기반'이라는 뜻으로, 우리의 생활을 지탱하는 바탕이나 토대라는 의미이다. IT 인프라도 예를 .. 2021. 9. 17.
[백준] 14888번: 연산자 끼워넣기 Python (DFS, BFS) | LIM 이 문제의 경우는 순서대로 연산자에 상관없이 계산해야하기 때문에 연산자를 하나씩 뽑아서 즉, popleft를 사용하여 구현해야 한다고 생각했다. 즉 BFS를 사용하여 문제를 해결하였다. 1. 숫자는 순서의 바뀌지 않고 연산자의 순서만 바뀌기 때문에 연산자의 조합이 어떻게 올 지 부터 먼저 구해야 한다. (조합은 permutation을 이용하여 구했다. 다만, permutation의 경우 ['+','+','+','+']의 경우 모두 다르게 인식하여 경우의 수를 많이 만들기 때문에 set을 사용하여 조합을 unique한 상태로 변경해야 한다.) 2. 연산자의 특성 중 나눗셈 부분이 기존 나눗셈의 개념과는 다르기 때문에 나같은 경우 함수로 사칙연산을 구현해주었다. (생각보다 시간이 오래 걸리지 않았다..) 3.. 2021. 9. 12.
반응형