카테고리 전체보기 144

09. 스택/큐 알고리즘 개념

01. 스택(Stack), 큐(Queue) 개념 1-1.스택(stack)이란 자료의 입력과 출력을 한 방향으로 제한한 자료구조를 의미한다. 즉, LIFO(Last In First Out)구조다. 스택의 예시 쌓여있는 접시에서는 맨 위에것부터 쓸 것이다. 새걸넣어도 맨위이다. 접시가 쌓인 모습을 상상하자! 1-2-1. 스택 풀이 방법 스택 자료형은 없다. deque를 이용해 스택을 쓴다는 점을 알고 있으면 좋다. 🔥 덱(deque)이란? 양방향 큐이다. 즉, 맨 앞과 뒤에 데이터를 삽입하고 삭제할 수 있게 해주는 자료형이다. 양 끝 엘리먼트에 대한 append, pop이 빠르다는 장점이 있어 많이들 사용한다. 삽입 제거 시, 일반적인 리스트는 연산에 O(n)인 데에 반해, 데크는 O(1)로 성능이 매우 빠..

05. 워크플로 관리와 데이터 플로우

안녕하세요 한소희입니다. 공부를 통해 배운 내용을 작성하고 있습니다. 혹여 해당 포스팅에서 잘못된 부분이 있을 경우, 알려주시면 빠르게 수정 조치하도록 하겠습니다. 감사합니다. 워크플로의 관리는 배치 수집에 반드시 필요하다. 나는 현재 기업 협업 프로젝트를 하고 있는데, 이 프로젝트에서도 워크플로 관리의 필요성을 여실히 느꼈다. 따라서 '워크플로 관리'와 '데이터 플로우'에 대해 자세히 공부해보려고 한다. 목차 워크플로 관리 배치형의 데이터 플로우 스트리밍 형의 데이터 플로우 01. 워크플로 관리 워크플로란, 작업 절차를 말한다. 1-1. 워크플로 관리가 필요한 이유 우리는 정기적/반복적 배치 처리의 상황에서 워크 플로우가 존재한다. 데이터 수집은 하나의 명령으로만 생성되는 것이 아니기 때문이다. 이때,..

04. 빅데이터의 축적

안녕하세요 한소희입니다. 공부를 통해 배운 내용을 작성하고 있습니다. 혹여 해당 포스팅에서 잘못된 부분이 있을 경우, 알려주시면 빠르게 수정 조치하도록 하겠습니다. 감사합니다. 이제 데이터를 수집하고 분산 스토리지에 저장하기까지의 프로세스를 공부해 볼 것이다. 우선 데이터의 종류는 크게 벌크형과 스트리밍 형이 있고, 이 형태에 따라 저장 프로세스의 차이가 크기 때문에, 이 둘을 나눠 공부/비교해 보겠다. 그리고, 요즘은 NoSQL에 데이터를 저장하는 트렌드가 있기 때문에, NoSQL에 데이터를 수집하기 위해 알아야 할 것들에 대해 공부해볼 것이다. (이전 NoSQL 중 대표적인 MongoDB에 대한 웨비나를 들은 적이 있는데, MongoDB에 대해 추가적으로 알고 싶은 분들은 아래 정리해 둔 포스팅을 참..

08. 정렬 알고리즘 개념 및 풀이

01. 정렬 알고리즘이란? 정렬(sorting)이란, 순서없이 나열된 자료를 특정한 키값에 따라 오름차순이나 내림차순으로 자료를 재배열한 것을 의미한다. 정렬 알고리즘이 왜 필요할까? 탐색 효율을 높이기 위해서다. 도서관에서도, 원하는 책을 효율적으로 탐색하기 위해서 책이 순서대로 정렬되어있어야 한다. 도서관을 떠올리면 정렬의 필요성을 이해하기 쉽다. 02. 정렬 알고리즘의 종류 2-1. 선택정렬 가장 작은 노드(최소값)를 선택하고 왼쪽부터 정렬을 하기 위해 알맞은 위치와 교환하는 작업을 반복하는 것을 뜻한다. O(n^2)번의 시간복잡도가 필요하며, 작은 수를 하나하나 순차적으로 찾아서 정렬해야 하므로 안정적이지 않다. 2-2. 삽입정렬 삽입정렬은 아직 정렬되지 않은 특정 노드와 정렬된 노드들의 값을 비..

06. [쉽배운 2장] 컴퓨터의 구조와 성능 향상

앞서, 운영체제의 개요를 공부해보았다. https://eng-sohee.tistory.com/42?category=1026344 05. [쉽배운 1장] 운영체제의 개요 쉽배운 = 쉽게배우는 운영체제 내가 이번에 산 책이다. 왜 내가 구글링을 이용해 운영체제를 공부하다가 책을 구매했는지, 그리고 책을 선정하게 된 기준 및 계기는 무엇인지느 아래 ※ 이전 포 eng-sohee.tistory.com 오늘은, 컴퓨터의 구조와 성능 향상에 대해 공부한 내용을 정리해볼 것이다. 목차 컴퓨터의 기본 구성 CPU와 메모리 컴퓨터 성능 향상 기술 병렬 처리 01. 컴퓨터의 기본 구성 1-1. 컴퓨터 하드웨어의 구성 1 중앙처리장치(CPU) 명령어를 해석해서 실행하는 장치. 인간의 두뇌와 같다. 2 메모리 메인메모리(제1..

08. PSST 기반 사업계획서 작성 방법

안녕하세요 한소희입니다. 공부를 통해 배운 내용을 작성하고 있습니다. 혹여 해당 포스팅에서 잘못된 부분이 있을 경우, 알려주시면 빠르게 수정 조치하도록 하겠습니다. 감사합니다. 멘토님으로부터 PSST 기반 사업계획서가 무엇인지 공부해 오라는 과제를 받았다. 유튜브 영상을 기반으로 PSST 사업계획서가 무엇인지 공부해보았고, 해당 게시물에 정리를 해보았다! 목차 PSST란? PSST 사업계획서의 구성 01. PSST란? 1-1. PSST 란? 창업기업들이 성장할 수 있는 아이템을 개발/개선할 수 있는 방법이다. Problem, Solution, Scale-Up, Team의 구조 작성을 원칙으로 한다는 것이 특징이어, 앞 글자를 따와 PSST라고 불린다. Problem: 창업기업이 아이템을 개발하는데 고객기..

07. 스파르타 코딩클럽 - SQL 강의 완강 후기!

안녕하세요 한소희입니다. 공부를 통해 배운 내용을 작성하고 있습니다. 혹여 해당 포스팅에서 잘못된 부분이 있을 경우, 알려주시면 빠르게 수정 조치하도록 하겠습니다. 감사합니다. 벌써 한 달이 지났다. 드디어 스파르타 코딩 클럽 SQL 수업을 완강했다. 한 주차도 미루지 않고 꾸준히 들은 결과, 시간 내에 완강할 수 있었다. 따라서 개인적으로 너무 뿌듯하다. 완강을 기념으로, 오늘은 스파르타 코딩클럽의 SQL 수업에 대한 느낀 점 및 회고를 진행해보고자 한다. (※ 광고가 아님을 알려드립니다!) 목차 강의를 통해 배운 점 스파르타 코딩클럽의 장단점 할인 코드 공유 01. 강의를 통해 배운 점 SQL의 기초인 where 절부터, 난이도 있는 문법인 subquery까지 배울 수 있었다. 강의를 들으며 정리한 ..

DAG 파일 생성 및 실행 + GCP(구글클라우드플랫폼) - Airflow 연동

목차 DAG 파일 생성 후 Airflow 실행 GCP(구글 클라우드 플랫폼) - Airflow 연동 01. DAG 파일 생성 후 Airflow 실행 우선적으로, docker를 연다. 이미 ※ 첫 번째 포스팅에서 컨테이너를 생성했으므로, 컨테이너를 새로 시작할 땐 시작(start)만 해주면 된다. ※ 첫 번째 포스팅 링크 docker start airflow_v1 Vim과 Procps를 설치해보자. 처음 받은 이미지에는, vi로 파일을 수정할 수 없다. 왜냐하면 위와 같은 파일이 설치가 되어있지 않기 때문이다. 또한 netstate로 네트워크 내역을 확인할 수 있도록 필요한 소프트웨어를 설치해준다. root로 접속해서 설치한다. docker exec -u root -ti airflow_v1 /bin/bas..

Airflow 개념 + Docker를 통한 Airflow 설치

01. Airflow란 무엇인가? Airflow는 에어비앤비에서 개발한 워크플로우 스케줄링 및 모니터링 플랫폼이다. 이는 동작 순서 및 방식과 같은 파이프라인을 파이썬 코드를 이용해 구성하기 때문에 동적인 구성이 가능하다. 또한 분산구조와 메시 지큐를 이용해 많은 수의 워커 간 협업을 지원하고 스케일 아웃이 가능하다. 1-1. Ariflow의 아키텍처 스케줄러 - 브로커 & 메타 DB - 여러 개의 워커 1. 스케줄러: 실행 주기가 되면 작업을 생성하고, 의존 작업이 모두 성공하면 브로커에게 넘긴다. 2. 브로커: 실행 가능한 작업(워커)들이 들어가 있는 공간 3. 워커: 실제 작업을 진행하는 주체 4. DAG, Task 등이 정의되어 있다. 1-2. Airflow를 왜 사용해야 하는가? 이는 ※전일 회..

07. Selenium - 동적 사이트 테이블 Crawling

목차 크롤링 사용 목적 Selenium 구현 과정 01. 크롤링 사용 목적 우리는 동적 페이지 내 데이터를 실시간 수집을 해와야 한다. 대시보드에 실시간으로 데이터를 띄워주어야 하기 때문이다. 따라서 데이터 크롤링 작업이 필요하다. 동적 페이지란? 같은 URL에 접속해도 정보가 조금씩 달라지는 페이지를 말한다. 대부분의 페이지는 동적 페이지며, 백과사전과 같이 데이터가 수정이 잘 되지 않는 페이지가 정적 페이지다. 1-1. Selenium을 사용한 이유 이때, Selenium과 BeautifulSoup4 중 Selenium을 사용하기로 했다. 왜냐하면, 우리가 크롤링해야 하는 사이트인 Port-Mis는 URL로만 데이터 접근이 어려운 사이트기 때문이다. = 즉, 같은 URL로 접속해도, 입력장치에 의한 ..