Category(122)
-
[Airflow] Docker로 Apache Airflow 설치하기 (with 공식 문서🧐)
데이터 파이프라인의 자동화를 구현해보고 싶어 Airflow에 대해 알아보았다. Apache Airflow Airflow is a platform to programmatically author, schedule and monitor workflows. Airflow는 Python 프로그래밍 언어를 통해 워크플로우를 작성하고 스케줄링, 모니터링하는 플랫폼이다. 💡 데이터 파이프라인 내에서는 데이터가 이동하며 정해진 처리를 반복한다. 이때 각각의 처리를 태스크라고 부르는데 데이터 파이프라인이 복잡해지거나, 태스크 수가 증가할수록 테스크 실행에 문제가 생길 수 있다. Airflow와 같은 워크플로우 관리 도구는 1) 정기적으로 태스크를 실행하고 2) 비정상적인 상태를 감지하여 이를 해결하는 역할을 한다. Ar..
2022.05.26 -
[운영체제] 프로세스 관리(2) | KOCW 2017 이화여대 반효경 교수님
* 강의를 듣고 복습하며 정리한 내용입니다. Thread lightweight process. 프로세스의 실행 단위라고도 할 수 있다. 같은 프로그램을 여러 개 실행했을 때 각각의 프로세스를 만드는 것은 비효율적이다. 스레드를 사용하면 프로세스 내의 주소 공간(코드, 데이터)이나 자원을 공유할 수 있다. 스레드 ID, 프로그램 카운터, 레지스트 집합, 스택으로 구성된다. 하나의 프로세스 내에서 스레드간 자원을 공유하고, 자원의 생성과 관리의 중복성을 최소화해서 수행 능력을 향상시키는 것을 멀티 스레드라고 한다. 응답 속도가 빠르고, 자원을 공유하기 때문에 경제적이고, 다중 CPU 구조에서 각각의 스레드를 병렬처리 할 수 있다는 장점이 있다. 단, 스레드 간 자원을 공유하기 때문에 값을 정확히 읽고 쓰기 ..
2022.05.26 -
[운영체제] 프로세스 관리(1) | KOCW 2017 이화여대 반효경 교수님
* 강의를 듣고 복습하며 정리한 내용입니다. 프로그램의 실행 프로그램이 실행될 때 각각의 프로그램은 독자적인 주소 공간인 가상 메모리를 가진다. 이는 코드, 데이터, 스택 영역으로 구성된다. 운영체제의 커널도 하나의 프로그램이기 때문에 코드, 스택, 데이터 영역을 가진다. 프로세스 프로세스란 실행 중인 프로그램을 말한다. 프로세스 문맥 (Process Context) 시분할 시스템 환경에서는 타이머 인터럽트에 의해 CPU 관리가 이루어진다. 따라서 CPU를 뺏겼다가 다시 얻었을 때 이전에 어디까지 명령을 수행했는지 정보가 필요하다. 이를 프로세스 문맥이라고 한다. 프로세스 문맥은 다음과 같이 구분할 수 있다. 1. 하드웨어 문맥: Program Counter 등 각종 레지스터에 저장된 값 2. 프로세스의..
2022.05.25 -
[운영체제] 컴퓨터 시스템의 구조 | KOCW 2017 이화여대 반효경 교수님
* 강의를 듣고 복습하며 정리한 내용입니다. 운영체제 컴퓨터 하드웨어 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층. 좁게는 운영체제의 핵심 부분으로 메모리에 상주하는 커널을, 넓게는 커널 뿐만 아니라 각종 시스템 유틸리티를 의미한다. 운영체제의 분류 운영체제는 동시 작업 가능 여부, 사용자의 수, 처리 방식으로 나눌 수 있다. 동시 작업 가능 여부 1. 단일 작업: 한 번에 하나의 작업만 처리한다. 예) 과거 MS-DOS 프롬프트상의 명령어 수행 2. 다중 작업: 동시에 두 개 이상의 작업을 처리한다. 사용자의 수 1. 단일 사용자: 예) MS-DOS, MS Windows 등 2. 다중 사용자: 한 대의 컴퓨터에 여러 사용자가 접속. 예) Unix 등 처리 방식 1..
2022.05.24 -
📌다익스트라 최단 경로 알고리즘 (이코테 WITH 파이썬)
이번달 코딩테스트 중에서 이거 딱 다익스트라인데 하면서 못 푼 문제가 있었다. 끝나고 후기를 찾아보니 정말 다익스트라로 풀 수 있는 문제여서 아쉬웠던 기억이 있다. 이참에 다익스트라 알고리즘을 복습해보자. 최단 경로 알고리즘 말 그대로 가장 짧은 경로를 찾는 알고리즘. 그래프를 이용해 표현하며 각 지점은 노드로, 지점간의 연결은 간선으로 표현한다. 다익스트라 알고리즘 다익스트라 알고리즘은 그래프의 여러개의 노드가 있을 때 특정한 노드에서 출발해 다른 노드로 가는 각각의 최단경로를 구하는 알고리즘이다. 과정은 다음과 같다. 출발 노드 설정 > 최단 거리 테이블 초기화 > 방문하지 않은 노드 중 최단 거리가 가장 짧은 노드를 선택 > 해당 노드에서 부터 다른 노드로 가는 거리를 계산한 후 테이블 갱신 > 반..
2022.05.23