일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- airflow 정리
- Spark 튜닝
- 알고리즘
- Linux
- 오라클 데이터 처리방식
- Spark jdbc parallel read
- 네트워크
- 추천시스템
- enq: FB - contention
- 데이터 분석
- 의사결정나무
- 랜덤포레스트
- CF
- eda
- BFS
- Python
- 배깅
- Oracle 논리적 저장 구조
- 데이터분석
- git stash
- Spark Data Read
- Collaborative filtering
- Decision Tree
- 앙상블
- git init
- 리눅스 환경변수
- SQL
- 통계분석
- git 기본명령어
- Oracle ASSM
- Today
- Total
목록분류 전체보기 (85)
[Alex] 데이터 장인의 블로그
동시성(Concurrency), 병렬성(Parallelism) 은 같은 의미인가? Concurrency (동시성) 한 번에 여러 작업을 동시에 다루는 것을 의미 클라이언트와 서버 간 통신 시스템 디스크 파일 읽기/쓰기 데이터베이스 쿼리 작업 API 사용 Parallelism (병렬성) 한 번에 여러 작업을 병렬적으로 처리하는 것을 의미 비디오, 오디오 또는 이미지 처리 컴퓨터 비전 머신러닝 딥러닝 CPU 바운드 한정된 CPU의 자원보다 더 많은 작업을 수행하게 되었을 때 막히고, 느려지는 현상 프로그램이 CPU 연산 때문에 막힘, 느려지는 것. 데이터 마이닝 이미지 프로세싱 암호화폐 마이닝 프로그램이 실행될 때 CPU가 연산을 해야하기 때문에 소요되는 시간에 차례차례 영향을 받는 것. 이 경우에는 병렬적..
Linux에서 daemon의 의미는 background에서 실행이 되는 프로세스를 뜻한다. systemd에서 끝 d는 daemon을 의미한다. 이전에는 init이라는 데몬이 있었는데 이를 대체하고 init보다 기능이 추가되어서 나온 것이 systemd이다. 그래서 이전의 init과 같이 PID가 1이 된다. systemd는 리소스를 unit이라고 불리는 단위로 관리하는데, 오늘은 .service만 설명한다. service에서는 service나 application을 서버상에서 어떻게 관리할지를 명세합니다. service의 시작, 중지, 그리고 어떠한 상황에서 자동적으로 실행하는지, 어떠한 종속성을 가지고 있는지에 대한 정보를 갖고 있습니다. 만약 .service를 추가하려면 /etc/systemd/sys..
서버와 클라이언트의 통신이 모두 HTTP 프로토콜만 이용해서 이루어지지는 않는다. 주로 채팅, 게임, 주식 차트 등 '실시간 통신이 필요한 서비스'를 구현하려고 한다면, HTTP 프로토콜이 아닌 웹소켓 프로토콜을 사용하는 것이 좋다고 알려져 있다. HTTP 한계 HTTP를 주로 사용했던 초기 웹의 목적은 단순한 '문서' 전달이었다. HTTP는 요청한대로 응답을 보내주기만 하는 단순한 프로토콜, 단순한 문서 전달에 상당히 좋은 성능을 보였기 때문에 널리 사용되었음. 인터넷이 발전하면서 이용자들은 문서 교환 이상의 것을 원하기 시작하였고 채팅, 게임 등 실시간 통신이 필요한 것들을 바라기 시작한다. HTTP는 '요청'에 대해서만 응답을 할 수 있었기 때문에, 채팅에서 계속해서 메시지를 보내는 상황을 구현하기..
https://www.acmicpc.net/problem/1261 1261번: 알고스팟 첫째 줄에 미로의 크기를 나타내는 가로 크기 M, 세로 크기 N (1 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 미로의 상태를 나타내는 숫자 0과 1이 주어진다. 0은 빈 방을 의미하고, 1은 벽을 의미 www.acmicpc.net 저번 BFS 문제에 이어서 대표적인 BFS 문제 풀이를 진행해보겠다. 문제 알고스팟 운영진이 모두 미로에 갇혔다. 미로는 N*M 크기이며, 총 1*1크기의 방으로 이루어져 있다. 미로는 빈 방 또는 벽으로 이루어져 있고, 빈 방은 자유롭게 다닐 수 있지만, 벽은 부수지 않으면 이동할 수 없다. 알고스팟 운영진은 여러명이지만, 항상 모두 같은 방에 있어야 한다. 즉, 여러 명이..
개념 이해 그래프 탐색 : 어떤것들이 연속해서 이어질 때, 모두 확인하는 방법. Graph : Vertex(어떤 것) + Edge(이어지는 것) [그래프 탐색 종류] BFS : 너비 우선 탐색 (Breadth-first search) 기준 노드(Vertex)에서 자식 노드(Vertex) 부터 탐색하는 방법. 즉, 주변에 분포해있는 노드부터 탐색하는 방법 (깊게 No, 넓게 Yes) 위의 그래프의 경우 탐색 차례 : 0 - 1 - 2 - 3 - 4 - 5 - 6 BFS = Queue 자료형과 맞음 DFS : 깊이 우선 탐색 (Depth-first search) 기준 노드(Vertex)에서 자식 노드(Vertex) -> 자식노드까지 탐색하는 방법. 즉, 자식의 자식까지(끝노드) 모두 탐색하는 방법 (깊게 Y..
그리디 알고리즘 당장(현재 상황)의 좋은 것만 선택하는 알고리즘 미래를 생각하지 않고 당장의 선택에서 가장 좋은 선택을 하는 것. 즉, 그리디(탐욕) 알고리즘을 적용할 수 있는 문제들은 지역적으로 최적이면서 전역적으로 최적인 문제들이다. 그리디 알고리즘 문제를 해결하는 방법 그리디 알고리즘을 적용하려면 다음 두가지 조건을 만족해야 한다. 탐욕적 선택 속성(Greedy Choice Property) : 앞의 선택이 이후의 선택에 영향을 주지 않는다. 최적 부분 구조(Optimal Substructure) : 문제에 대한 최종 해결 방법은 부분 문제에 대한 최적 문제 해결 방법으로 구성된다. 탐욕스런 선택 조건은 앞의 선택이 이후의 선택에 영향을 주지 않는다는 것이며, 최적 부분 구조 조건은 문제에 대한 최..
병합 정렬 알고리즘도 대표적인 '분할 정복' 방법을 채택한 알고리즘. 퀵정렬과 동일하게 O(NlogN)의 시간복잡도를 가진다. 주어진 원소를 원소 하나만 남을 때까지 쪼갠 후에 다시 크기 순으로 재배열하면서 원래 크기의 배열로 합친다. 아래 리스트가 있다고 가정해보자. [6, 5, 3, 1, 8, 7, 2, 4] 각 원소마다 하나의 리스트가 생기도록 쪼갠 후에 역으로 두개씩 합치는 과정을 시작한다. [6] [5] [3] [1] [8] [7] [2] [4] 합칠때는 작은 숫자가 앞에 오도록 위치, 이후 각각 2개의 배열을 하나의 배열로 합치는 작업을 수행한다. [5, 6] [1, 3] [7, 8] [2, 4] 두개의 인자중 작은 인자부터 하나씩 비교하기 시작하면 작은 값부터 차례대로 배열을 정리할 수 있다..